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

📄 naxxramas.lua

📁 时间太紧了
💻 LUA
📖 第 1 页 / 共 5 页
字号:
		CT_RABoss_Mods["黑女巫法琳娜"]["silenced"] = nil;

	elseif ( event == "enragePreWarn30") then
		CT_RABoss_Announce(format(CT_RABOSS_FAERLINA_ENRAGE_PREALERT, "30"), CT_RABoss_Mods["黑女巫法琳娜"]["announce"]);
		CT_RABoss_PlaySound(3);

	elseif ( event == "enragePreWarn15") then
		CT_RABoss_Announce(format(CT_RABOSS_FAERLINA_ENRAGE_PREALERT, "15"), CT_RABoss_Mods["黑女巫法琳娜"]["announce"]);
		CT_RABoss_PlaySound(3);

	elseif ( event == "enragePreWarn5") then
		CT_RABoss_Announce(format(CT_RABOSS_FAERLINA_ENRAGE_PREALERT, "5"), CT_RABoss_Mods["黑女巫法琳娜"]["announce"]);
		CT_RABoss_PlaySound(3);

	elseif ( event == "enrageWarn" ) then
		CT_RABoss_Announce(CT_RABOSS_FAERLINA_ENRAGEEND_ALERT, CT_RABoss_Mods["黑女巫法琳娜"]["announce"]);
		CT_RABoss_PlaySound(3);
	end
end


-- Maexxna
function CT_RABoss_Maexxna_Stop()
	CT_RABoss_Mods["迈克斯纳"]["engaged"] = nil;
	CT_RABoss_Mods["迈克斯纳"]["lastAction"] = nil;
	CT_RABoss_Mods["迈克斯纳"]["sPlayers"] = "";
	CT_RABoss_Mods["迈克斯纳"]["nbWebWrap"] = 0;

	CT_RABoss_UnSchedule("CT_RABoss_Maexxna_EventHandler");
	CT_RABoss_UnSchedule("CT_RABoss_Maexxna_EventHandler");
end

function CT_RABoss_Maexxna_OnLoad()
	CT_RABoss_AddMod("迈克斯纳", CT_RABOSS_MAEXXNA_INFO, 1, CT_RABOSS_LOCATIONS_NAXXRAMAS);

	CT_RABoss_AddEvent("迈克斯纳", "CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE", CT_RABoss_Maexxna_EventHandler);
	CT_RABoss_AddEvent("迈克斯纳", "CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE", CT_RABoss_Maexxna_EventHandler);
	CT_RABoss_AddEvent("迈克斯纳", "CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE", CT_RABoss_Maexxna_EventHandler);
	CT_RABoss_AddEvent("迈克斯纳", "CHAT_MSG_MONSTER_EMOTE", CT_RABoss_Maexxna_EventHandler);
	CT_RABoss_AddEvent("迈克斯纳", "PLAYER_REGEN_DISABLED", CT_RABoss_Maexxna_EventHandler);
	CT_RABoss_AddEvent("迈克斯纳", "UNIT_HEALTH", CT_RABoss_Huhuran_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_Mods["迈克斯纳"]["engaged"] = nil;
	CT_RABoss_Mods["迈克斯纳"]["lastAction"] = nil;
	CT_RABoss_Mods["迈克斯纳"]["healthLow"] = 33;
	CT_RABoss_Mods["迈克斯纳"]["sPlayers"] = "";
	CT_RABoss_Mods["迈克斯纳"]["nbWebWrap"] = 0;

	CT_RA_RegisterSlashCmd("/maexxnastop", "重置迈克斯纳", 30, "MAEXXNARESET", function()
		CT_RABoss_Maexxna_Stop();
	end, "/maexxnastop");

end
	
function CT_RABoss_Maexxna_EventHandler(event)
	if ( not CT_RABoss_Mods["迈克斯纳"] or not CT_RABoss_Mods["迈克斯纳"]["status"] or not CT_RABoss_Mods["迈克斯纳"].enabled ) then
		return;
	end

	if ( event == "PLAYER_REGEN_DISABLED" ) then
		if ( not CT_RABoss_Mods["迈克斯纳"]["engaged"] ) then
			CT_RABoss_Schedule("CT_RABoss_Maexxna_EventHandler", 5, "checkStart");
		end

	elseif ( event == "checkStart" ) then
		if ( UnitName("target") and UnitName("target") == CT_RABOSS_NAMES["迈克斯纳"] and UnitAffectingCombat("target") ) then
			CT_RABoss_Mods["迈克斯纳"]["engaged"] = 1;
			CT_RABoss_Mods["迈克斯纳"]["nbWebWrap"] = 0;
			CT_RABoss_Mods["迈克斯纳"]["lastAction"] = GetTime();

			CT_RABoss_Schedule("CT_RABoss_Maexxna_EventHandler", 5, "webWrapWarn5");
			CT_RABoss_VisualTimer.addTimer("MaexxnaWebWrap", 10, CT_RABOSS_MAEXXNA_WEBWRAP_TIMER, "yellow");
			CT_RABoss_Schedule("CT_RABoss_Maexxna_EventHandler", 15, "spiderWarn5");
			CT_RABoss_VisualTimer.addTimer("MaexxnaSpider", 22, CT_RABOSS_MAEXXNA_SPIDER_TIMER, "orange");
			CT_RABoss_Schedule("CT_RABoss_Maexxna_EventHandler", 25, "webSprayWarn5");
			CT_RABoss_VisualTimer.addTimer("MaexxnaWebSpray", 32, CT_RABOSS_MAEXXNA_WEBSPRAY_TIMER, "green");
		end
	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
		-- Web Spray
		if ( string.find(arg1, CT_RABOSS_MAEXXNA_WEBSPRAY_DETECT) ) then
			if ( not CT_RABoss_Mods["迈克斯纳"]["webSprayTrip"] ) then
				CT_RABoss_Mods["迈克斯纳"]["webSprayTrip"] = 1;
				CT_RABoss_Mods["迈克斯纳"]["lastAction"] = GetTime();

				CT_RABoss_Announce(CT_RABOSS_MAEXXNA_WEBBED_ALERT, CT_RABoss_Mods["迈克斯纳"]["announce"]);

				CT_RABoss_UnSchedule("CT_RABoss_Maexxna_EventHandler", "spiderWarn5");
				CT_RABoss_Schedule("CT_RABoss_Maexxna_EventHandler", 25, "spiderWarn5");
				CT_RABoss_Schedule("CT_RABoss_Maexxna_EventHandler", 35, "webSprayWarn5");
				CT_RABoss_VisualTimer.addTimer("MaexxnaWebSpray", 40, CT_RABOSS_MAEXXNA_WEBSPRAY_TIMER, "green");
			end
		end


		-- Web Wrap
		local _, _, sPlayer, sType = string.find(arg1, CT_RABOSS_MAEXXNA_WEBWRAP_DETECT);

		if ( sPlayer and sType ) then
			if ( not CT_RABoss_Mods["迈克斯纳"]["webWrapTrip"] ) then
				CT_RABoss_Mods["迈克斯纳"]["sPlayers"] = "";
				CT_RABoss_Mods["迈克斯纳"]["nbWebWrap"] = 0;
				CT_RABoss_Mods["迈克斯纳"]["webWrapTrip"] = 1;
				CT_RABoss_Schedule("CT_RABoss_Maexxna_EventHandler", 35, "webWrapWarn5");
				CT_RABoss_VisualTimer.addTimer("MaexxnaWebWrap", 40, CT_RABOSS_MAEXXNA_WEBWRAP_TIMER, "yellow");
			end

			CT_RABoss_Mods["迈克斯纳"]["lastAction"] = GetTime();
			CT_RABoss_Mods["迈克斯纳"]["nbWebWrap"] = CT_RABoss_Mods["迈克斯纳"]["nbWebWrap"] + 1;

			if ( sPlayer == CT_RABOSS_SELF1 and sType == CT_RABOSS_SELF2 )then
				sPlayer = UnitName("player");
			end
			
			CT_RABoss_Mods["迈克斯纳"]["sPlayers"] = CT_RABoss_Mods["迈克斯纳"]["sPlayers"] .. " " .. sPlayer;

			if ( CT_RABoss_Mods["迈克斯纳"]["nbWebWrap"] == 3 ) then
				CT_RABoss_Announce(format(CT_RABOSS_MAEXXNA_WEBWRAP_ALERT, CT_RABoss_Mods["迈克斯纳"]["sPlayers"]), CT_RABoss_Mods["迈克斯纳"]["announce"]);
			end
		end

	elseif ( event == "webWrapWarn5" ) then
		CT_RABoss_Mods["迈克斯纳"]["webWrapTrip"] = nil;
		CT_RABoss_Announce(format(CT_RABOSS_MAEXXNA_WEBWRAP_PREALERT, "5"), CT_RABoss_Mods["迈克斯纳"]["announce"]);

	elseif ( event == "spiderWarn5" ) then
		CT_RABoss_Announce(format(CT_RABOSS_MAEXXNA_SPIDER_PREALERT, "5"), CT_RABoss_Mods["迈克斯纳"]["announce"]);
		CT_RABoss_Schedule("CT_RABoss_Maexxna_EventHandler", 5, "spiderWarn");

	elseif ( event == "spiderWarn" ) then
		CT_RABoss_Announce(CT_RABOSS_MAEXXNA_SPIDERPOP_ALERT, CT_RABoss_Mods["迈克斯纳"]["announce"]);
		CT_RABoss_Schedule("CT_RABoss_Maexxna_EventHandler", 35, "spiderWarn5");
		CT_RABoss_VisualTimer.addTimer("MaexxnaSpider", 40, CT_RABOSS_MAEXXNA_SPIDER_TIMER, "orange");

	elseif ( event == "webSprayWarn5" ) then
		CT_RABoss_Announce(format(CT_RABOSS_MAEXXNA_WEBSPRAY_PREALERT, "5"), CT_RABoss_Mods["迈克斯纳"]["announce"]);
		CT_RABoss_Mods["迈克斯纳"]["webSprayTrip"] = nil;

	end

	-- Enrage pre-alert
	if ( UnitName("target") == CT_RABOSS_NAMES["迈克斯纳"] ) then
		local targetHealth = UnitHealth("target");
		
		-- Alert near Enrage event
		if ( targetHealth <= CT_RABoss_Mods["迈克斯纳"]["healthLow"] and targetHealth > 30 and not CT_RABoss_Mods["迈克斯纳"]["priorWarning"] ) then
			CT_RABoss_Announce(CT_RABOSS_MAEXXNA_ENRAGE_PREALERT, CT_RABoss_Mods["迈克斯纳"]["announce"]);
			CT_RABoss_Mods["迈克斯纳"]["priorWarning"] = true;
		
		-- Enrage pre-alert deactivation
		elseif ( targetHealth <= 30 ) then
			CT_RABoss_Mods["迈克斯纳"]["priorWarning"] = false;
		end

	-- Enrage alert
	elseif ( event == "CHAT_MSG_MONSTER_EMOTE" and arg2 == CT_RABOSS_NAMES["迈克斯纳"] and string.find(arg1, CT_RABOSS_MAEXXNA_ENRAGE_DETECT) ) then
		CT_RABoss_Mods["迈克斯纳"]["lastAction"] = GetTime();

		CT_RABoss_Announce(CT_RABOSS_MAEXXNA_ENRAGE_ALERT, CT_RABoss_Mods["迈克斯纳"]["announce"]);
	end

	if ( CT_RABoss_Mods["迈克斯纳"]["lastAction"] and (GetTime() - CT_RABoss_Mods["迈克斯纳"]["lastAction"]) > 60 ) then
		CT_RABoss_Maexxna_Stop();
	end
end



-- Noth The Plaguebringer (19/08/2006) - Changed naming.
function CT_RABoss_MRNoth_OnLoad()
	CT_RABoss_AddMod("瘟疫使者诺斯", CT_RABOSS_MRNOTH_INFO, 1, CT_RABOSS_LOCATIONS_NAXXRAMAS);
	CT_RABoss_AddEvent("瘟疫使者诺斯", "CHAT_MSG_MONSTER_YELL", CT_RABoss_MRNoth_EventHandler);
	CT_RABoss_AddEvent("瘟疫使者诺斯", "CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS", CT_RABoss_MRNoth_EventHandler);
	CT_RABoss_AddEvent("瘟疫使者诺斯", "CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE", CT_RABoss_MRNoth_EventHandler);
	CT_RABoss_AddEvent("瘟疫使者诺斯", "CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE", CT_RABoss_MRNoth_EventHandler);
	CT_RABoss_AddEvent("瘟疫使者诺斯", "CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE", CT_RABoss_MRNoth_EventHandler);
	CT_RABoss_AddEvent("瘟疫使者诺斯", "CHAT_MSG_COMBAT_CREATURE_VS_CREATURE_HITS", CT_RABoss_MRNoth_EventHandler);
	CT_RABoss_AddEvent("瘟疫使者诺斯", "CHAT_MSG_COMBAT_CREATURE_VS_PARTY_HITS", CT_RABoss_MRNoth_EventHandler);
	CT_RABoss_AddEvent("瘟疫使者诺斯", "CHAT_MSG_COMBAT_CREATURE_VS_SELF_HITS", CT_RABoss_MRNoth_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_MRNOTH_CURSE_ALERT, CT_RABOSS_MRNOTH_CURSE_ALERT_INFO }, "CT_RABoss_ModInfo", "enablecurse", "CT_RABoss_SetInfo");
	
	CT_RABoss_SetVar("瘟疫使者诺斯", "enablecurse", 1);
end

function CT_RABoss_MRNoth_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_MRNOTH_YELL1 or arg1 == CT_RABOSS_MRNOTH_YELL2 or arg1 == CT_RABOSS_MRNOTH_YELL3 ) then
			CT_RABoss_Announce(CT_RABOSS_MRNOTH_ENGAGED, CT_RABoss_Mods["瘟疫使者诺斯"]["announce"]);
			CT_RABoss_PlaySound(3);
			CT_RABoss_Mods["瘟疫使者诺斯"]["timeonbalcony"] = 70;
			CT_RABoss_Mods["瘟疫使者诺斯"]["timeinroom"] = 90;
			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");
			CT_RABoss_Mods["瘟疫使者诺斯"]["lastaction"] = time()

			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, "90", "0*255*0"));
			end

		elseif ( arg1 == CT_RABOSS_MRNOTH_DEAD ) then
			CT_RABoss_UnSchedule("CT_RABoss_MRNoth_EventHandler");
		end
		
	elseif ( event == "CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS" ) then
		if ( arg1 == CT_RABOSS_MRNOTH_BLINKSTRING ) then
			CT_RABoss_Announce(CT_RABOSS_MRNOTH_BLINKWARNING, CT_RABoss_Mods["瘟疫使者诺斯"]["announce"]);
			CT_RABoss_PlaySound(2);
			CT_RABoss_Schedule("CT_RABoss_MRNoth_EventHandler", 28, "blinkwarn");
			CT_RABoss_Mods["瘟疫使者诺斯"]["lastaction"] = time();

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

	elseif ( event == "CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE" or event == "CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE" or event == "CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE" )  then
		if ( string.find(arg1, CT_RABOSS_MRNOTH_CURSESTRING) ) then
			if ( CT_RABoss_Mods["瘟疫使者诺斯"]["enablecurse"] and not CT_RABoss_Mods["瘟疫使者诺斯"]["cursetrip"] ) then
				CT_RABoss_Mods["瘟疫使者诺斯"]["cursetrip"] = true;
				CT_RABoss_Announce(CT_RABOSS_MRNOTH_DISPELL, CT_RABoss_Mods["瘟疫使者诺斯"]["announce"]);
				CT_RABoss_PlaySound(2);
				CT_RABoss_Schedule("CT_RABoss_MRNoth_EventHandler", 5, "precurse");
				CT_RABoss_Mods["瘟疫使者诺斯"]["lastaction"] = time();
			end
		end

	elseif ( event == "CHAT_MSG_COMBAT_CREATURE_VS_CREATURE_HITS" or event == "CHAT_MSG_COMBAT_CREATURE_VS_PARTY_HITS" or event == "CHAT_MSG_COMBAT_CREATURE_VS_SELF_HITS" ) then
		if ( string.find(arg1, CT_RABOSS_MRNOTH_BOSSNAME) or string.find(arg1, CT_RABOSS_MRNOTH_WARRIOR) or string.find(arg1, CT_RABOSS_MRNOTH_CHAMPION) or string.find(arg1, CT_RABOSS_MRNOTH_GUARDIAN) ) then
			CT_RABoss_Mods["瘟疫使者诺斯"]["lastaction"] = time();
		end	

	elseif ( event == "backinroom" ) then
		if ( not CT_RABoss_Mods["瘟疫使者诺斯"]["lastaction"] or ( time() - CT_RABoss_Mods["瘟疫使者诺斯"]["lastaction"] ) > 30 ) then
			return;
		else

⌨️ 快捷键说明

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