📄 blackwinglair.lua
字号:
elseif ( CT_RABoss_Chromaggus_PlayerDamageEvents[event] ) then
-- Check for new vulnerabilities
if ( not CT_RABoss_Mods["克洛玛古斯"]["Vulnerability"] ) then
local iStart, iEnd, hittype, damage, school = string.find(arg1, CT_RABOSS_CHROMAGGUS_SPELLDAMAGESTRING);
if ( tonumber(damage or "") ) then
CT_RABoss_Debug(1, "Registered hit", hittype, tonumber(damage), school);
-- Used to make sure we're still fighting
CT_RABoss_Mods["克洛玛古斯"]["LastAction"] = currTime;
if (
( tonumber(damage) >= CT_RABOSS_CHROMAGGUS_ELEMENTALSHIELDLIMIT_HIT and string.find(hittype, CT_RABOSS_CHROMAGGUS_HIT) ) or
( tonumber(damage) >= CT_RABOSS_CHROMAGGUS_ELEMENTALSHIELDLIMIT_CRIT and string.find(hittype, CT_RABOSS_CHROMAGGUS_CRIT) )
) then
CT_RABoss_Debug(4, "Setting vulnerability", school, (tonumber(damage) or -1));
CT_RABoss_Mods["克洛玛古斯"]["Vulnerability"] = school;
if ( CT_RABoss_Mods["克洛玛古斯"]["shieldWarning"] ) then
-- CT_RABoss_Announce(format(CT_RABOSS_CHROMAGGUS_NEWVULNERABILITYFOUNDWARNING, school), CT_RABoss_Mods["克洛玛古斯"]["announce"]);
CT_RABoss_Announce(format(CT_RABOSS_CHROMAGGUS_NEWVULNERABILITYFOUNDWARNING, school));
CT_RABoss_PlaySound(2);
end
end
end
end
elseif ( event == "PLAYER_REGEN_DISABLED" ) then
CT_RABoss_Mods["克洛玛古斯"]["checkStart"] = true;
CT_RABoss_Schedule("CT_RABoss_Chromaggus_OnEvent", 5, "checkStart");
elseif ( event == "checkStart" ) then
local shallRestoreTarget = false;
if ( CT_RABoss_Mods["克洛玛古斯"]["checkStart"] ) then
if ( not UnitExists("target") or ( UnitName("target") ~= CT_RABOSS_CHROMAGGUS_BOSSNAME and UnitClass("player") ~= CT_RA_ROGUE ) ) then
TargetByName(CT_RABOSS_CHROMAGGUS_BOSSNAME);
shallRestoreTarget = true;
end
if ( UnitExists("target") and UnitName("target") == CT_RABOSS_CHROMAGGUS_BOSSNAME and UnitAffectingCombat("target") ) then
CT_RABoss_Chromaggus_ResetMod();
-- Used to make sure we're still fighting
CT_RABoss_Mods["克洛玛古斯"]["LastAction"] = currTime;
CT_RABoss_Schedule("CT_RABoss_Chromaggus_OnEvent", CT_RABOSS_CHROMAGGUS_BREATHWARNINGTIME - CT_RABOSS_CHROMAGGUS_BREATHINTERVAL - 5, CT_RABOSS_CHROMAGGUS_BREATH1);
CT_RABoss_Schedule("CT_RABoss_Chromaggus_OnEvent", CT_RABOSS_CHROMAGGUS_BREATHWARNINGTIME - 5, CT_RABOSS_CHROMAGGUS_BREATH2);
CT_RABoss_VisualTimer.addTimer("ChromaggusBreath", 25, CT_RABoss_Mods["克洛玛古斯"][CT_RABOSS_CHROMAGGUS_BREATH1]);
else
CT_RABoss_Mods["克洛玛古斯"]["LastAction"] = nil;
end
if ( shallRestoreTarget ) then
TargetLastTarget();
end
end
CT_RABoss_Mods["克洛玛古斯"]["checkStart"] = nil;
end
end
-- Nefarian (Thanks to Sting of Blood Legion - Illidan Horde)
function CT_RABoss_Nefarian_OnLoad()
CT_RABoss_AddMod("奈法利安", CT_RABOSS_NEFARIAN_INFO, 1, CT_RABOSS_LOCATIONS_BLACKWINGSLAIR);
CT_RABoss_AddEvent("奈法利安", "CHAT_MSG_MONSTER_YELL", CT_RABoss_Nefarian_EventHandler);
CT_RABoss_AddEvent("奈法利安", "CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE", CT_RABoss_Nefarian_EventHandler);
CT_RABoss_AddEvent("奈法利安", "CHAT_MSG_COMBAT_HOSTILE_DEATH", CT_RABoss_Nefarian_EventHandler);
CT_RABoss_AddEvent("奈法利安", "CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE", CT_RABoss_Nefarian_EventHandler);
CT_RABoss_AddEvent("奈法利安", "CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE", CT_RABoss_Nefarian_EventHandler);
CT_RABoss_AddEvent("奈法利安", "CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE", CT_RABoss_Nefarian_EventHandler);
CT_RABoss_AddEvent("奈法利安", "CHAT_MSG_ADDON", CT_RABoss_Nefarian_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_NEFARIAN_SHADOWFLAME, CT_RABOSS_NEFARIAN_SHADOWFLAME_INFO }, "CT_RABoss_ModInfo", "shadowflame", "CT_RABoss_SetInfo");
CT_RABoss_AddDropDownButton("奈法利安", { CT_RABOSS_NEFARIAN_FEAR, CT_RABOSS_NEFARIAN_FEAR_INFO }, "CT_RABoss_ModInfo", "fearAlert", "CT_RABoss_SetInfo");
CT_RABoss_AddDropDownButton("奈法利安", { CT_RABOSS_NEFARIAN_VEIL, CT_RABOSS_NEFARIAN_VEIL_INFO }, "CT_RABoss_ModInfo", "veilOfShadow", "CT_RABoss_SetInfo");
CT_RABoss_AddDropDownButton("奈法利安", { CT_RABOSS_NEFARIAN_KC, CT_RABOSS_NEFARIAN_KC_INFO }, "CT_RABoss_ModInfo", "KillCount", "CT_RABoss_SetInfo");
CT_RABoss_AddDropDownButton("奈法利安", { CT_RABOSS_NEFARIAN_KCS, CT_RABOSS_NEFARIAN_KCS_INFO }, "CT_RABoss_ModInfo", "KillSync", "CT_RABoss_SetInfo");
CT_RABoss_AddDropDownButton("奈法利安", { CT_RABOSS_NEFARIAN_KCEST, CT_RABOSS_NEFARIAN_KCEST_INFO }, "CT_RABoss_ModInfo", "KillTime", "CT_RABoss_SetInfo");
--precast warnings
CT_RABoss_AddDropDownButton("奈法利安", { CT_RABOSS_NEFARIAN_PREFEAR, CT_RABOSS_NEFARIAN_PREFEAR_INFO }, "CT_RABoss_ModInfo", "PrefearAlert", "CT_RABoss_SetInfo");
CT_RABoss_AddDropDownButton("奈法利安", { CT_RABOSS_NEFARIAN_PRESHAD, CT_RABOSS_NEFARIAN_PRESHAD_INFO }, "CT_RABoss_ModInfo", "PreShadAlert", "CT_RABoss_SetInfo");
CT_RABoss_AddDropDownButton("奈法利安", { CT_RABOSS_NEFARIAN_PRECLASS, CT_RABOSS_NEFARIAN_PRECLASS_INFO }, "CT_RABoss_ModInfo", "PreClassAlert", "CT_RABoss_SetInfo");
end
function CT_RABoss_Nefarian_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" and string.find(arg1, CT_RABOSS_NEFARIAN_START) and CT_RABoss_Mods["奈法利安"]["KillCount"] ) then
CT_RABoss_Counter.initialize("奈法利安", "DrakonidCount", CT_RABoss_Mods["奈法利安"]["KillSync"], CT_RABoss_Mods["奈法利安"]["announce"], 42, CT_RABOSS_NEFARIAN_MOBNAME, CT_RABOSS_NEFARIAN_KCOUNT, CT_RABOSS_NEFARIAN_KCOUNT_HEADER);
CT_RABoss_Counter.setOptions("奈法利安", "DrakonidCount", {["displayEstEnd"] = CT_RABoss_Mods["奈法利安"]["KillTime"]});
CT_RABoss_Announce(CT_RABOSS_NEFARIAN_BEGIN, CT_RABoss_Mods["奈法利安"]["announce"]);
CT_RABoss_PlaySound(2);
elseif ( event == "CHAT_MSG_COMBAT_HOSTILE_DEATH" and CT_RABoss_Mods["奈法利安"]["KillCount"] ) then
local _, _, mobName = string.find(arg1, CT_RABOSS_NEFARIAN_DRAGONDEATH);
if ( mobName ) then
CT_RABoss_Counter.sendSync(mobName, "奈法利安", "DrakonidCount");
end
elseif ( event == "CHAT_MSG_MONSTER_YELL" and string.find(arg1, CT_RABOSS_NEFARIAN_SHAMAN_CALL) and (CT_RABoss_Mods["奈法利安"]["PreClassAlert"]) ) then
CT_RABoss_Announce(CT_RABOSS_NEFARIAN_SHAMAN_ALERT, CT_RABoss_Mods["奈法利安"]["announce"]);
CT_RABoss_PlaySound(1);
--adevent next class in 27
CT_RABoss_Schedule("CT_RABoss_Nefarian_EventHandler", 27, "CLASS27SEC");
CT_RABoss_VisualTimer.addTimer("NefarianClassCall", 32, CT_RABOSS_NEFARIAN_CLASS_TIMER);
elseif ( event == "CHAT_MSG_MONSTER_YELL" and string.find(arg1, CT_RABOSS_NEFARIAN_DRUID_CALL) and (CT_RABoss_Mods["奈法利安"]["PreClassAlert"]) ) then
CT_RABoss_Announce(CT_RABOSS_NEFARIAN_DRUID_ALERT, CT_RABoss_Mods["奈法利安"]["announce"]);
CT_RABoss_PlaySound(1);
--adevent next class in 27
CT_RABoss_Schedule("CT_RABoss_Nefarian_EventHandler", 27, "CLASS27SEC");
CT_RABoss_VisualTimer.addTimer("NefarianClassCall", 32, CT_RABOSS_NEFARIAN_CLASS_TIMER);
elseif ( event == "CHAT_MSG_MONSTER_YELL" and string.find(arg1, CT_RABOSS_NEFARIAN_WARLOCK_CALL) and (CT_RABoss_Mods["奈法利安"]["PreClassAlert"]) ) then
CT_RABoss_Announce(CT_RABOSS_NEFARIAN_WARLOCK_ALERT, CT_RABoss_Mods["奈法利安"]["announce"]);
CT_RABoss_PlaySound(1);
--adevent next class in 27
CT_RABoss_Schedule("CT_RABoss_Nefarian_EventHandler", 27, "CLASS27SEC");
CT_RABoss_VisualTimer.addTimer("NefarianClassCall", 32, CT_RABOSS_NEFARIAN_CLASS_TIMER);
elseif ( event == "CHAT_MSG_MONSTER_YELL" and string.find(arg1, CT_RABOSS_NEFARIAN_PRIEST_CALL) and (CT_RABoss_Mods["奈法利安"]["PreClassAlert"]) ) then
CT_RABoss_Announce(CT_RABOSS_NEFARIAN_PRIEST_ALERT, CT_RABoss_Mods["奈法利安"]["announce"]);
CT_RABoss_PlaySound(1);
--adevent next class in 27
CT_RABoss_Schedule("CT_RABoss_Nefarian_EventHandler", 27, "CLASS27SEC");
CT_RABoss_VisualTimer.addTimer("NefarianClassCall", 32, CT_RABOSS_NEFARIAN_CLASS_TIMER);
elseif ( event == "CHAT_MSG_MONSTER_YELL" and string.find(arg1, CT_RABOSS_NEFARIAN_HUNTER_CALL) and (CT_RABoss_Mods["奈法利安"]["PreClassAlert"]) ) then
CT_RABoss_Announce(CT_RABOSS_NEFARIAN_HUNTER_ALERT, CT_RABoss_Mods["奈法利安"]["announce"]);
CT_RABoss_PlaySound(1);
--adevent next class in 27
CT_RABoss_Schedule("CT_RABoss_Nefarian_EventHandler", 27, "CLASS27SEC");
CT_RABoss_VisualTimer.addTimer("NefarianClassCall", 32, CT_RABOSS_NEFARIAN_CLASS_TIMER);
elseif ( event == "CHAT_MSG_MONSTER_YELL" and string.find(arg1, CT_RABOSS_NEFARIAN_WARRIOR_CALL) and (CT_RABoss_Mods["奈法利安"]["PreClassAlert"]) ) then
CT_RABoss_Announce(CT_RABOSS_NEFARIAN_WARRIOR_ALERT, CT_RABoss_Mods["奈法利安"]["announce"]);
CT_RABoss_PlaySound(1);
--adevent next class in 27
CT_RABoss_Schedule("CT_RABoss_Nefarian_EventHandler", 27, "CLASS27SEC");
CT_RABoss_VisualTimer.addTimer("NefarianClassCall", 32, CT_RABOSS_NEFARIAN_CLASS_TIMER);
elseif ( event == "CHAT_MSG_MONSTER_YELL" and string.find(arg1, CT_RABOSS_NEFARIAN_ROGUE_CALL) and (CT_RABoss_Mods["奈法利安"]["PreClassAlert"]) ) then
CT_RABoss_Announce(CT_RABOSS_NEFARIAN_ROGUE_ALERT, CT_RABoss_Mods["奈法利安"]["announce"]);
CT_RABoss_PlaySound(1);
--adevent next class in 27
CT_RABoss_Schedule("CT_RABoss_Nefarian_EventHandler", 27, "CLASS27SEC");
CT_RABoss_VisualTimer.addTimer("NefarianClassCall", 32, CT_RABOSS_NEFARIAN_CLASS_TIMER);
elseif ( event == "CHAT_MSG_MONSTER_YELL" and string.find(arg1, CT_RABOSS_NEFARIAN_PALADIN_CALL) and (CT_RABoss_Mods["奈法利安"]["PreClassAlert"]) ) then
CT_RABoss_Announce(CT_RABOSS_NEFARIAN_PALADIN_ALERT, CT_RABoss_Mods["奈法利安"]["announce"]);
CT_RABoss_PlaySound(1);
--adevent next class in 27
CT_RABoss_Schedule("CT_RABoss_Nefarian_EventHandler", 27, "CLASS27SEC");
CT_RABoss_VisualTimer.addTimer("NefarianClassCall", 32, CT_RABOSS_NEFARIAN_CLASS_TIMER);
elseif ( event == "CHAT_MSG_MONSTER_YELL" and string.find(arg1, CT_RABOSS_NEFARIAN_MAGE_CALL) and (CT_RABoss_Mods["奈法利安"]["PreClassAlert"]) ) then
CT_RABoss_Announce(CT_RABOSS_NEFARIAN_MAGE_ALERT, CT_RABoss_Mods["奈法利安"]["announce"]);
CT_RABoss_PlaySound(1);
--adevent next class in 27
CT_RABoss_Schedule("CT_RABoss_Nefarian_EventHandler", 27, "CLASS27SEC");
CT_RABoss_VisualTimer.addTimer("NefarianClassCall", 32, CT_RABOSS_NEFARIAN_CLASS_TIMER);
elseif ( (event == "CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE") and (arg1 == CT_RABOSS_NEFARIAN_SHADOWFLAME_DETECT) and (CT_RABoss_Mods["奈法利安"]["shadowflame"]) ) then
CT_RABoss_Announce(CT_RABOSS_NEFARIAN_SHADOWFLAME_WARN, CT_RABoss_Mods["奈法利安"]["announce"]);
CT_RABoss_PlaySound(3);
--adevent next shad in 8
CT_RABoss_Schedule("CT_RABoss_Nefarian_EventHandler", 8, "SHAD8SEC");
CT_RABoss_VisualTimer.addTimer("NefarianShadowflame", 13, CT_RABOSS_NEFARIAN_SHADOWFLAME_TIMER);
elseif ( (event == "CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE") and (arg1 == CT_RABOSS_NEFARIAN_FEAR_DETECT) and (CT_RABoss_Mods["奈法利安"]["fearAlert"]) ) then
CT_RABoss_Announce(CT_RABOSS_NEFARIAN_FEAR_WARN, CT_RABoss_Mods["奈法利安"]["announce"]);
CT_RABoss_PlaySound(3);
--adevent next fear in 23
CT_RABoss_Schedule("CT_RABoss_Nefarian_EventHandler", 23, "FEAR23SEC");
CT_RABoss_VisualTimer.addTimer("奈法利安", 28, CT_RABOSS_NEFARIAN_FEAR_TIMER);
elseif ( event == "CHAT_MSG_MONSTER_YELL" and string.find(arg1, CT_RABOSS_NEFARIAN_LAND_10SEC_DETECT) ) then
CT_RABoss_Announce(CT_RABOSS_NEFARIAN_LAND_10SEC, CT_RABoss_Mods["奈法利安"]["announce"]);
CT_RABoss_PlaySound(1);
elseif ( event == "CHAT_MSG_MONSTER_YELL" and string.find(arg1, CT_RABOSS_NEFARIAN_LANDING_DETECT) ) then
CT_RABoss_Announce(CT_RABOSS_NEFARIAN_LANDING, CT_RABoss_Mods["奈法利安"]["announce"]);
CT_RABoss_PlaySound(1);
elseif ( event == "CHAT_MSG_MONSTER_YELL" and string.find(arg1, CT_RABOSS_NEFARIAN_ZERG_DETECT) ) then
CT_RABoss_Announce(CT_RABOSS_NEFARIAN_ZERG, CT_RABoss_Mods["奈法利安"]["announce"]);
CT_RABoss_PlaySound(1);
elseif ( (event == "CLASS27SEC") and (CT_RABoss_Mods["奈法利安"]["PreClassAlert"]) ) then
CT_RABoss_Announce(CT_RABOSS_NEFARIAN_PRECLASS_WARN, CT_RABoss_Mods["奈法利安"]["announce"]);
CT_RABoss_PlaySound(3);
elseif ( (event == "FEAR23SEC") and (CT_RABoss_Mods["奈法利安"]["PrefearAlert"]) ) then
CT_RABoss_Announce(CT_RABOSS_NEFARIAN_PREFEAR_WARN, CT_RABoss_Mods["奈法利安"]["announce"]);
CT_RABoss_PlaySound(3);
elseif ( (event == "SHAD8SEC") and (CT_RABoss_Mods["奈法利安"]["PreShadAlert"]) ) then
CT_RABoss_Announce(CT_RABOSS_NEFARIAN_PRESHAD_WARN, CT_RABoss_Mods["奈法利安"]["announce"]);
CT_RABoss_PlaySound(3);
elseif ( CT_RABoss_Mods["奈法利安"]["veilOfShadow"] ) and ( event == "CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE" or event == "CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE" or event == "CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE" ) then
local iStart, iEnd, sPlayer, sType = string.find(arg1, CT_RABOSS_NEFARIAN_AFFLICT_VEIL);
if ( sPlayer and sType ) then
if ( sPlayer == CT_RABOSS_SELF1 and sType == CT_RABOSS_SELF2 ) then
CT_RABoss_Announce("*** " .. UnitName("player") .. CT_RABOSS_NEFARIAN_CURSEWARNRAID, CT_RABoss_Mods["奈法利安"]["announce"]);
CT_RABoss_PlaySound(2);
else
CT_RABoss_Announce("*** " .. sPlayer .. CT_RABOSS_NEFARIAN_CURSEWARNRAID, CT_RABoss_Mods["奈法利安"]["announce"]);
CT_RABoss_PlaySound(3);
end
end
elseif ( event == "CHAT_MSG_ADDON" and CT_RABoss_Mods["奈法利安"]["KillCount"] ) then
CT_RABoss_Counter.receiveSync(arg1, arg2, arg4, "奈法利安", "DrakonidCount");
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -