📄 naxxramas.lua
字号:
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 + -