⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 naxxramas.lua

📁 时间太紧了
💻 LUA
📖 第 1 页 / 共 5 页
字号:
			CT_RABoss_Announce(format(CT_RABOSS_MRNOTH_BACK, CT_RABoss_Mods["瘟疫使者诺斯"]["timeinroom"]), CT_RABoss_Mods["瘟疫使者诺斯"]["announce"]);
			CT_RABoss_PlaySound(2);
			CT_RABoss_Schedule("CT_RABoss_MRNoth_EventHandler", (CT_RABoss_Mods["瘟疫使者诺斯"]["timeinroom"]-10), "teleportwarn");
			CT_RABoss_Schedule("CT_RABoss_MRNoth_EventHandler", (CT_RABoss_Mods["瘟疫使者诺斯"]["timeinroom"]), "teleport");

			if ( CT_RA_Level >= 1 and CT_RABoss_Mods["瘟疫使者诺斯"]["announce"] ) then
				CT_RA_SendMessage(format(CT_RABOSS_MRMUKKA_STRING, "1", "20", CT_RABOSS_MRNOTH_TELEPORT, CT_RABoss_Mods["瘟疫使者诺斯"]["timeinroom"], "0*255*0"));
			end
		end

	elseif ( event == "teleport" ) then
		CT_RABoss_UnSchedule("CT_RABoss_MRNoth_EventHandler", "blinkwarn");
		if ( not CT_RABoss_Mods["瘟疫使者诺斯"]["lastaction"] or ( time() - CT_RABoss_Mods["瘟疫使者诺斯"]["lastaction"] ) > 30 ) then
			return;
		else
			CT_RABoss_Announce(format(CT_RABOSS_MRNOTH_TELEPORTED, CT_RABoss_Mods["瘟疫使者诺斯"]["timeonbalcony"]), CT_RABoss_Mods["瘟疫使者诺斯"]["announce"]);
			CT_RABoss_PlaySound(2);
			CT_RABoss_Schedule("CT_RABoss_MRNoth_EventHandler", (CT_RABoss_Mods["瘟疫使者诺斯"]["timeonbalcony"]-10), "Plague wing: Nothsoon");
			CT_RABoss_Schedule("CT_RABoss_MRNoth_EventHandler", CT_RABoss_Mods["瘟疫使者诺斯"]["timeonbalcony"], "backinroom");

			if ( CT_RA_Level >= 1 and CT_RABoss_Mods["瘟疫使者诺斯"]["announce"]) then
				CT_RA_SendMessage(format(CT_RABOSS_MRMUKKA_STRING, "1", "20", CT_RABOSS_MRNOTH_BALCONY, CT_RABoss_Mods["瘟疫使者诺斯"]["timeonbalcony"], "255*0*0"));
			end

			if ( CT_RABoss_Mods["瘟疫使者诺斯"]["timeonbalcony"] == 70 ) then
				CT_RABoss_Mods["瘟疫使者诺斯"]["timeonbalcony"] = 95;
				CT_RABoss_Mods["瘟疫使者诺斯"]["timeinroom"] = 110;
			elseif ( CT_RABoss_Mods["瘟疫使者诺斯"]["timeonbalcony"] == 95 ) then
				CT_RABoss_Mods["瘟疫使者诺斯"]["timeonbalcony"] = 120;
				CT_RABoss_Mods["瘟疫使者诺斯"]["timeinroom"] = 180;
			end
		end

	elseif ( event == "precurse" ) then
		CT_RABoss_Mods["瘟疫使者诺斯"]["cursetrip"] = false;

	elseif ( event == "blinkwarn" ) then
		CT_RABoss_Announce(CT_RABOSS_MRNOTH_BLINKSOON, CT_RABoss_Mods["瘟疫使者诺斯"]["announce"]);
		CT_RABoss_PlaySound(3);

	elseif ( event == "teleportwarn" ) then
		CT_RABoss_Announce(CT_RABOSS_MRNOTH_TELEPORT_10SEC, CT_RABoss_Mods["瘟疫使者诺斯"]["announce"]);
		CT_RABoss_PlaySound(3);

	elseif ( event == "Plague wing: Nothsoon" ) then
		CT_RABoss_Announce(CT_RABOSS_MRNOTH_BACK_10SEC, CT_RABoss_Mods["瘟疫使者诺斯"]["announce"]);
		CT_RABoss_PlaySound(3);

	end
end


-- Heigan the Unclean (19/08/2006) - Changed naming.
function CT_RABoss_MRHeigan_OnLoad()
	CT_RABoss_AddMod("肮脏的希尔盖", CT_RABOSS_MRHEIGAN_INFO, 1, CT_RABOSS_LOCATIONS_NAXXRAMAS);
	CT_RABoss_AddEvent("肮脏的希尔盖", "CHAT_MSG_MONSTER_YELL", CT_RABoss_MRHeigan_EventHandler);
	CT_RABoss_AddEvent("肮脏的希尔盖", "CHAT_MSG_MONSTER_EMOTE", CT_RABoss_MRHeigan_EventHandler);

	CT_RABoss_AddDropDownButton("肮脏的希尔盖", { CT_RABOSS_ANNOUNCE, CT_RABOSS_ANNOUNCE_INFO .. CT_RABOSS_REQ_LEADER_OR_PROM }, "CT_RABoss_ModInfo", "announce", "CT_RABoss_SetInfo");
end

function CT_RABoss_MRHeigan_EventHandler(event)
	if ( not CT_RABoss_Mods["肮脏的希尔盖"] or not CT_RABoss_Mods["肮脏的希尔盖"]["status"] or not CT_RABoss_Mods["肮脏的希尔盖"].enabled ) then
		return;
	end

	if ( event == "CHAT_MSG_MONSTER_YELL" ) then
		if ( arg1 == CT_RABOSS_MRHEIGAN_PHASE1_YELL1 or arg1 == CT_RABOSS_MRHEIGAN_PHASE1_YELL2 or arg1 == CT_RABOSS_MRHEIGAN_PHASE1_YELL3 ) then
			CT_RABoss_Announce(CT_RABOSS_MRHEIGAN_ENGAGED, CT_RABoss_Mods["肮脏的希尔盖"]["announce"]);
			CT_RABoss_PlaySound(3);
			CT_RABoss_UnSchedule("CT_RABoss_MRHeigan_EventHandler");
			CT_RABoss_Schedule("CT_RABoss_MRHeigan_EventHandler", 80, "teleportwarn");

			if ( CT_RA_Level >= 1 and CT_RABoss_Mods["肮脏的希尔盖"]["announce"] ) then
				CT_RA_SendMessage(format(CT_RABOSS_MRMUKKA_STRING, "1", "20", CT_RABOSS_MRHEIGAN_TELEPORT, "90", "0*255*0"));
			end

		elseif ( arg1 == CT_RABOSS_MRHEIGAN_PHASE2_YELL1 ) then
			CT_RABoss_Announce(CT_RABOSS_MRHEIGAN_TELEPORTED, CT_RABoss_Mods["肮脏的希尔盖"]["announce"]);
			CT_RABoss_PlaySound(2);
			CT_RABoss_UnSchedule("CT_RABoss_MRHeigan_EventHandler", "teleportwarn");
			CT_RABoss_Schedule("CT_RABoss_MRHeigan_EventHandler", 42, "backsoon");
			CT_RABoss_Schedule("CT_RABoss_MRHeigan_EventHandler", 45, "backinroom");

			if ( CT_RA_Level >= 1 and CT_RABoss_Mods["肮脏的希尔盖"]["announce"] ) then
				CT_RA_SendMessage(format(CT_RABOSS_MRMUKKA_STRING, "1", "20", CT_RABOSS_MRHEIGAN_DANCE, "45", "255*0*0"));
			end
		end

	elseif ( event == "CHAT_MSG_MONSTER_EMOTE" and arg2 == CT_RABOSS_MRHEIGAN_BOSSNAME ) then
		if ( arg1 == CT_RABOSS_MRHEIGAN_DEAD ) then
			CT_RABoss_UnSchedule("CT_RABoss_MRHeigan_EventHandler");
		end

	elseif ( event == "backinroom" ) then
		CT_RABoss_Announce(CT_RABOSS_MRHEIGAN_BACK, CT_RABoss_Mods["肮脏的希尔盖"]["announce"]);
		CT_RABoss_PlaySound(2);
		CT_RABoss_Schedule("CT_RABoss_MRHeigan_EventHandler", 80, "teleportwarn");

		if ( CT_RA_Level >= 1 and CT_RABoss_Mods["肮脏的希尔盖"]["announce"] ) then
			CT_RA_SendMessage("AaO b1 t20 n*Teleport* f90 r0*255*0");
		end

	elseif ( event == "teleportwarn" ) then
		CT_RABoss_Announce(CT_RABOSS_MRHEIGAN_TELEPORT_10SEC, CT_RABoss_Mods["肮脏的希尔盖"]["announce"]);
		CT_RABoss_PlaySound(3);

	elseif ( event == "backsoon" ) then
		CT_RABoss_Announce(CT_RABOSS_MRHEIGAN_BACK_3SEC, CT_RABoss_Mods["肮脏的希尔盖"]["announce"]);
		CT_RABoss_PlaySound(3);
	end
end


-- Loatheb (22/08/2006) - Updated to use chat_msg_addon.
function CT_RABoss_MRLoatheb_OnLoad()
	CT_RABoss_AddMod("洛欧塞布", CT_RABOSS_MRLOATHEB_INFO, 1, CT_RABOSS_LOCATIONS_NAXXRAMAS);
	CT_RABoss_AddEvent("洛欧塞布", "PLAYER_REGEN_DISABLED", CT_RABoss_MRLoatheb_EventHandler);
	CT_RABoss_AddEvent("洛欧塞布", "CHAT_MSG_ADDON", CT_RABoss_MRLoatheb_EventHandler);
	CT_RABoss_AddEvent("洛欧塞布", "CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE", CT_RABoss_MRLoatheb_EventHandler);
	CT_RABoss_AddEvent("洛欧塞布", "CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE", CT_RABoss_MRLoatheb_EventHandler);
	CT_RABoss_AddEvent("洛欧塞布", "CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE", CT_RABoss_MRLoatheb_EventHandler);
	CT_RABoss_AddEvent("洛欧塞布", "CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF", CT_RABoss_MRLoatheb_EventHandler);

	CT_RABoss_AddDropDownButton("洛欧塞布", { CT_RABOSS_ANNOUNCE, CT_RABOSS_ANNOUNCE_INFO .. CT_RABOSS_REQ_LEADER_OR_PROM }, "CT_RABoss_ModInfo", "announce", "CT_RABoss_SetInfo");
	CT_RABoss_AddDropDownButton("洛欧塞布", { CT_RABOSS_MRLOATHEB_CURSES_ALERT, CT_RABOSS_MRLOATHEB_CURSES_ALERT_INFO }, "CT_RABoss_ModInfo", "enablecurseS", "CT_RABoss_SetInfo");

	CT_RABoss_SetVar("洛欧塞布", "enablecurses", 1);
end

function CT_RABoss_MRLoatheb_Start()
	CT_RABoss_Announce(CT_RABOSS_MRLOATHEB_ENGAGE, CT_RABoss_Mods["洛欧塞布"]["announce"]);
	CT_RABoss_PlaySound(3);	
	CT_RABoss_Mods["洛欧塞布"]["lastaction"] = time();
	CT_RABoss_Mods["洛欧塞布"]["engaged"] = true;
	CT_RABoss_Schedule("CT_RABoss_MRLoatheb_EventHandler", 110, "doom5");

	if ( CT_RA_Level >= 1 and CT_RABoss_Mods["洛欧塞布"]["announce"] ) then
		CT_RA_SendMessage(format(CT_RABOSS_MRMUKKA_STRING, "1", "20", CT_RABOSS_MRLOATHEB_DOOM_TIMER, "115", "255*0*0"));
	end
end

function CT_RABoss_MRLoatheb_EventHandler(event)
	if ( not CT_RABoss_Mods["洛欧塞布"] or not CT_RABoss_Mods["洛欧塞布"]["status"] or not CT_RABoss_Mods["洛欧塞布"].enabled ) then
		return;
	end

	if ( CT_RABoss_Mods["洛欧塞布"]["engaged"] and ( not CT_RABoss_Mods["洛欧塞布"]["lastaction"] or ( time() - CT_RABoss_Mods["洛欧塞布"]["lastaction"] ) > 60 ) ) then
		CT_RABoss_Mods["洛欧塞布"]["engaged"] = false;
		CT_RABoss_Mods["洛欧塞布"]["countdoom"] = nil;
	end

	if ( event == "CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE" or event == "CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE" or event == "CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE" ) then
		if ( string.find(arg1, CT_RABOSS_MRLOATHEB_DOOM_STRING) and not CT_RABoss_Mods["洛欧塞布"]["doomtrip"] ) then
			CT_RABoss_Announce(CT_RABOSS_MRLOATHEB_DOOM_WARN, CT_RABoss_Mods["洛欧塞布"]["announce"]);
			CT_RABoss_PlaySound(2);
			CT_RABoss_UnSchedule("CT_RABoss_MRLoatheb_EventHandler", "doom5");
			CT_RABoss_Schedule("CT_RABoss_MRLoatheb_EventHandler", 5, "undoom");
			CT_RABoss_Mods["洛欧塞布"]["doomtrip"] = true;
			CT_RABoss_Mods["洛欧塞布"]["engaged"] = true;
			CT_RABoss_Mods["洛欧塞布"]["lastaction"] = time();

			if ( CT_RABoss_Mods["洛欧塞布"]["countdoom"] ) then
				CT_RABoss_Mods["洛欧塞布"]["countdoom"] = CT_RABoss_Mods["洛欧塞布"]["countdoom"]+1;
			else
				CT_RABoss_Mods["洛欧塞布"]["countdoom"] = 0;
			end
			
			if ( CT_RABoss_Mods["洛欧塞布"]["countdoom"] > 7 ) then
				CT_RABoss_Schedule("CT_RABoss_MRLoatheb_EventHandler", 10, "doom5");

				if ( CT_RA_Level >= 1 and CT_RABoss_Mods["洛欧塞布"]["announce"] ) then
					CT_RA_SendMessage(format(CT_RABOSS_MRMUKKA_STRING, "1", "20", CT_RABOSS_MRLOATHEB_DOOM_TIMER, "15", "255*0*0"));
				end
			else
				CT_RABoss_Schedule("CT_RABoss_MRLoatheb_EventHandler", 25, "doom5");

				if ( CT_RA_Level >= 1 and CT_RABoss_Mods["洛欧塞布"]["announce"] ) then
					CT_RA_SendMessage(format(CT_RABOSS_MRMUKKA_STRING, "1", "20", CT_RABOSS_MRLOATHEB_DOOM_TIMER, "30", "255*0*0"));
				end
			end
		end
		
	elseif ( event == "CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF" ) then
		if ( arg1 == CT_RABOSS_MRLOATHEB_CURSE_STRING and CT_RABoss_Mods["洛欧塞布"]["enablecurses"] ) then
			CT_RABoss_Announce(CT_RABOSS_MRLOATHEB_CURSE_WARN, CT_RABoss_Mods["洛欧塞布"]["announce"]);
			CT_RABoss_PlaySound(3);

			if ( CT_RA_Level >= 1 and CT_RABoss_Mods["洛欧塞布"]["announce"] ) then
				CT_RA_SendMessage(format(CT_RABOSS_MRMUKKA_STRING, "2", "20", CT_RABOSS_MRLOATHEB_CURSE_TIMER, "30", "0*0*255"));
			end
		end
		
	elseif ( event == "PLAYER_REGEN_DISABLED" and not CT_RABoss_Mods["洛欧塞布"]["engaged"] ) then
		CT_RABoss_Schedule("CT_RABoss_MRLoatheb_EventHandler", 5, "engagecheck");	

	elseif ( event == "CHAT_MSG_ADDON" and arg1 == "CTRA" ) then
		if ( arg2 == "LOATHEBENGSYNC" and not CT_RABoss_Mods["洛欧塞布"]["engaged"] ) then
			CT_RABoss_MRLoatheb_Start();
		end

	elseif ( event == "engagecheck" and not CT_RABoss_Mods["洛欧塞布"]["engaged"] ) then
		if ( UnitName("target") == CT_RABOSS_MRLOATHEB_BOSSNAME and UnitAffectingCombat("target") ) then
			CT_RABoss_MRLoatheb_Start();
			CT_RA_SendMessage("LOATHEBENGSYNC");

		elseif ( UnitName("playertarget") == CT_RABOSS_MRLOATHEB_BOSSNAME and UnitAffectingCombat("playertarget") ) then
			CT_RABoss_MRLoatheb_Start();
			CT_RA_SendMessage("LOATHEBENGSYNC");
		else
			local i
			for i = 1, GetNumRaidMembers(), 1 do
				if ( UnitName("raid"..i.."target") == CT_RABOSS_MRLOATHEB_BOSSNAME and UnitAffectingCombat("raid"..i.."target")) then
					CT_RABoss_MRLoatheb_Start();
					CT_RA_SendMessage("LOATHEBENGSYNC");
					break;
				end
			end
		end

	elseif ( event == "doom5") then
		CT_RABoss_Announce(CT_RABOSS_MRLOATHEB_DOOM_5SEC, CT_RABoss_Mods["洛欧塞布"]["announce"]);
		CT_RABoss_PlaySound(3);

	elseif ( event == "undoom") then
		CT_RABoss_Mods["洛欧塞布"]["doomtrip"] = false;
	end
end


-- Instructor Razuvious (01/09/2006) - Added shieldwall anouncements.

function CT_RABoss_Razuvious_Stop()
	CT_RABoss_Mods["教官拉苏维奥斯"]["combat"] = nil;
	CT_RABoss_Mods["教官拉苏维奥斯"]["lastAction"] = nil;

	CT_RABoss_UnSchedule("CT_RABoss_Razuvious_EventHandler");
end

function CT_RABoss_Razuvious_OnLoad()
	CT_RABoss_AddMod("教官拉苏维奥斯", CT_RABOSS_RAZUVIOUS_INFO, 1, CT_RABOSS_LOCATIONS_NAXXRAMAS);
	
	CT_RABoss_AddEvent("教官拉苏维奥斯", "CHAT_MSG_SPELL_CREATURE_VS_SELF_DAMAGE", CT_RABoss_Razuvious_EventHandler);
	CT_RABoss_AddEvent("教官拉苏维奥斯", "CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE", CT_RABoss_Razuvious_EventHandler);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -