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

📄 naxxramas.lua

📁 时间太紧了
💻 LUA
📖 第 1 页 / 共 5 页
字号:

		elseif ( string.find(arg1, CT_RABOSS_MRHORSEMEN_METEORSTRING) and not CT_RABoss_Mods["死亡骑士"]["meteortrip"]) then
			CT_RABoss_Announce(CT_RABOSS_MRHORSEMEN_METEORWARN, CT_RABoss_Mods["死亡骑士"]["announce"]);
			CT_RABoss_PlaySound(3);
			CT_RABoss_Mods["死亡骑士"]["meteortrip"] = true;
			CT_RABoss_Schedule("CT_RABoss_MRHorsemen_EventHandler", 5, "unmeteor");
				CT_RABoss_Mods["死亡骑士"]["lastaction"] = time();

			if ( CT_RA_Level >= 1 and CT_RABoss_Mods["死亡骑士"]["announce"] ) then
				CT_RA_SendMessage(format(CT_RABOSS_MRMUKKA_STRING, "3", "12", CT_RABOSS_MRHORSEMEN_METEOR, "12", "255*0*0"));
			end

		elseif ( string.find(arg1, CT_RABOSS_MRHORSEMEN_WRATHSTRING) and not CT_RABoss_Mods["死亡骑士"]["wrathtrip"] ) then
			CT_RABoss_Announce(CT_RABOSS_MRHORSEMEN_WRATHWARN, CT_RABoss_Mods["死亡骑士"]["announce"]);
			CT_RABoss_PlaySound(3);
			CT_RABoss_Mods["死亡骑士"]["wrathtrip"] = true;
			CT_RABoss_Schedule("CT_RABoss_MRHorsemen_EventHandler", 5, "unwrath");
			CT_RABoss_Mods["死亡骑士"]["lastaction"] = time();

			if ( CT_RA_Level >= 1 and CT_RABoss_Mods["死亡骑士"]["announce"] ) then
				CT_RA_SendMessage(format(CT_RABOSS_MRMUKKA_STRING, "4", "12", CT_RABOSS_MRHORSEMEN_WRATH, "12", "255*0*0"));
			end
		end

	elseif ( event == "CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS" ) then
		if ( string.find(arg1, CT_RABOSS_MRHORSEMEN_SHIELDSTRING) ) then
			if ( string.find(arg1, CT_RABOSS_MRHORSEMEN_THANE) ) then
				CT_RABoss_Announce(format(CT_RABOSS_MRHORSEMEN_SHIELDWARN, CT_RABOSS_MRHORSEMEN_THANE), CT_RABoss_Mods["死亡骑士"]["announce"]);
				CT_RABoss_PlaySound(2);
				CT_RABoss_Schedule("CT_RABoss_MRHorsemen_EventHandler", 20, "shieldover"..CT_RABOSS_MRHORSEMEN_THANE);
				CT_RABoss_Mods["死亡骑士"]["lastaction"] = time();

			elseif ( string.find(arg1, CT_RABOSS_MRHORSEMEN_MOGRAINE) ) then
				CT_RABoss_Announce(format(CT_RABOSS_MRHORSEMEN_SHIELDWARN, CT_RABOSS_MRHORSEMEN_MOGRANE), CT_RABoss_Mods["死亡骑士"]["announce"]);
				CT_RABoss_PlaySound(2);
				CT_RABoss_Schedule("CT_RABoss_MRHorsemen_EventHandler", 20, "shieldover"..CT_RABOSS_MRHORSEMEN_MOGRANE);	
				CT_RABoss_Mods["死亡骑士"]["lastaction"] = time();

			elseif ( string.find(arg1, CT_RABOSS_MRHORSEMEN_ZELIEK) ) then
				CT_RABoss_Announce(format(CT_RABOSS_MRHORSEMEN_SHIELDWARN, CT_RABOSS_MRHORSEMEN_ZELIEK), CT_RABoss_Mods["死亡骑士"]["announce"]);
				CT_RABoss_PlaySound(2);
				CT_RABoss_Schedule("CT_RABoss_MRHorsemen_EventHandler", 20, "shieldover"..CT_RABOSS_MRHORSEMEN_ZELIEK);
				CT_RABoss_Mods["死亡骑士"]["lastaction"] = time();

			elseif ( string.find(arg1, CT_RABOSS_MRHORSEMEN_BLAUMEUX) ) then
				CT_RABoss_Announce(format(CT_RABOSS_MRHORSEMEN_SHIELDWARN, CT_RABOSS_MRHORSEMEN_BLAUMEUX), CT_RABoss_Mods["死亡骑士"]["announce"]);
				CT_RABoss_PlaySound(2);
				CT_RABoss_Schedule("CT_RABoss_MRHorsemen_EventHandler", 20, "shieldover"..CT_RABOSS_MRHORSEMEN_BLAUMEUX);
				CT_RABoss_Mods["死亡骑士"]["lastaction"] = time();
			end
		end

	elseif ( strsub( event, 1, 10 ) == "shieldover" ) then
		local bossname = strsub( event, 11 );
		CT_RABoss_Announce(format(CT_RABOSS_MRHORSEMEN_SHIELDOVER, bossname), CT_RABoss_Mods["死亡骑士"]["announce"]);
		CT_RABoss_PlaySound(3);

	elseif ( event == "PLAYER_REGEN_DISABLED" and not CT_RABoss_Mods["死亡骑士"]["engaged"] ) then
		CT_RABoss_Schedule("CT_RABoss_MRHorsemen_EventHandler", 5, "engagecheck");	

	elseif ( event == "CHAT_MSG_ADDON" and arg1 == "CTRA" ) then
		if ( arg2 == "HORSEMENENGSYNC" and not CT_RABoss_Mods["死亡骑士"]["engaged"] ) then
			CT_RABoss_MRHorsemen_Start();
		end

	elseif ( event == "engagecheck" and not CT_RABoss_Mods["死亡骑士"]["engaged"] ) then
		if ( ( UnitName("target") == CT_RABOSS_MRHORSEMEN_THANE or UnitName("target") == CT_RABOSS_MRHORSEMEN_MOGRAINE or UnitName("target") == CT_RABOSS_MRHORSEMEN_ZELIEK or UnitName("target") == CT_RABOSS_MRHORSEMEN_BLAUMEUX ) and UnitAffectingCombat("target") ) then
			CT_RABoss_MRHorsemen_Start();
			CT_RA_SendMessage("HORSEMENENGSYNC");

		elseif ( ( UnitName("playertarget") == CT_RABOSS_MRHORSEMEN_THANE or UnitName("playertarget") == CT_RABOSS_MRHORSEMEN_MOGRAINE or UnitName("playertarget") == CT_RABOSS_MRHORSEMEN_ZELIEK or UnitName("playertarget") == CT_RABOSS_MRHORSEMEN_BLAUMEUX ) and UnitAffectingCombat("playertarget") ) then
			CT_RABoss_MRHorsemen_Start();
			CT_RA_SendMessage("HORSEMENENGSYNC");
		else
			local i
			for i = 1, GetNumRaidMembers(), 1 do
				if ( ( UnitName("raid"..i.."target") == CT_RABOSS_MRHORSEMEN_THANE or UnitName("raid"..i.."target") == CT_RABOSS_MRHORSEMEN_MOGRAINE or UnitName("raid"..i.."target") == CT_RABOSS_MRHORSEMEN_ZELIEK or UnitName("raid"..i.."target") == CT_RABOSS_MRHORSEMEN_BLAUMEUX ) and UnitAffectingCombat("raid"..i.."target") ) then
					CT_RABoss_MRMHorsemen_Start();
					CT_RA_SendMessage("HORSEMENENGSYNC");
					break;
				end
			end
		end

	elseif ( event == "mark5" ) then
		CT_RABoss_Announce(format(CT_RABOSS_MRHORSEMEN_MARKWARN, CT_RABoss_Mods["死亡骑士"]["marks"]), CT_RABoss_Mods["死亡骑士"]["announce"]);
		CT_RABoss_PlaySound(3);

	elseif ( event == "unmeteor" ) then
		CT_RABoss_Mods["死亡骑士"]["meteortrip"] = false;

	elseif ( event == "unwrath" ) then
		CT_RABoss_Mods["死亡骑士"]["wrathtrip"] = false;

	end
end


-- Patchwerk - (19/08/2006) - Changed naming.
function CT_RABoss_MRPatchwerk_OnLoad()
	CT_RABoss_AddMod("帕奇维克", CT_RABOSS_MRPATCHWERK_INFO, 1, CT_RABOSS_LOCATIONS_NAXXRAMAS);
	CT_RABoss_AddEvent("帕奇维克", "CHAT_MSG_MONSTER_YELL", CT_RABoss_MRPatchwerk_EventHandler);
	CT_RABoss_AddEvent("帕奇维克", "CHAT_MSG_MONSTER_EMOTE", CT_RABoss_MRPatchwerk_EventHandler);
	CT_RABoss_AddEvent("帕奇维克", "CHAT_MSG_COMBAT_CREATURE_VS_CREATURE_HITS", CT_RABoss_MRPatchwerk_EventHandler);
	CT_RABoss_AddEvent("帕奇维克", "CHAT_MSG_COMBAT_CREATURE_VS_PARTY_HITS", CT_RABoss_MRPatchwerk_EventHandler);
	CT_RABoss_AddEvent("帕奇维克", "CHAT_MSG_COMBAT_CREATURE_VS_SELF_HITS", CT_RABoss_MRPatchwerk_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_MRPatchwerk_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_MRPATCHWERK_YELL1 or arg1 == CT_RABOSS_MRPATCHWERK_YELL2 ) then
			CT_RABoss_Announce(CT_RABOSS_MRPATCHWERK_ENGAGED, CT_RABoss_Mods["帕奇维克"]["announce"]);
			CT_RABoss_PlaySound(3);
			CT_RABoss_Schedule("CT_RABoss_MRPatchwerk_EventHandler", 30, "enragetimer");
			CT_RABoss_Mods["帕奇维克"]["enrageleft"] = 6.5;
			CT_RABoss_Mods["帕奇维克"]["lastaction"] = time();

		elseif ( arg1 == CT_RABOSS_MRPATCHWERK_DEAD ) then
			CT_RABoss_UnSchedule("CT_RABoss_MRPatchwerk_EventHandler");
		end
	
	elseif ( event == "enragetimer") then
		if ( not CT_RABoss_Mods["帕奇维克"]["lastaction"] or ( time() - CT_RABoss_Mods["帕奇维克"]["lastaction"] ) > 30 ) then
			return;

		elseif ( CT_RABoss_Mods["帕奇维克"]["enrageleft"] == 0.5 ) then
			CT_RABoss_Schedule("CT_RABoss_MRPatchwerk_EventHandler", 15, "enrage15");
			CT_RABoss_Schedule("CT_RABoss_MRPatchwerk_EventHandler", 25, "enrage5");
			CT_RABoss_Announce(format(CT_RABOSS_MRPATCHWERK_SECWARN, "30"), CT_RABoss_Mods["帕奇维克"]["announce"]);
			CT_RABoss_PlaySound(3);
		else
			if ( CT_RABoss_Mods["帕奇维克"]["enrageleft"] == 1 ) then
				CT_RABoss_Announce(CT_RABOSS_MRPATCHWERK_1MINWARN, CT_RABoss_Mods["帕奇维克"]["announce"]);
			else
				CT_RABoss_Announce(format(CT_RABOSS_MRPATCHWERK_WARN, CT_RABoss_Mods["帕奇维克"]["enrageleft"]), CT_RABoss_Mods["帕奇维克"]["announce"]);
			end

			CT_RABoss_Mods["帕奇维克"]["enrageleft"] = CT_RABoss_Mods["帕奇维克"]["enrageleft"]-0.5;
			CT_RABoss_Schedule("CT_RABoss_MRPatchwerk_EventHandler", 30, "enragetimer");
			CT_RABoss_PlaySound(3);
		end

	elseif ( event == "CHAT_MSG_MONSTER_EMOTE" and arg2 == CT_RABOSS_MRPATCHWERK_BOSSNAME ) then
		if ( arg1 == CT_RABOSS_MRPATCHWERK_ENRAGESTRING ) then
			CT_RABoss_Announce(CT_RABOSS_MRPATCHWERK_ENRAGEWARNING, CT_RABoss_Mods["帕奇维克"]["announce"]);
			CT_RABoss_PlaySound(2);
			CT_RABoss_Mods["帕奇维克"]["lastaction"] = time();

		elseif ( arg1 == CT_RABOSS_MRPATCHWERK_BERSERKSTRING ) then
			CT_RABoss_Announce(CT_RABOSS_MRPATCHWERK_BERSERKWARNING, CT_RABoss_Mods["帕奇维克"]["announce"]);
			CT_RABoss_PlaySound(1);
			CT_RABoss_UnSchedule("CT_RABoss_MRPatchwerk_EventHandler");
		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_MRPATCHWERK_BOSSNAME) ) then
			CT_RABoss_Mods["帕奇维克"]["lastaction"] = time();
		end	

	elseif ( event == "enrage15" ) then
		CT_RABoss_Announce(format(CT_RABOSS_MRPATCHWERK_SECWARN, "15"), CT_RABoss_Mods["帕奇维克"]["announce"]);
		CT_RABoss_PlaySound(3);

	elseif ( event == "enrage5" ) then
		CT_RABoss_Announce(format(CT_RABOSS_MRPATCHWERK_SECWARN, "5"), CT_RABoss_Mods["帕奇维克"]["announce"]);
		CT_RABoss_PlaySound(3);
	end
end


-- Grobbulus - (19/08/2006) - Changed naming.
function CT_RABoss_Grobbulus_OnLoad()
	CT_RABoss_AddMod("格罗布鲁斯", CT_RABOSS_GROBBULUS_INFO, 1, CT_RABOSS_LOCATIONS_NAXXRAMAS);
	CT_RABoss_AddEvent("格罗布鲁斯", "PLAYER_REGEN_DISABLED", CT_RABoss_Grobbulus_EventHandler);
	CT_RABoss_AddEvent("格罗布鲁斯", "CHAT_MSG_CHANNEL", CT_RABoss_Grobbulus_EventHandler);
	CT_RABoss_AddEvent("格罗布鲁斯", "CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE", CT_RABoss_Grobbulus_EventHandler);
	CT_RABoss_AddEvent("格罗布鲁斯", "CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE", CT_RABoss_Grobbulus_EventHandler);
	CT_RABoss_AddEvent("格罗布鲁斯", "CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE", CT_RABoss_Grobbulus_EventHandler);
	CT_RABoss_AddEvent("格罗布鲁斯", "CHAT_MSG_SPELL_CREATURE_VS_SELF_DAMAGE", CT_RABoss_Grobbulus_EventHandler);
	CT_RABoss_AddEvent("格罗布鲁斯", "CHAT_MSG_SPELL_CREATURE_VS_PARTY_DAMAGE", CT_RABoss_Grobbulus_EventHandler);
	CT_RABoss_AddEvent("格罗布鲁斯", "CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE", CT_RABoss_Grobbulus_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_GROBBULUS_ALERT, CT_RABOSS_GROBBULUS_ALERT_INFO }, "CT_RABoss_ModInfo", "alertnearby", "CT_RABoss_SetInfo");
	CT_RABoss_AddDropDownButton("格罗布鲁斯", { CT_RABOSS_GROBBULUS_TELL, CT_RABOSS_GROBBULUS_TELL_INFO }, "CT_RABoss_ModInfo", "sendtell", "CT_RABoss_SetInfo");
	
	CT_RABoss_SetVar("格罗布鲁斯", "alertnearby", 1);
end

function CT_RABoss_Grobbulus_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;
	end

	if ( event == "PLAYER_REGEN_DISABLED" and not CT_RABoss_Mods["格罗布鲁斯"]["engaged"] ) then
		if ( UnitExists("target") and UnitName("target") == CT_RABOSS_NAMES["格罗布鲁斯"] and UnitAffectingCombat("target") ) then
			CT_RABoss_Mods["格罗布鲁斯"]["engaged"] = true;
			CT_RABoss_Announce(CT_RABOSS_GROBBULUS_ENGAGED, CT_RABoss_Mods["格罗布鲁斯"]["announce"]);
			CT_RABoss_Schedule("CT_RABoss_Grobbulus_EventHandler", 20, "sspray5sec");
			CT_RABoss_VisualTimer.addTimer("GrobbulusSSpray", 25, CT_RABOSS_GROBBULUS_SSPRAY_TIMER);
			if ( CT_RA_Level >= 1 ) then
				CT_RA_SendMessage("GROBBULUSSTARTSYNC", 1);
			end
			CT_RABoss_Mods["格罗布鲁斯"]["lastaction"] = time();
		end

	elseif ( event == "CHAT_MSG_ADDON" and arg1 == "CTRA_BOSS" and arg3 == "RAID" ) then
		if ( arg1 == "GROBBULUSSTARTSYNC" and not CT_RABoss_Mods["格罗布鲁斯"]["engaged"] ) then
			CT_RABoss_Mods["格罗布鲁斯"]["engaged"] = true;
			CT_RABoss_Schedule("CT_RABoss_Grobbulus_EventHandler", 20, "sspray5sec");
			CT_RABoss_VisualTimer.addTimer("GrobbulusSSpray", 25, CT_RABOSS_GROBBULUS_SSPRAY_TIMER);	
			CT_RABoss_Mods["格罗布鲁斯"]["lastaction"] = time();
		elseif ( arg1 == "GROBBULUSSSPRAYSYNC" and not CT_RABoss_Mods["格罗布鲁斯"]["SSprayTrip"] ) then
			CT_RABoss_Mods["格罗布鲁斯"]["SSprayTrip"] = true;
			CT_RABoss_Announce(CT_RABOSS_GROBBULUS_SSPRAY_WARN);
			CT_RABoss_Schedule("CT_RABoss_Grobbulus_EventHandler", 27, "sspray5sec");
			CT_RABoss_VisualTimer.addTimer("GrobbulusSSpray", 32, CT_RABOSS_GROBBULUS_SSPRAY_TIMER);
			CT_RABoss_Mods["格罗布鲁斯"]["lastaction"] = time();
		end

	elseif ( event == "CHAT_MSG_SPELL_CREATURE_VS_SELF_DAMAGE" or  event == "CHAT_MSG_SPELL_CREATURE_VS_PARTY_DAMAGE" or event == "CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE" ) then
		if ( not CT_RABoss_Mods["格罗布鲁斯"]["SSprayTrip"] and string.find(arg1, CT_RABOSS_GROBBULUS_SSPRAY_DETECT) ) then
			CT_RABoss_Mods["格罗布鲁斯"]["SSprayTrip"] = true;
			CT_RABoss_Announce(CT_RABOSS_GROBBULUS_SSPRAY_WARN, CT_RABoss_Mods["格罗布鲁斯"]["announce"]);
			CT_RABoss_Schedule("CT_RABoss_Grobbulus_EventHandler", 27, "sspray5sec");
			CT_RABoss_VisualTimer.addTimer("GrobbulusSSpray", 32, CT_RABOSS_GROBBULUS_SSPRAY_TIMER);
			if ( CT_RA_Level >= 1 ) then
				CT_RA_SendMessage("GROBBULUSSSPRAYSYNC");
			end
			CT_RABoss_Mods["格罗布鲁斯"]["lastaction"] = time();
		end
		
	elseif ( event == "CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE" or ( ( event == "CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE" or event == "CHA

⌨️ 快捷键说明

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