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

📄 ahnqiraj.lua

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