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

📄 blackwinglair.lua

📁 时间太紧了
💻 LUA
📖 第 1 页 / 共 3 页
字号:
	elseif ( CT_RABoss_Chromaggus_PlayerDamageEvents[event] ) then
		-- Check for new vulnerabilities
		if ( not CT_RABoss_Mods["克洛玛古斯"]["Vulnerability"] ) then
			local iStart, iEnd, hittype, damage, school = string.find(arg1, CT_RABOSS_CHROMAGGUS_SPELLDAMAGESTRING);
			if ( tonumber(damage or "") ) then
				CT_RABoss_Debug(1, "Registered hit", hittype, tonumber(damage), school);
				-- Used to make sure we're still fighting
				CT_RABoss_Mods["克洛玛古斯"]["LastAction"] = currTime;
				
				if ( 
					( tonumber(damage) >= CT_RABOSS_CHROMAGGUS_ELEMENTALSHIELDLIMIT_HIT and string.find(hittype, CT_RABOSS_CHROMAGGUS_HIT) ) or
					( tonumber(damage) >= CT_RABOSS_CHROMAGGUS_ELEMENTALSHIELDLIMIT_CRIT and string.find(hittype, CT_RABOSS_CHROMAGGUS_CRIT) )
				) then
					CT_RABoss_Debug(4, "Setting vulnerability", school, (tonumber(damage) or -1));
					CT_RABoss_Mods["克洛玛古斯"]["Vulnerability"] = school;
					
					if ( CT_RABoss_Mods["克洛玛古斯"]["shieldWarning"] ) then
--						CT_RABoss_Announce(format(CT_RABOSS_CHROMAGGUS_NEWVULNERABILITYFOUNDWARNING, school), CT_RABoss_Mods["克洛玛古斯"]["announce"]);
						CT_RABoss_Announce(format(CT_RABOSS_CHROMAGGUS_NEWVULNERABILITYFOUNDWARNING, school));
						CT_RABoss_PlaySound(2);
					end
				end
			end
		end
			
	elseif ( event == "PLAYER_REGEN_DISABLED" ) then
		CT_RABoss_Mods["克洛玛古斯"]["checkStart"] = true;
		CT_RABoss_Schedule("CT_RABoss_Chromaggus_OnEvent", 5, "checkStart");
	
	elseif ( event == "checkStart" ) then
		local shallRestoreTarget = false;
		
		if ( CT_RABoss_Mods["克洛玛古斯"]["checkStart"] ) then
			if ( not UnitExists("target") or ( UnitName("target") ~= CT_RABOSS_CHROMAGGUS_BOSSNAME and UnitClass("player") ~= CT_RA_ROGUE ) ) then
				TargetByName(CT_RABOSS_CHROMAGGUS_BOSSNAME);
				shallRestoreTarget = true;
			end
			
			if ( UnitExists("target") and UnitName("target") == CT_RABOSS_CHROMAGGUS_BOSSNAME and UnitAffectingCombat("target") ) then
				CT_RABoss_Chromaggus_ResetMod();
				-- Used to make sure we're still fighting
				CT_RABoss_Mods["克洛玛古斯"]["LastAction"] = currTime;
				
				CT_RABoss_Schedule("CT_RABoss_Chromaggus_OnEvent", CT_RABOSS_CHROMAGGUS_BREATHWARNINGTIME - CT_RABOSS_CHROMAGGUS_BREATHINTERVAL - 5, CT_RABOSS_CHROMAGGUS_BREATH1);
				CT_RABoss_Schedule("CT_RABoss_Chromaggus_OnEvent", CT_RABOSS_CHROMAGGUS_BREATHWARNINGTIME - 5, CT_RABOSS_CHROMAGGUS_BREATH2);
				CT_RABoss_VisualTimer.addTimer("ChromaggusBreath", 25, CT_RABoss_Mods["克洛玛古斯"][CT_RABOSS_CHROMAGGUS_BREATH1]);
			else
				CT_RABoss_Mods["克洛玛古斯"]["LastAction"] = nil;
			end
			
			if ( shallRestoreTarget ) then
				TargetLastTarget();
			end
		end
		CT_RABoss_Mods["克洛玛古斯"]["checkStart"] = nil;
	end
end


-- Nefarian (Thanks to Sting of Blood Legion - Illidan Horde)
function CT_RABoss_Nefarian_OnLoad()
	CT_RABoss_AddMod("奈法利安", CT_RABOSS_NEFARIAN_INFO, 1, CT_RABOSS_LOCATIONS_BLACKWINGSLAIR);
	
	CT_RABoss_AddEvent("奈法利安", "CHAT_MSG_MONSTER_YELL", CT_RABoss_Nefarian_EventHandler);
	CT_RABoss_AddEvent("奈法利安", "CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE", CT_RABoss_Nefarian_EventHandler);
	CT_RABoss_AddEvent("奈法利安", "CHAT_MSG_COMBAT_HOSTILE_DEATH", CT_RABoss_Nefarian_EventHandler);
	CT_RABoss_AddEvent("奈法利安", "CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE", CT_RABoss_Nefarian_EventHandler);
	CT_RABoss_AddEvent("奈法利安", "CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE", CT_RABoss_Nefarian_EventHandler);
	CT_RABoss_AddEvent("奈法利安", "CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE", CT_RABoss_Nefarian_EventHandler);
	CT_RABoss_AddEvent("奈法利安", "CHAT_MSG_ADDON", CT_RABoss_Nefarian_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_NEFARIAN_SHADOWFLAME, CT_RABOSS_NEFARIAN_SHADOWFLAME_INFO }, "CT_RABoss_ModInfo", "shadowflame", "CT_RABoss_SetInfo");
	CT_RABoss_AddDropDownButton("奈法利安", { CT_RABOSS_NEFARIAN_FEAR, CT_RABOSS_NEFARIAN_FEAR_INFO }, "CT_RABoss_ModInfo", "fearAlert", "CT_RABoss_SetInfo");
	CT_RABoss_AddDropDownButton("奈法利安", { CT_RABOSS_NEFARIAN_VEIL, CT_RABOSS_NEFARIAN_VEIL_INFO }, "CT_RABoss_ModInfo", "veilOfShadow", "CT_RABoss_SetInfo");
	CT_RABoss_AddDropDownButton("奈法利安", { CT_RABOSS_NEFARIAN_KC, CT_RABOSS_NEFARIAN_KC_INFO }, "CT_RABoss_ModInfo", "KillCount", "CT_RABoss_SetInfo");
	CT_RABoss_AddDropDownButton("奈法利安", { CT_RABOSS_NEFARIAN_KCS, CT_RABOSS_NEFARIAN_KCS_INFO }, "CT_RABoss_ModInfo", "KillSync", "CT_RABoss_SetInfo");
	CT_RABoss_AddDropDownButton("奈法利安", { CT_RABOSS_NEFARIAN_KCEST, CT_RABOSS_NEFARIAN_KCEST_INFO }, "CT_RABoss_ModInfo", "KillTime", "CT_RABoss_SetInfo");
	--precast warnings
	CT_RABoss_AddDropDownButton("奈法利安", { CT_RABOSS_NEFARIAN_PREFEAR, CT_RABOSS_NEFARIAN_PREFEAR_INFO }, "CT_RABoss_ModInfo", "PrefearAlert", "CT_RABoss_SetInfo");
	CT_RABoss_AddDropDownButton("奈法利安", { CT_RABOSS_NEFARIAN_PRESHAD, CT_RABOSS_NEFARIAN_PRESHAD_INFO }, "CT_RABoss_ModInfo", "PreShadAlert", "CT_RABoss_SetInfo");
	CT_RABoss_AddDropDownButton("奈法利安", { CT_RABOSS_NEFARIAN_PRECLASS, CT_RABOSS_NEFARIAN_PRECLASS_INFO }, "CT_RABoss_ModInfo", "PreClassAlert", "CT_RABoss_SetInfo");
end

function CT_RABoss_Nefarian_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" and string.find(arg1, CT_RABOSS_NEFARIAN_START) and CT_RABoss_Mods["奈法利安"]["KillCount"] ) then
		CT_RABoss_Counter.initialize("奈法利安", "DrakonidCount", CT_RABoss_Mods["奈法利安"]["KillSync"], CT_RABoss_Mods["奈法利安"]["announce"], 42, CT_RABOSS_NEFARIAN_MOBNAME, CT_RABOSS_NEFARIAN_KCOUNT, CT_RABOSS_NEFARIAN_KCOUNT_HEADER);
		CT_RABoss_Counter.setOptions("奈法利安", "DrakonidCount", {["displayEstEnd"] = CT_RABoss_Mods["奈法利安"]["KillTime"]});

		CT_RABoss_Announce(CT_RABOSS_NEFARIAN_BEGIN, CT_RABoss_Mods["奈法利安"]["announce"]);
		CT_RABoss_PlaySound(2);
	
	elseif ( event == "CHAT_MSG_COMBAT_HOSTILE_DEATH" and CT_RABoss_Mods["奈法利安"]["KillCount"] ) then
		local _, _, mobName = string.find(arg1, CT_RABOSS_NEFARIAN_DRAGONDEATH);
		
		if ( mobName ) then
			CT_RABoss_Counter.sendSync(mobName, "奈法利安", "DrakonidCount");
		end
	elseif ( event == "CHAT_MSG_MONSTER_YELL" and string.find(arg1, CT_RABOSS_NEFARIAN_SHAMAN_CALL) and (CT_RABoss_Mods["奈法利安"]["PreClassAlert"]) ) then
		CT_RABoss_Announce(CT_RABOSS_NEFARIAN_SHAMAN_ALERT, CT_RABoss_Mods["奈法利安"]["announce"]);
		CT_RABoss_PlaySound(1);
		--adevent next class in 27
		CT_RABoss_Schedule("CT_RABoss_Nefarian_EventHandler", 27, "CLASS27SEC");
		CT_RABoss_VisualTimer.addTimer("NefarianClassCall", 32, CT_RABOSS_NEFARIAN_CLASS_TIMER);

	elseif ( event == "CHAT_MSG_MONSTER_YELL" and string.find(arg1, CT_RABOSS_NEFARIAN_DRUID_CALL) and (CT_RABoss_Mods["奈法利安"]["PreClassAlert"]) ) then
		CT_RABoss_Announce(CT_RABOSS_NEFARIAN_DRUID_ALERT, CT_RABoss_Mods["奈法利安"]["announce"]);
		CT_RABoss_PlaySound(1);
		--adevent next class in 27
		CT_RABoss_Schedule("CT_RABoss_Nefarian_EventHandler", 27, "CLASS27SEC");
		CT_RABoss_VisualTimer.addTimer("NefarianClassCall", 32, CT_RABOSS_NEFARIAN_CLASS_TIMER);

	elseif ( event == "CHAT_MSG_MONSTER_YELL" and string.find(arg1, CT_RABOSS_NEFARIAN_WARLOCK_CALL) and (CT_RABoss_Mods["奈法利安"]["PreClassAlert"]) ) then
		CT_RABoss_Announce(CT_RABOSS_NEFARIAN_WARLOCK_ALERT, CT_RABoss_Mods["奈法利安"]["announce"]);
		CT_RABoss_PlaySound(1);
		--adevent next class in 27
		CT_RABoss_Schedule("CT_RABoss_Nefarian_EventHandler", 27, "CLASS27SEC");
		CT_RABoss_VisualTimer.addTimer("NefarianClassCall", 32, CT_RABOSS_NEFARIAN_CLASS_TIMER);

	elseif ( event == "CHAT_MSG_MONSTER_YELL" and string.find(arg1, CT_RABOSS_NEFARIAN_PRIEST_CALL) and (CT_RABoss_Mods["奈法利安"]["PreClassAlert"]) ) then
		CT_RABoss_Announce(CT_RABOSS_NEFARIAN_PRIEST_ALERT, CT_RABoss_Mods["奈法利安"]["announce"]);
		CT_RABoss_PlaySound(1);
		--adevent next class in 27
		CT_RABoss_Schedule("CT_RABoss_Nefarian_EventHandler", 27, "CLASS27SEC");
		CT_RABoss_VisualTimer.addTimer("NefarianClassCall", 32, CT_RABOSS_NEFARIAN_CLASS_TIMER);

	elseif ( event == "CHAT_MSG_MONSTER_YELL" and string.find(arg1, CT_RABOSS_NEFARIAN_HUNTER_CALL) and (CT_RABoss_Mods["奈法利安"]["PreClassAlert"]) ) then
		CT_RABoss_Announce(CT_RABOSS_NEFARIAN_HUNTER_ALERT, CT_RABoss_Mods["奈法利安"]["announce"]);
		CT_RABoss_PlaySound(1);
		--adevent next class in 27
		CT_RABoss_Schedule("CT_RABoss_Nefarian_EventHandler", 27, "CLASS27SEC");
		CT_RABoss_VisualTimer.addTimer("NefarianClassCall", 32, CT_RABOSS_NEFARIAN_CLASS_TIMER);

	elseif ( event == "CHAT_MSG_MONSTER_YELL" and string.find(arg1, CT_RABOSS_NEFARIAN_WARRIOR_CALL) and (CT_RABoss_Mods["奈法利安"]["PreClassAlert"]) ) then
		CT_RABoss_Announce(CT_RABOSS_NEFARIAN_WARRIOR_ALERT, CT_RABoss_Mods["奈法利安"]["announce"]);
		CT_RABoss_PlaySound(1);
		--adevent next class in 27
		CT_RABoss_Schedule("CT_RABoss_Nefarian_EventHandler", 27, "CLASS27SEC");
		CT_RABoss_VisualTimer.addTimer("NefarianClassCall", 32, CT_RABOSS_NEFARIAN_CLASS_TIMER);

	elseif ( event == "CHAT_MSG_MONSTER_YELL" and string.find(arg1, CT_RABOSS_NEFARIAN_ROGUE_CALL) and (CT_RABoss_Mods["奈法利安"]["PreClassAlert"]) ) then
		CT_RABoss_Announce(CT_RABOSS_NEFARIAN_ROGUE_ALERT, CT_RABoss_Mods["奈法利安"]["announce"]);
		CT_RABoss_PlaySound(1);
		--adevent next class in 27
		CT_RABoss_Schedule("CT_RABoss_Nefarian_EventHandler", 27, "CLASS27SEC");
		CT_RABoss_VisualTimer.addTimer("NefarianClassCall", 32, CT_RABOSS_NEFARIAN_CLASS_TIMER);

	elseif ( event == "CHAT_MSG_MONSTER_YELL" and string.find(arg1, CT_RABOSS_NEFARIAN_PALADIN_CALL) and (CT_RABoss_Mods["奈法利安"]["PreClassAlert"]) ) then
		CT_RABoss_Announce(CT_RABOSS_NEFARIAN_PALADIN_ALERT, CT_RABoss_Mods["奈法利安"]["announce"]);
		CT_RABoss_PlaySound(1);
		--adevent next class in 27
		CT_RABoss_Schedule("CT_RABoss_Nefarian_EventHandler", 27, "CLASS27SEC");
		CT_RABoss_VisualTimer.addTimer("NefarianClassCall", 32, CT_RABOSS_NEFARIAN_CLASS_TIMER);

	elseif ( event == "CHAT_MSG_MONSTER_YELL" and string.find(arg1, CT_RABOSS_NEFARIAN_MAGE_CALL) and (CT_RABoss_Mods["奈法利安"]["PreClassAlert"]) ) then
		CT_RABoss_Announce(CT_RABOSS_NEFARIAN_MAGE_ALERT, CT_RABoss_Mods["奈法利安"]["announce"]);
		CT_RABoss_PlaySound(1);
		--adevent next class in 27
		CT_RABoss_Schedule("CT_RABoss_Nefarian_EventHandler", 27, "CLASS27SEC");
		CT_RABoss_VisualTimer.addTimer("NefarianClassCall", 32, CT_RABOSS_NEFARIAN_CLASS_TIMER);

	elseif ( (event == "CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE") and (arg1 == CT_RABOSS_NEFARIAN_SHADOWFLAME_DETECT) and (CT_RABoss_Mods["奈法利安"]["shadowflame"]) ) then
		CT_RABoss_Announce(CT_RABOSS_NEFARIAN_SHADOWFLAME_WARN, CT_RABoss_Mods["奈法利安"]["announce"]);
		CT_RABoss_PlaySound(3);
		--adevent next shad in 8
		CT_RABoss_Schedule("CT_RABoss_Nefarian_EventHandler", 8, "SHAD8SEC");
		CT_RABoss_VisualTimer.addTimer("NefarianShadowflame", 13, CT_RABOSS_NEFARIAN_SHADOWFLAME_TIMER);

	elseif ( (event == "CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE") and (arg1 == CT_RABOSS_NEFARIAN_FEAR_DETECT) and (CT_RABoss_Mods["奈法利安"]["fearAlert"]) ) then
		CT_RABoss_Announce(CT_RABOSS_NEFARIAN_FEAR_WARN, CT_RABoss_Mods["奈法利安"]["announce"]);
		CT_RABoss_PlaySound(3);
		--adevent next fear in 23
		CT_RABoss_Schedule("CT_RABoss_Nefarian_EventHandler", 23, "FEAR23SEC");
		CT_RABoss_VisualTimer.addTimer("奈法利安", 28, CT_RABOSS_NEFARIAN_FEAR_TIMER);

	elseif ( event == "CHAT_MSG_MONSTER_YELL" and string.find(arg1, CT_RABOSS_NEFARIAN_LAND_10SEC_DETECT) ) then
		CT_RABoss_Announce(CT_RABOSS_NEFARIAN_LAND_10SEC, CT_RABoss_Mods["奈法利安"]["announce"]);
		CT_RABoss_PlaySound(1);

	elseif ( event == "CHAT_MSG_MONSTER_YELL" and string.find(arg1, CT_RABOSS_NEFARIAN_LANDING_DETECT) ) then
		CT_RABoss_Announce(CT_RABOSS_NEFARIAN_LANDING, CT_RABoss_Mods["奈法利安"]["announce"]);
		CT_RABoss_PlaySound(1);

	elseif ( event == "CHAT_MSG_MONSTER_YELL" and string.find(arg1, CT_RABOSS_NEFARIAN_ZERG_DETECT) ) then
		CT_RABoss_Announce(CT_RABOSS_NEFARIAN_ZERG, CT_RABoss_Mods["奈法利安"]["announce"]);
		CT_RABoss_PlaySound(1);
		
	elseif ( (event == "CLASS27SEC") and (CT_RABoss_Mods["奈法利安"]["PreClassAlert"]) ) then
	 	CT_RABoss_Announce(CT_RABOSS_NEFARIAN_PRECLASS_WARN, CT_RABoss_Mods["奈法利安"]["announce"]);
		CT_RABoss_PlaySound(3);
		
	elseif ( (event == "FEAR23SEC") and (CT_RABoss_Mods["奈法利安"]["PrefearAlert"]) ) then
		CT_RABoss_Announce(CT_RABOSS_NEFARIAN_PREFEAR_WARN, CT_RABoss_Mods["奈法利安"]["announce"]);
		CT_RABoss_PlaySound(3);
		
	elseif ( (event == "SHAD8SEC") and (CT_RABoss_Mods["奈法利安"]["PreShadAlert"]) ) then
		CT_RABoss_Announce(CT_RABOSS_NEFARIAN_PRESHAD_WARN, CT_RABoss_Mods["奈法利安"]["announce"]);
		CT_RABoss_PlaySound(3);
		
	elseif ( CT_RABoss_Mods["奈法利安"]["veilOfShadow"] ) and ( event == "CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE" or event == "CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE" or event == "CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE" ) then
		local iStart, iEnd, sPlayer, sType = string.find(arg1, CT_RABOSS_NEFARIAN_AFFLICT_VEIL);
		if ( sPlayer and sType ) then
			if ( sPlayer == CT_RABOSS_SELF1 and sType == CT_RABOSS_SELF2 ) then
				CT_RABoss_Announce("*** " .. UnitName("player") .. CT_RABOSS_NEFARIAN_CURSEWARNRAID, CT_RABoss_Mods["奈法利安"]["announce"]);
				CT_RABoss_PlaySound(2);
			else 
				CT_RABoss_Announce("*** " .. sPlayer .. CT_RABOSS_NEFARIAN_CURSEWARNRAID, CT_RABoss_Mods["奈法利安"]["announce"]);
				CT_RABoss_PlaySound(3);
			end
		end
	elseif ( event == "CHAT_MSG_ADDON" and CT_RABoss_Mods["奈法利安"]["KillCount"] ) then
		CT_RABoss_Counter.receiveSync(arg1, arg2, arg4, "奈法利安", "DrakonidCount");
	end
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -