📄 ahnqiraj.lua
字号:
tinsert(CT_RABoss_ModsToLoad, "CT_RABoss_ProphetSkeram_OnLoad");
tinsert(CT_RABoss_ModsToLoad, "CT_RABoss_PrincessYauj_OnLoad");
tinsert(CT_RABoss_ModsToLoad, "CT_RABoss_Sartura_OnLoad");
tinsert(CT_RABoss_ModsToLoad, "CT_RABoss_Fankriss_OnLoad");
tinsert(CT_RABoss_ModsToLoad, "CT_RABoss_Huhuran_OnLoad");
tinsert(CT_RABoss_ModsToLoad, "CT_RABoss_Emperors_OnLoad");
tinsert(CT_RABoss_ModsToLoad, "CT_RABoss_Viscidus_OnLoad");
tinsert(CT_RABoss_ModsToLoad, "CT_RABoss_Ouro_OnLoad");
tinsert(CT_RABoss_ModsToLoad, "CT_RABoss_Defender_OnLoad");
tinsert(CT_RABoss_ModsToLoad, "CT_RABoss_Mindslayer_OnLoad");
tinsert(CT_RABoss_ModsToLoad, "CT_RABoss_CThun_OnLoad");
-- The Prophet Skeram
function CT_RABoss_ProphetSkeram_OnLoad()
CT_RABoss_AddMod("预言者斯克拉姆", CT_RABOSS_SKERAM_INFO, 1, CT_RABOSS_LOCATIONS_AHNQIRAJ);
-- MC events
CT_RABoss_AddEvent("预言者斯克拉姆", "CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE", CT_RABoss_ProphetSkeram_EventHandler);
CT_RABoss_AddEvent("预言者斯克拉姆", "CHAT_MSG_SPELL_PERIODIC_HOSTILEPLAYER_DAMAGE", CT_RABoss_ProphetSkeram_EventHandler);
CT_RABoss_AddEvent("预言者斯克拉姆", "CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE", CT_RABoss_ProphetSkeram_EventHandler);
CT_RABoss_AddEvent("预言者斯克拉姆", "CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF", CT_RABoss_ProphetSkeram_EventHandler);
CT_RABoss_AddEvent("预言者斯克拉姆", "CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE", CT_RABoss_ProphetSkeram_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_SKERAM_ARCANE, CT_RABOSS_SKERAM_ARCANE_INFO }, "CT_RABoss_ModInfo", "arcaneExplosion", "CT_RABoss_SetInfo");
CT_RABoss_AddDropDownButton("预言者斯克拉姆", { CT_RABOSS_SKERAM_MC, CT_RABOSS_SKERAM_MC_INFO }, "CT_RABoss_ModInfo", "mindControl", "CT_RABoss_SetInfo");
CT_RABoss_AddDropDownButton("预言者斯克拉姆", { CT_RABOSS_SKERAM_SPLIT, CT_RABOSS_SKERAM_SPLIT_INFO }, "CT_RABoss_ModInfo", "split", "CT_RABoss_SetInfo");
end
function CT_RABoss_ProphetSkeram_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_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE" or event == "CHAT_MSG_SPELL_PERIODIC_HOSTILEPLAYER_DAMAGE" or event == "CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE" ) and CT_RABoss_Mods["预言者斯克拉姆"]["mindControl"] ) then
local iStart, iEnd, sPlayer, sType = string.find(arg1, CT_RABOSS_SKERAM_MC_DETECT);
if ( sPlayer and sType ) then
if ( sPlayer == CT_RABOSS_SELF1 and sType == CT_RABOSS_SELF2 ) then
CT_RABoss_Announce(format(CT_RABOSS_SKERAM_MC_ALERT, UnitName("player")), CT_RABoss_Mods["预言者斯克拉姆"]["announce"]);
CT_RABoss_PlaySound(2);
else
CT_RABoss_Announce(format(CT_RABOSS_SKERAM_MC_ALERT, sPlayer), CT_RABoss_Mods["预言者斯克拉姆"]["announce"]);
CT_RABoss_PlaySound(3);
end
end
end
-- Arcane Explosion alert
if ( event == "CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE" and arg1 == CT_RABOSS_SKERAM_ARCANE_DETECT and CT_RABoss_Mods["预言者斯克拉姆"]["arcaneExplosion"] ) then
CT_RABoss_Announce(CT_RABOSS_SKERAM_ARCANE_ALERT, CT_RABoss_Mods["预言者斯克拉姆"]["announce"]);
CT_RABoss_PlaySound(3);
end
-- Split alert
if ( event == "CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF" and arg1 == CT_RABOSS_SKERAM_SPLIT_DETECT and CT_RABoss_Mods["预言者斯克拉姆"]["split"] ) then
CT_RABoss_Announce(CT_RABOSS_SKERAM_SPLIT_ALERT, CT_RABoss_Mods["预言者斯克拉姆"]["announce"]);
CT_RABoss_PlaySound(3);
end
end
-- Princess Yauj
function CT_RABoss_PrincessYauj_OnLoad()
CT_RABoss_AddMod("亚尔基公主", CT_RABOSS_YAUJ_INFO, 1, CT_RABOSS_LOCATIONS_AHNQIRAJ);
CT_RABoss_AddEvent("亚尔基公主", "CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF", CT_RABoss_PrincessYauj_EventHandler);
CT_RABoss_AddEvent("亚尔基公主", "CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE", CT_RABoss_PrincessYauj_EventHandler); -- Fear
CT_RABoss_AddEvent("亚尔基公主", "CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE", CT_RABoss_PrincessYauj_EventHandler); -- Fear
CT_RABoss_AddEvent("亚尔基公主", "CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE", CT_RABoss_PrincessYauj_EventHandler); -- Fear
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_YAUJ_HEAL, CT_RABOSS_YAUJ_HEAL_INFO }, "CT_RABoss_ModInfo", "heal", "CT_RABoss_SetInfo");
CT_RABoss_AddDropDownButton("亚尔基公主", { CT_RABOSS_YAUJ_FEAR, CT_RABOSS_YAUJ_FEAR_INFO }, "CT_RABoss_ModInfo", "fear", "CT_RABoss_SetInfo");
end
function CT_RABoss_PrincessYauj_EventHandler(event)
if ( not CT_RABoss_Mods["亚尔基公主"] or not CT_RABoss_Mods["亚尔基公主"]["status"] or not CT_RABoss_Mods["亚尔基公主"].enabled ) then
return;
end
-- Heal alert
if ( event == "CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF" and arg1 == CT_RABOSS_YAUJ_HEAL_DETECT and CT_RABoss_Mods["亚尔基公主"]["heal"] ) then
CT_RABoss_Announce(CT_RABOSS_YAUJ_HEAL_ALERT, CT_RABoss_Mods["亚尔基公主"]["announce"]);
CT_RABoss_PlaySound(2);
end
-- Fear alert
if ( event == "preFearWarn" ) then
CT_RABoss_Mods["亚尔基公主"]["fearTrip"] = false;
CT_RABoss_Announce(CT_RABOSS_YAUJ_FEAR_PREALERT, CT_RABoss_Mods["亚尔基公主"]["announce"]);
CT_RABoss_PlaySound(3);
elseif ( CT_RABoss_Mods["亚尔基公主"]["fear"] and not CT_RABoss_Mods["亚尔基公主"]["fearTrip"] and (event == "CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE" or event == "CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE") and string.find(arg1, CT_RABOSS_YAUJ_FEAR_DETECT) ) then
CT_RABoss_Mods["亚尔基公主"]["fearTrip"] = true;
CT_RABoss_Announce(CT_RABOSS_YAUJ_FEAR_ALERT, CT_RABoss_Mods["亚尔基公主"]["announce"]);
CT_RABoss_PlaySound(2);
CT_RABoss_Schedule("CT_RABoss_PrincessYauj_EventHandler", 15, "preFearWarn");
CT_RABoss_VisualTimer.addTimer("YaujFear", 20, CT_RABOSS_YAUJ_FEAR_TIMER);
end
end
-- Battleguard Sartura
function CT_RABoss_Sartura_Stop()
CT_RABoss_UnSchedule("CT_RABoss_Sartura_EventHandler");
CT_RABoss_UnSchedule("CT_RABoss_Sartura_EventHandler");
CT_RABoss_VisualTimer.removeTimer("SarturaWhirlwind");
CT_RABoss_VisualTimer.removeTimer("SarturaEnrage");
CT_RABoss_Mods["沙尔图拉"]["lastAction"] = nil;
end
function CT_RABoss_Sartura_OnLoad()
CT_RABoss_AddMod("沙尔图拉", CT_RABOSS_SARTURA_INFO, 1, CT_RABOSS_LOCATIONS_AHNQIRAJ);
CT_RABoss_AddEvent("沙尔图拉", "CHAT_MSG_MONSTER_EMOTE", CT_RABoss_Sartura_EventHandler);
CT_RABoss_AddEvent("沙尔图拉", "CHAT_MSG_MONSTER_YELL", CT_RABoss_Sartura_EventHandler);
CT_RABoss_AddEvent("沙尔图拉", "CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS", CT_RABoss_Sartura_EventHandler);
CT_RABoss_AddEvent("沙尔图拉", "CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF", CT_RABoss_Sartura_EventHandler);
CT_RABoss_AddEvent("沙尔图拉", "CHAT_MSG_SPELL_AURA_GONE_OTHER", CT_RABoss_Sartura_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_SARTURA_WHIRLWIND, CT_RABOSS_SARTURA_WHIRLWIND_INFO }, "CT_RABoss_ModInfo", "whirlwind", "CT_RABoss_SetInfo");
CT_RABoss_AddDropDownButton("沙尔图拉", { CT_RABOSS_SARTURA_ENRAGE, CT_RABOSS_SARTURA_ENRAGE_INFO }, "CT_RABoss_ModInfo", "enrage", "CT_RABoss_SetInfo");
CT_RA_RegisterSlashCmd("/sarturastop", CT_RABOSS_CMD_SARTURASTOP, 30, "SARTURASTOP", function()
CT_RABoss_Sartura_Stop();
end, "/sarturastop");
CT_RABoss_Mods["沙尔图拉"]["lastAction"] = nil;
end
function CT_RABoss_Sartura_EventHandler(event)
if ( not CT_RABoss_Mods["沙尔图拉"] or not CT_RABoss_Mods["沙尔图拉"]["status"] or not CT_RABoss_Mods["沙尔图拉"].enabled ) then
return;
end
-- Whirlwind alert
if ( event == "CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS" and string.find(arg1, CT_RABOSS_SARTURA_WHIRLWIND_DETECT) and CT_RABoss_Mods["沙尔图拉"]["whirlwind"] ) then
CT_RABoss_Announce(CT_RABOSS_SARTURA_WHIRLWIND_ALERT, CT_RABoss_Mods["沙尔图拉"]["announce"]);
CT_RABoss_PlaySound(2);
CT_RABoss_Schedule("CT_RABoss_Sartura_EventHandler", 21, "preWhirlwind");
CT_RABoss_Schedule("CT_RABoss_Sartura_EventHandler", 12, "preStun");
CT_RABoss_VisualTimer.addTimer("SarturaWhirlwind", 15, CT_RABOSS_SARTURA_WHIRLWIND_TIMER);
CT_RABoss_Mods["沙尔图拉"]["lastAction"] = GetTime();
end
-- Pre-Whirlwind alert
if ( event == "preWhirlwind" and CT_RABoss_Mods["沙尔图拉"]["whirlwind"] ) then
CT_RABoss_Announce(CT_RABOSS_SARTURA_WHIRLWIND_PREALERT, CT_RABoss_Mods["沙尔图拉"]["announce"]);
CT_RABoss_PlaySound(3);
end
-- Pre-stun alert
if ( event == "preStun" and CT_RABoss_Mods["沙尔图拉"]["whirlwind"] ) then
CT_RABoss_Announce(CT_RABOSS_SARTURA_STUN_PREALERT, CT_RABoss_Mods["沙尔图拉"]["announce"]);
CT_RABoss_PlaySound(3);
end
-- Whirlwind fade alert
if ( event == "CHAT_MSG_SPELL_AURA_GONE_OTHER" and string.find(arg1, CT_RABOSS_SARTURA_WHIRLWIND_FADE_DETECT) and CT_RABoss_Mods["沙尔图拉"]["whirlwind"] ) then
CT_RABoss_Announce(CT_RABOSS_SARTURA_WHIRLWIND_FADE_ALERT, CT_RABoss_Mods["沙尔图拉"]["announce"]);
CT_RABoss_PlaySound(3);
CT_RABoss_Mods["沙尔图拉"]["lastAction"] = GetTime();
end
-- Pre-Crazy alerts
if ( event == "CHAT_MSG_MONSTER_YELL" and string.find(arg1, CT_RABOSS_SARTURA_BEGIN) and arg2 == CT_RABOSS_NAMES["沙尔图拉"] and CT_RABoss_Mods["沙尔图拉"]["enrage"] ) then
CT_RABoss_Schedule("CT_RABoss_Sartura_EventHandler", 120, "totalWarning");
CT_RABoss_VisualTimer.addTimer("SarturaEnrage", 600, CT_RABOSS_SARTURA_ENRAGE_TIMER, "red");
CT_RABoss_Mods["沙尔图拉"]["lastAction"] = GetTime();
elseif ( event == "totalWarning" and CT_RABoss_Mods["沙尔图拉"]["enrage"] ) then
CT_RABoss_Announce(format(CT_RABOSS_SARTURA_CRAZY_PREALERT, "8"), CT_RABoss_Mods["沙尔图拉"]["announce"]);
CT_RABoss_PlaySound(3);
CT_RABoss_Schedule("CT_RABoss_Sartura_EventHandler", 180, "totalWarning2");
elseif ( event == "totalWarning2" and CT_RABoss_Mods["沙尔图拉"]["enrage"] ) then
CT_RABoss_Announce(format(CT_RABOSS_SARTURA_CRAZY_PREALERT, "5"), CT_RABoss_Mods["沙尔图拉"]["announce"]);
CT_RABoss_PlaySound(3);
CT_RABoss_Schedule("CT_RABoss_Sartura_EventHandler", 120, "totalWarning3");
elseif ( event == "totalWarning3" and CT_RABoss_Mods["沙尔图拉"]["enrage"] ) then
CT_RABoss_Announce(format(CT_RABOSS_SARTURA_CRAZY_PREALERT, "3"), CT_RABoss_Mods["沙尔图拉"]["announce"]);
CT_RABoss_PlaySound(3);
CT_RABoss_Schedule("CT_RABoss_Sartura_EventHandler", 60, "totalWarning4");
elseif ( event == "totalWarning4" and CT_RABoss_Mods["沙尔图拉"]["enrage"] ) then
CT_RABoss_Announce(format(CT_RABOSS_SARTURA_CRAZY_PREALERT, "2"), CT_RABoss_Mods["沙尔图拉"]["announce"]);
CT_RABoss_PlaySound(3);
CT_RABoss_Schedule("CT_RABoss_Sartura_EventHandler", 60, "totalWarning5");
elseif ( event == "totalWarning5" and CT_RABoss_Mods["沙尔图拉"]["enrage"] ) then
CT_RABoss_Announce(format(CT_RABOSS_SARTURA_CRAZY_PREALERT, "1"), CT_RABoss_Mods["沙尔图拉"]["announce"]);
CT_RABoss_PlaySound(3);
elseif ( event == "CHAT_MSG_MONSTER_EMOTE" and string.find(arg1, "CT_RABOSS_SARTURA_CRAZY_DETECT") and arg2 == CT_RABOSS_NAMES["沙尔图拉"] and CT_RABoss_Mods["沙尔图拉"]["enrage"] ) then
CT_RABoss_Announce(CT_RABOSS_SARTURA_CRAZY_ALERT, CT_RABoss_Mods["沙尔图拉"]["announce"]);
CT_RABoss_PlaySound(3);
CT_RABoss_Sartura_Stop();
end
-- Enrage alert
if ( event == "CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF" and string.find(arg1, CT_RABOSS_SARTURA_ENRAGE_DETECT) ) then
CT_RABoss_Announce(CT_RABOSS_SARTURA_ENRAGE_ALERT, CT_RABoss_Mods["沙尔图拉"]["announce"]);
CT_RABoss_PlaySound(3);
CT_RABoss_Mods["沙尔图拉"]["lastAction"] = GetTime();
end
-- Sartura Death
if ( event == "CHAT_MSG_MONSTER_YELL" and string.find(arg1, CT_RABOSS_SARTURA_END) and arg2 == CT_RABOSS_NAMES["沙尔图拉"] ) then
CT_RABoss_Sartura_Stop();
end
-- Stop the script
if ( CT_RABoss_Mods["沙尔图拉"]["lastAction"] and (GetTime() - CT_RABoss_Mods["沙尔图拉"]["lastAction"]) > 40 ) then
CT_RABoss_Sartura_Stop();
end
end
-- Fankriss the Unyielding
function CT_RABoss_Fankriss_OnLoad()
CT_RABoss_AddMod("顽强的范克瑞斯", CT_RABOSS_FANKRISS_INFO, 1, CT_RABOSS_LOCATIONS_AHNQIRAJ);
CT_RABoss_AddEvent("顽强的范克瑞斯", "CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF", CT_RABoss_Fankriss_EventHandler);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -