📄 ahnqiraj.lua
字号:
CT_RABoss_AddEvent("顽强的范克瑞斯", "CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE", CT_RABoss_Fankriss_EventHandler);
CT_RABoss_AddEvent("顽强的范克瑞斯", "CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE", CT_RABoss_Fankriss_EventHandler);
CT_RABoss_AddEvent("顽强的范克瑞斯", "CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE", CT_RABoss_Fankriss_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_FANKRISS_INVOC, CT_RABOSS_FANKRISS_INVOC_INFO }, "CT_RABoss_ModInfo", "invoc", "CT_RABoss_SetInfo");
CT_RABoss_AddDropDownButton("顽强的范克瑞斯", { CT_RABOSS_FANKRISS_ENTANGLE, CT_RABOSS_FANKRISS_ENTANGLE_INFO }, "CT_RABoss_ModInfo", "entangle", "CT_RABoss_SetInfo");
end
function CT_RABoss_Fankriss_EventHandler(event)
if ( not CT_RABoss_Mods["顽强的范克瑞斯"] or not CT_RABoss_Mods["顽强的范克瑞斯"]["status"] or not CT_RABoss_Mods["顽强的范克瑞斯"].enabled ) then
return;
end
-- Snake alert
if ( event == "CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF" and string.find(arg1, CT_RABOSS_FANKRISS_INVOC_DETECT) and CT_RABoss_Mods["顽强的范克瑞斯"]["invoc"] ) then
CT_RABoss_Announce(CT_RABOSS_FANKRISS_INVOC_ALERT, CT_RABoss_Mods["顽强的范克瑞斯"]["announce"]);
CT_RABoss_PlaySound(2);
end
-- Entangle alert
if ( (event == "CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE" or event == "CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE" or event == "CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE") and CT_RABoss_Mods["顽强的范克瑞斯"]["entangle"] ) then
local iStart, iEnd, sPlayer, sType = string.find(arg1, CT_RABOSS_FANKRISS_ENTANGLE_DETECT);
if ( sPlayer and sType ) then
if ( sPlayer == CT_RABOSS_SELF1 and sType == CT_RABOSS_SELF2 ) then
sPlayer = UnitName("player");
end
CT_RABoss_Announce(format(CT_RABOSS_FANKRISS_ENTANGLE_ALERT, sPlayer), CT_RABoss_Mods["顽强的范克瑞斯"]["announce"]);
CT_RABoss_PlaySound(3);
end
end
end
-- Princesse Huhuran
function CT_RABoss_Huhuran_OnLoad()
CT_RABoss_AddMod("哈霍兰公主", CT_RABOSS_HUHURAN_INFO, 1, CT_RABOSS_LOCATIONS_AHNQIRAJ);
CT_RABoss_AddEvent("哈霍兰公主", "CHAT_MSG_MONSTER_EMOTE", CT_RABoss_Huhuran_EventHandler);
CT_RABoss_AddEvent("哈霍兰公主", "CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE", CT_RABoss_Huhuran_EventHandler);
CT_RABoss_AddEvent("哈霍兰公主", "CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE", CT_RABoss_Huhuran_EventHandler);
CT_RABoss_AddEvent("哈霍兰公主", "CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE", CT_RABoss_Huhuran_EventHandler);
CT_RABoss_AddEvent("哈霍兰公主", "UNIT_HEALTH", CT_RABoss_Huhuran_EventHandler);
CT_RABoss_AddEvent("哈霍兰公主", "PLAYER_REGEN_DISABLED", 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_AddDropDownButton("哈霍兰公主", { CT_RABOSS_HUHURAN_FRENZY, CT_RABOSS_HUHURAN_FRENZY_INFO }, "CT_RABoss_ModInfo", "frenzy", "CT_RABoss_SetInfo");
CT_RABoss_AddDropDownButton("哈霍兰公主", { CT_RABOSS_HUHURAN_BERSERK, CT_RABOSS_HUHURAN_BERSERK_INFO }, "CT_RABoss_ModInfo", "berserk", "CT_RABoss_SetInfo");
CT_RABoss_AddDropDownButton("哈霍兰公主", { CT_RABOSS_HUHURAN_WYVERN, CT_RABOSS_HUHURAN_WYVERN_INFO }, "CT_RABoss_ModInfo", "wyvern", "CT_RABoss_SetInfo");
CT_RABoss_Mods["哈霍兰公主"]["healthLow"] = 33;
end
function CT_RABoss_Huhuran_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_EMOTE" and arg2 == CT_RABOSS_NAMES["哈霍兰公主"] ) then
-- Frenzy alert
if ( string.find(arg1, CT_RABOSS_HUHURAN_FRENZY_DETECT) and CT_RABoss_Mods["哈霍兰公主"]["frenzy"] ) then
CT_RABoss_Announce(CT_RABOSS_HUHURAN_FRENZY_ALERT, CT_RABoss_Mods["哈霍兰公主"]["announce"]);
CT_RABoss_PlaySound(2);
-- Berserk alert
elseif ( string.find(arg1, CT_RABOSS_HUHURAN_BERSERK_DETECT) and CT_RABoss_Mods["哈霍兰公主"]["berserk"] ) then
CT_RABoss_Announce(CT_RABOSS_HUHURAN_BERSERK_ALERT, CT_RABoss_Mods["哈霍兰公主"]["announce"]);
CT_RABoss_PlaySound(2);
end
elseif ( event == "PLAYER_REGEN_DISABLED" and not CT_RABoss_Mods["哈霍兰公主"]["wyvernLoop"] and UnitName("target") and string.find(UnitName("target"), CT_RABOSS_NAMES["哈霍兰公主"]) ) then
CT_RABoss_Mods["哈霍兰公主"]["wyvernLoop"] = 1;
CT_RABoss_Schedule("CT_RABoss_Huhuran_EventHandler", 27, "wyvernPreWarn");
CT_RABoss_VisualTimer.addTimer("HuhuranWyvern", 30, CT_RABOSS_HUHURAN_WYVERN_TIMER);
end
-- Wyvern Sting alert
if ( event == "CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE" or event == "CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE" or evvent == "CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE" ) then
if ( string.find(arg1, CT_RABOSS_HUHURAN_WYVERN_DETECT) and not CT_RABoss_Mods["哈霍兰公主"]["wyvernLoop"] and CT_RABoss_Mods["哈霍兰公主"]["wyvern"] ) then
CT_RABoss_Mods["哈霍兰公主"]["wyvernLoop"] = 1;
CT_RABoss_Announce(CT_RABOSS_HUHURAN_WYVERN_ALERT, CT_RABoss_Mods["哈霍兰公主"]["announce"]);
CT_RABoss_PlaySound(2);
CT_RABoss_Schedule("CT_RABoss_Huhuran_EventHandler", 27, "wyvernPreWarn");
CT_RABoss_VisualTimer.addTimer("HuhuranWyvern", 30, CT_RABOSS_HUHURAN_WYVERN_TIMER);
end
-- Wyvern Sting pre-alert
elseif ( event == "wyvernPreWarn" and CT_RABoss_Mods["哈霍兰公主"]["wyvern"] ) then
CT_RABoss_Mods["哈霍兰公主"]["wyvernLoop"] = nil;
CT_RABoss_Announce(CT_RABOSS_HUHURAN_WYVERN_PREALERT, CT_RABoss_Mods["哈霍兰公主"]["announce"]);
end
-- Berserk pre-alert
if ( CT_RABoss_Mods["哈霍兰公主"]["berserk"] and UnitName("target") and UnitName("target") == CT_RABOSS_NAMES["哈霍兰公主"] ) then
local targetHealth = UnitHealth("target");
if ( targetHealth ) then
-- Alert near Berserk event
if ( targetHealth <= CT_RABoss_Mods["哈霍兰公主"]["healthLow"] and targetHealth > 30 and not CT_RABoss_Mods["哈霍兰公主"]["priorWarning"] ) then
CT_RABoss_Announce(CT_RABOSS_HUHURAN_BERSERK_PREALERT, CT_RABoss_Mods["哈霍兰公主"]["announce"]);
CT_RABoss_Mods["哈霍兰公主"]["priorWarning"] = true;
-- Berserk pre-alert deactivation
elseif ( targetHealth <= 30 ) then
CT_RABoss_Mods["哈霍兰公主"]["priorWarning"] = false;
end
end
end
end
-- The Twin Emperors
function CT_RABoss_Emperors_Stop()
CT_RABoss_Mods["双子皇帝"]["fight"] = nil;
CT_RABoss_Mods["双子皇帝"]["tp"] = nil;
CT_RABoss_Mods["双子皇帝"]["lastAction"] = nil;
CT_RABoss_UnSchedule("CT_RABoss_Emperors_EventHandler");
CT_RABoss_UnSchedule("CT_RABoss_Emperors_EventHandler");
CT_RABoss_VisualTimer.removeTimer("EmperorsEnrage");
CT_RABoss_VisualTimer.removeTimer("EmperorsTeleport");
end
function CT_RABoss_Emperors_OnLoad()
CT_RABoss_AddMod("双子皇帝", CT_RABOSS_EMPERORS_INFO, 1, CT_RABOSS_LOCATIONS_AHNQIRAJ);
CT_RABoss_AddEvent("双子皇帝", "PLAYER_REGEN_DISABLED", CT_RABoss_Emperors_EventHandler);
CT_RABoss_AddEvent("双子皇帝", "CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF", CT_RABoss_Emperors_EventHandler);
CT_RABoss_AddEvent("双子皇帝", "CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS", CT_RABoss_Emperors_EventHandler);
CT_RABoss_AddEvent("双子皇帝", "CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE", CT_RABoss_Emperors_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_EMPERORS_TIMER, CT_RABOSS_EMPERORS_TIMER_INFO }, "CT_RABoss_ModInfo", "timerEnrage", "CT_RABoss_SetInfo");
CT_RABoss_AddDropDownButton("双子皇帝", { CT_RABOSS_EMPERORS_TP, CT_RABOSS_EMPERORS_TP_INFO }, "CT_RABoss_ModInfo", "teleport", "CT_RABoss_SetInfo");
CT_RABoss_AddDropDownButton("双子皇帝", { CT_RABOSS_EMPERORS_EXPLODE, CT_RABOSS_EMPERORS_EXPLODE_INFO }, "CT_RABoss_ModInfo", "alertNearby", "CT_RABoss_SetInfo");
CT_RA_RegisterSlashCmd("/twinstop", CT_RABOSS_CMD_EMPERORSSTOP, 30, "TWINSTOP", function()
CT_RABoss_Emperors_Stop();
end, "/twinstop");
CT_RABoss_Mods["双子皇帝"]["fight"] = nil;
CT_RABoss_Mods["双子皇帝"]["tp"] = nil;
CT_RABoss_Mods["双子皇帝"]["lastAction"] = nil;
end
function CT_RABoss_Emperors_Start()
CT_RABoss_Mods["双子皇帝"]["fight"] = 1;
CT_RABoss_Mods["双子皇帝"]["tp"] = nil;
CT_RABoss_Mods["双子皇帝"]["lastAction"] = GetTime();
CT_RABoss_Announce(CT_RABOSS_EMPERORS_FIRSTTP_ALERT, CT_RABoss_Mods["双子皇帝"]["announce"]);
CT_RABoss_PlaySound(1);
CT_RABoss_Schedule("CT_RABoss_Emperors_EventHandler", 180, "enragePreWarn1");
CT_RABoss_Schedule("CT_RABoss_Emperors_EventHandler", 18, "tpPreWarn");
CT_RABoss_VisualTimer.addTimer("EmperorsEnrage", 900, CT_RABOSS_EMPERORS_ENRAGE_TIMER, "red");
CT_RABoss_VisualTimer.addTimer("EmperorsTeleport", 25, CT_RABOSS_EMPERORS_TP_TIMER);
end
function CT_RABoss_Emperors_TP()
CT_RABoss_Mods["双子皇帝"]["tp"] = 1;
CT_RABoss_Mods["双子皇帝"]["lastAction"] = GetTime();
CT_RABoss_PlaySound(1);
CT_RABoss_Announce(CT_RABOSS_EMPERORS_TP_ALERT, CT_RABoss_Mods["双子皇帝"]["announce"]);
CT_RABoss_Schedule("CT_RABoss_Emperors_EventHandler", 25, "tpPreWarn");
CT_RABoss_VisualTimer.addTimer("EmperorsTeleport", 30, CT_RABOSS_EMPERORS_TP_TIMER);
end
function CT_RABoss_Emperors_EventHandler(event)
if ( not CT_RABoss_Mods["双子皇帝"] or not CT_RABoss_Mods["双子皇帝"]["status"] or not CT_RABoss_Mods["双子皇帝"].enabled ) then
return;
end
-- Encounter begin
if ( event == "PLAYER_REGEN_DISABLED" and not CT_RABoss_Mods["双子皇帝"]["fight"] ) then
CT_RABoss_Schedule("CT_RABoss_Emperors_EventHandler", 5, "checkStart");
elseif ( event == "checkStart" ) then
if ( UnitName("target") and ( string.find(UnitName("target"), CT_RABOSS_EMPERORS_VEKNILASH) or string.find(UnitName("target"), CT_RABOSS_EMPERORS_VEKLOR) ) and UnitAffectingCombat("target") ) then
CT_RABoss_Emperors_Start();
end
-- 12 min
elseif ( event == "enragePreWarn1" and CT_RABoss_Mods["双子皇帝"]["timerEnrage"] ) then
CT_RABoss_Announce(format(CT_RABOSS_EMPERORS_ENRAGE_PREALERT, "12"), CT_RABoss_Mods["双子皇帝"]["announce"]);
CT_RABoss_Schedule("CT_RABoss_Emperors_EventHandler", 240, "enragePreWarn2");
-- 8 min
elseif ( event == "enragePreWarn2" and CT_RABoss_Mods["双子皇帝"]["timerEnrage"] ) then
CT_RABoss_Announce(format(CT_RABOSS_EMPERORS_ENRAGE_PREALERT, "8"), CT_RABoss_Mods["双子皇帝"]["announce"]);
CT_RABoss_Schedule("CT_RABoss_Emperors_EventHandler", 180, "enragePreWarn3");
-- 5 min
elseif ( event == "enragePreWarn3" and CT_RABoss_Mods["双子皇帝"]["timerEnrage"] ) then
CT_RABoss_Announce(format(CT_RABOSS_EMPERORS_ENRAGE_PREALERT, "5"), CT_RABoss_Mods["双子皇帝"]["announce"]);
CT_RABoss_Schedule("CT_RABoss_Emperors_EventHandler", 120, "enragePreWarn4");
-- 3 min
elseif ( event == "enragePreWarn4" and CT_RABoss_Mods["双子皇帝"]["timerEnrage"] ) then
CT_RABoss_Announce(format(CT_RABOSS_EMPERORS_ENRAGE_PREALERT, "3"), CT_RABoss_Mods["双子皇帝"]["announce"]);
CT_RABoss_Schedule("CT_RABoss_Emperors_EventHandler", 60, "enragePreWarn5");
-- 2 min
elseif ( event == "enragePreWarn5" and CT_RABoss_Mods["双子皇帝"]["timerEnrage"] ) then
CT_RABoss_Announce(format(CT_RABOSS_EMPERORS_ENRAGE_PREALERT, "2"), CT_RABoss_Mods["双子皇帝"]["announce"]);
CT_RABoss_Schedule("CT_RABoss_Emperors_EventHandler", 60, "enragePreWarn6");
-- 1 min
elseif ( event == "enragePreWarn6" and CT_RABoss_Mods["双子皇帝"]["timerEnrage"] ) then
CT_RABoss_Announce(format(CT_RABOSS_EMPERORS_ENRAGE_PREALERT, "1"), CT_RABoss_Mods["双子皇帝"]["announce"]);
end
-- Emperor Teleport alert
if ( CT_RABoss_Mods["双子皇帝"]["teleport"] and event == "CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE" ) then
if ( string.find(arg1, CT_RABOSS_EMPERORS_TP_CASTER) or string.find(arg1, CT_RABOSS_EMPERORS_TP_MELEE) and not CT_RABoss_Mods["双子皇帝"]["tp"] ) then
CT_RABoss_Emperors_TP();
end
-- Emperor Teleport pre-alert
elseif ( CT_RABoss_Mods["双子皇帝"]["teleport"] and event == "tpPreWarn" ) then
CT_RABoss_Mods["双子皇帝"]["tp"] = nil;
CT_RABoss_Announce(CT_RABOSS_EMPERORS_TP_PREALERT, CT_RABoss_Mods["双子皇帝"]["announce"]);
CT_RABoss_PlaySound(1);
-- Detect Exploding Bug, must be in proximity of the exploding bug.
elseif ( CT_RABoss_Mods["双子皇帝"]["alertNearby"] and (event == "CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF" or event == "CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS") ) then
local _, _, bugType = string.find(arg1, CT_RABOSS_EMPERORS_EXPLODE_DETECT);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -