⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ahnqiraj.lua

📁 时间太紧了
💻 LUA
📖 第 1 页 / 共 4 页
字号:
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 + -