📄 naxxramas.lua
字号:
CT_RABoss_Mods["黑女巫法琳娜"]["silenced"] = nil;
elseif ( event == "enragePreWarn30") then
CT_RABoss_Announce(format(CT_RABOSS_FAERLINA_ENRAGE_PREALERT, "30"), CT_RABoss_Mods["黑女巫法琳娜"]["announce"]);
CT_RABoss_PlaySound(3);
elseif ( event == "enragePreWarn15") then
CT_RABoss_Announce(format(CT_RABOSS_FAERLINA_ENRAGE_PREALERT, "15"), CT_RABoss_Mods["黑女巫法琳娜"]["announce"]);
CT_RABoss_PlaySound(3);
elseif ( event == "enragePreWarn5") then
CT_RABoss_Announce(format(CT_RABOSS_FAERLINA_ENRAGE_PREALERT, "5"), CT_RABoss_Mods["黑女巫法琳娜"]["announce"]);
CT_RABoss_PlaySound(3);
elseif ( event == "enrageWarn" ) then
CT_RABoss_Announce(CT_RABOSS_FAERLINA_ENRAGEEND_ALERT, CT_RABoss_Mods["黑女巫法琳娜"]["announce"]);
CT_RABoss_PlaySound(3);
end
end
-- Maexxna
function CT_RABoss_Maexxna_Stop()
CT_RABoss_Mods["迈克斯纳"]["engaged"] = nil;
CT_RABoss_Mods["迈克斯纳"]["lastAction"] = nil;
CT_RABoss_Mods["迈克斯纳"]["sPlayers"] = "";
CT_RABoss_Mods["迈克斯纳"]["nbWebWrap"] = 0;
CT_RABoss_UnSchedule("CT_RABoss_Maexxna_EventHandler");
CT_RABoss_UnSchedule("CT_RABoss_Maexxna_EventHandler");
end
function CT_RABoss_Maexxna_OnLoad()
CT_RABoss_AddMod("迈克斯纳", CT_RABOSS_MAEXXNA_INFO, 1, CT_RABOSS_LOCATIONS_NAXXRAMAS);
CT_RABoss_AddEvent("迈克斯纳", "CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE", CT_RABoss_Maexxna_EventHandler);
CT_RABoss_AddEvent("迈克斯纳", "CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE", CT_RABoss_Maexxna_EventHandler);
CT_RABoss_AddEvent("迈克斯纳", "CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE", CT_RABoss_Maexxna_EventHandler);
CT_RABoss_AddEvent("迈克斯纳", "CHAT_MSG_MONSTER_EMOTE", CT_RABoss_Maexxna_EventHandler);
CT_RABoss_AddEvent("迈克斯纳", "PLAYER_REGEN_DISABLED", CT_RABoss_Maexxna_EventHandler);
CT_RABoss_AddEvent("迈克斯纳", "UNIT_HEALTH", 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_Mods["迈克斯纳"]["engaged"] = nil;
CT_RABoss_Mods["迈克斯纳"]["lastAction"] = nil;
CT_RABoss_Mods["迈克斯纳"]["healthLow"] = 33;
CT_RABoss_Mods["迈克斯纳"]["sPlayers"] = "";
CT_RABoss_Mods["迈克斯纳"]["nbWebWrap"] = 0;
CT_RA_RegisterSlashCmd("/maexxnastop", "重置迈克斯纳", 30, "MAEXXNARESET", function()
CT_RABoss_Maexxna_Stop();
end, "/maexxnastop");
end
function CT_RABoss_Maexxna_EventHandler(event)
if ( not CT_RABoss_Mods["迈克斯纳"] or not CT_RABoss_Mods["迈克斯纳"]["status"] or not CT_RABoss_Mods["迈克斯纳"].enabled ) then
return;
end
if ( event == "PLAYER_REGEN_DISABLED" ) then
if ( not CT_RABoss_Mods["迈克斯纳"]["engaged"] ) then
CT_RABoss_Schedule("CT_RABoss_Maexxna_EventHandler", 5, "checkStart");
end
elseif ( event == "checkStart" ) then
if ( UnitName("target") and UnitName("target") == CT_RABOSS_NAMES["迈克斯纳"] and UnitAffectingCombat("target") ) then
CT_RABoss_Mods["迈克斯纳"]["engaged"] = 1;
CT_RABoss_Mods["迈克斯纳"]["nbWebWrap"] = 0;
CT_RABoss_Mods["迈克斯纳"]["lastAction"] = GetTime();
CT_RABoss_Schedule("CT_RABoss_Maexxna_EventHandler", 5, "webWrapWarn5");
CT_RABoss_VisualTimer.addTimer("MaexxnaWebWrap", 10, CT_RABOSS_MAEXXNA_WEBWRAP_TIMER, "yellow");
CT_RABoss_Schedule("CT_RABoss_Maexxna_EventHandler", 15, "spiderWarn5");
CT_RABoss_VisualTimer.addTimer("MaexxnaSpider", 22, CT_RABOSS_MAEXXNA_SPIDER_TIMER, "orange");
CT_RABoss_Schedule("CT_RABoss_Maexxna_EventHandler", 25, "webSprayWarn5");
CT_RABoss_VisualTimer.addTimer("MaexxnaWebSpray", 32, CT_RABOSS_MAEXXNA_WEBSPRAY_TIMER, "green");
end
end
if ( event == "CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE" or event == "CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE" or event == "CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE" ) then
-- Web Spray
if ( string.find(arg1, CT_RABOSS_MAEXXNA_WEBSPRAY_DETECT) ) then
if ( not CT_RABoss_Mods["迈克斯纳"]["webSprayTrip"] ) then
CT_RABoss_Mods["迈克斯纳"]["webSprayTrip"] = 1;
CT_RABoss_Mods["迈克斯纳"]["lastAction"] = GetTime();
CT_RABoss_Announce(CT_RABOSS_MAEXXNA_WEBBED_ALERT, CT_RABoss_Mods["迈克斯纳"]["announce"]);
CT_RABoss_UnSchedule("CT_RABoss_Maexxna_EventHandler", "spiderWarn5");
CT_RABoss_Schedule("CT_RABoss_Maexxna_EventHandler", 25, "spiderWarn5");
CT_RABoss_Schedule("CT_RABoss_Maexxna_EventHandler", 35, "webSprayWarn5");
CT_RABoss_VisualTimer.addTimer("MaexxnaWebSpray", 40, CT_RABOSS_MAEXXNA_WEBSPRAY_TIMER, "green");
end
end
-- Web Wrap
local _, _, sPlayer, sType = string.find(arg1, CT_RABOSS_MAEXXNA_WEBWRAP_DETECT);
if ( sPlayer and sType ) then
if ( not CT_RABoss_Mods["迈克斯纳"]["webWrapTrip"] ) then
CT_RABoss_Mods["迈克斯纳"]["sPlayers"] = "";
CT_RABoss_Mods["迈克斯纳"]["nbWebWrap"] = 0;
CT_RABoss_Mods["迈克斯纳"]["webWrapTrip"] = 1;
CT_RABoss_Schedule("CT_RABoss_Maexxna_EventHandler", 35, "webWrapWarn5");
CT_RABoss_VisualTimer.addTimer("MaexxnaWebWrap", 40, CT_RABOSS_MAEXXNA_WEBWRAP_TIMER, "yellow");
end
CT_RABoss_Mods["迈克斯纳"]["lastAction"] = GetTime();
CT_RABoss_Mods["迈克斯纳"]["nbWebWrap"] = CT_RABoss_Mods["迈克斯纳"]["nbWebWrap"] + 1;
if ( sPlayer == CT_RABOSS_SELF1 and sType == CT_RABOSS_SELF2 )then
sPlayer = UnitName("player");
end
CT_RABoss_Mods["迈克斯纳"]["sPlayers"] = CT_RABoss_Mods["迈克斯纳"]["sPlayers"] .. " " .. sPlayer;
if ( CT_RABoss_Mods["迈克斯纳"]["nbWebWrap"] == 3 ) then
CT_RABoss_Announce(format(CT_RABOSS_MAEXXNA_WEBWRAP_ALERT, CT_RABoss_Mods["迈克斯纳"]["sPlayers"]), CT_RABoss_Mods["迈克斯纳"]["announce"]);
end
end
elseif ( event == "webWrapWarn5" ) then
CT_RABoss_Mods["迈克斯纳"]["webWrapTrip"] = nil;
CT_RABoss_Announce(format(CT_RABOSS_MAEXXNA_WEBWRAP_PREALERT, "5"), CT_RABoss_Mods["迈克斯纳"]["announce"]);
elseif ( event == "spiderWarn5" ) then
CT_RABoss_Announce(format(CT_RABOSS_MAEXXNA_SPIDER_PREALERT, "5"), CT_RABoss_Mods["迈克斯纳"]["announce"]);
CT_RABoss_Schedule("CT_RABoss_Maexxna_EventHandler", 5, "spiderWarn");
elseif ( event == "spiderWarn" ) then
CT_RABoss_Announce(CT_RABOSS_MAEXXNA_SPIDERPOP_ALERT, CT_RABoss_Mods["迈克斯纳"]["announce"]);
CT_RABoss_Schedule("CT_RABoss_Maexxna_EventHandler", 35, "spiderWarn5");
CT_RABoss_VisualTimer.addTimer("MaexxnaSpider", 40, CT_RABOSS_MAEXXNA_SPIDER_TIMER, "orange");
elseif ( event == "webSprayWarn5" ) then
CT_RABoss_Announce(format(CT_RABOSS_MAEXXNA_WEBSPRAY_PREALERT, "5"), CT_RABoss_Mods["迈克斯纳"]["announce"]);
CT_RABoss_Mods["迈克斯纳"]["webSprayTrip"] = nil;
end
-- Enrage pre-alert
if ( UnitName("target") == CT_RABOSS_NAMES["迈克斯纳"] ) then
local targetHealth = UnitHealth("target");
-- Alert near Enrage event
if ( targetHealth <= CT_RABoss_Mods["迈克斯纳"]["healthLow"] and targetHealth > 30 and not CT_RABoss_Mods["迈克斯纳"]["priorWarning"] ) then
CT_RABoss_Announce(CT_RABOSS_MAEXXNA_ENRAGE_PREALERT, CT_RABoss_Mods["迈克斯纳"]["announce"]);
CT_RABoss_Mods["迈克斯纳"]["priorWarning"] = true;
-- Enrage pre-alert deactivation
elseif ( targetHealth <= 30 ) then
CT_RABoss_Mods["迈克斯纳"]["priorWarning"] = false;
end
-- Enrage alert
elseif ( event == "CHAT_MSG_MONSTER_EMOTE" and arg2 == CT_RABOSS_NAMES["迈克斯纳"] and string.find(arg1, CT_RABOSS_MAEXXNA_ENRAGE_DETECT) ) then
CT_RABoss_Mods["迈克斯纳"]["lastAction"] = GetTime();
CT_RABoss_Announce(CT_RABOSS_MAEXXNA_ENRAGE_ALERT, CT_RABoss_Mods["迈克斯纳"]["announce"]);
end
if ( CT_RABoss_Mods["迈克斯纳"]["lastAction"] and (GetTime() - CT_RABoss_Mods["迈克斯纳"]["lastAction"]) > 60 ) then
CT_RABoss_Maexxna_Stop();
end
end
-- Noth The Plaguebringer (19/08/2006) - Changed naming.
function CT_RABoss_MRNoth_OnLoad()
CT_RABoss_AddMod("瘟疫使者诺斯", CT_RABOSS_MRNOTH_INFO, 1, CT_RABOSS_LOCATIONS_NAXXRAMAS);
CT_RABoss_AddEvent("瘟疫使者诺斯", "CHAT_MSG_MONSTER_YELL", CT_RABoss_MRNoth_EventHandler);
CT_RABoss_AddEvent("瘟疫使者诺斯", "CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS", CT_RABoss_MRNoth_EventHandler);
CT_RABoss_AddEvent("瘟疫使者诺斯", "CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE", CT_RABoss_MRNoth_EventHandler);
CT_RABoss_AddEvent("瘟疫使者诺斯", "CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE", CT_RABoss_MRNoth_EventHandler);
CT_RABoss_AddEvent("瘟疫使者诺斯", "CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE", CT_RABoss_MRNoth_EventHandler);
CT_RABoss_AddEvent("瘟疫使者诺斯", "CHAT_MSG_COMBAT_CREATURE_VS_CREATURE_HITS", CT_RABoss_MRNoth_EventHandler);
CT_RABoss_AddEvent("瘟疫使者诺斯", "CHAT_MSG_COMBAT_CREATURE_VS_PARTY_HITS", CT_RABoss_MRNoth_EventHandler);
CT_RABoss_AddEvent("瘟疫使者诺斯", "CHAT_MSG_COMBAT_CREATURE_VS_SELF_HITS", CT_RABoss_MRNoth_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_MRNOTH_CURSE_ALERT, CT_RABOSS_MRNOTH_CURSE_ALERT_INFO }, "CT_RABoss_ModInfo", "enablecurse", "CT_RABoss_SetInfo");
CT_RABoss_SetVar("瘟疫使者诺斯", "enablecurse", 1);
end
function CT_RABoss_MRNoth_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_MRNOTH_YELL1 or arg1 == CT_RABOSS_MRNOTH_YELL2 or arg1 == CT_RABOSS_MRNOTH_YELL3 ) then
CT_RABoss_Announce(CT_RABOSS_MRNOTH_ENGAGED, CT_RABoss_Mods["瘟疫使者诺斯"]["announce"]);
CT_RABoss_PlaySound(3);
CT_RABoss_Mods["瘟疫使者诺斯"]["timeonbalcony"] = 70;
CT_RABoss_Mods["瘟疫使者诺斯"]["timeinroom"] = 90;
CT_RABoss_Schedule("CT_RABoss_MRNoth_EventHandler", (CT_RABoss_Mods["瘟疫使者诺斯"]["timeinroom"]-10), "teleportwarn");
CT_RABoss_Schedule("CT_RABoss_MRNoth_EventHandler", (CT_RABoss_Mods["瘟疫使者诺斯"]["timeinroom"]), "teleport");
CT_RABoss_Mods["瘟疫使者诺斯"]["lastaction"] = time()
if ( CT_RA_Level >= 1 and CT_RABoss_Mods["瘟疫使者诺斯"]["announce"] ) then
CT_RA_SendMessage(format(CT_RABOSS_MRMUKKA_STRING, "1", "20", CT_RABOSS_MRNOTH_TELEPORT, "90", "0*255*0"));
end
elseif ( arg1 == CT_RABOSS_MRNOTH_DEAD ) then
CT_RABoss_UnSchedule("CT_RABoss_MRNoth_EventHandler");
end
elseif ( event == "CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS" ) then
if ( arg1 == CT_RABOSS_MRNOTH_BLINKSTRING ) then
CT_RABoss_Announce(CT_RABOSS_MRNOTH_BLINKWARNING, CT_RABoss_Mods["瘟疫使者诺斯"]["announce"]);
CT_RABoss_PlaySound(2);
CT_RABoss_Schedule("CT_RABoss_MRNoth_EventHandler", 28, "blinkwarn");
CT_RABoss_Mods["瘟疫使者诺斯"]["lastaction"] = time();
if ( CT_RA_Level >= 1 and CT_RABoss_Mods["瘟疫使者诺斯"]["announce"] ) then
CT_RA_SendMessage(format(CT_RABOSS_MRMUKKA_STRING, "2", "20", CT_RABOSS_MRNOTH_BLINK, "30", "0*0*255"));
end
end
elseif ( event == "CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE" or event == "CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE" or event == "CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE" ) then
if ( string.find(arg1, CT_RABOSS_MRNOTH_CURSESTRING) ) then
if ( CT_RABoss_Mods["瘟疫使者诺斯"]["enablecurse"] and not CT_RABoss_Mods["瘟疫使者诺斯"]["cursetrip"] ) then
CT_RABoss_Mods["瘟疫使者诺斯"]["cursetrip"] = true;
CT_RABoss_Announce(CT_RABOSS_MRNOTH_DISPELL, CT_RABoss_Mods["瘟疫使者诺斯"]["announce"]);
CT_RABoss_PlaySound(2);
CT_RABoss_Schedule("CT_RABoss_MRNoth_EventHandler", 5, "precurse");
CT_RABoss_Mods["瘟疫使者诺斯"]["lastaction"] = time();
end
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_MRNOTH_BOSSNAME) or string.find(arg1, CT_RABOSS_MRNOTH_WARRIOR) or string.find(arg1, CT_RABOSS_MRNOTH_CHAMPION) or string.find(arg1, CT_RABOSS_MRNOTH_GUARDIAN) ) then
CT_RABoss_Mods["瘟疫使者诺斯"]["lastaction"] = time();
end
elseif ( event == "backinroom" ) then
if ( not CT_RABoss_Mods["瘟疫使者诺斯"]["lastaction"] or ( time() - CT_RABoss_Mods["瘟疫使者诺斯"]["lastaction"] ) > 30 ) then
return;
else
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -