Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local halion
- local halionN = {}
- local flames = {}
- local halionID = 99990
- local flame_object = 182260
- local flame_spell = 74528
- local eadric = {}
- local eadricID = 99991
- local avengwrath = 43430
- local holybolt = 57465
- local ashbringer = 57544
- local starter
- local battletime_sec = 0
- local battletime_min = 0
- local heal = 61965
- local bubble = 40733
- local inprogress = false
- local shadow_lance = 72810
- local delirious_slash = 71623
- local halion_buffs = 90
- local halion_buff = 62519
- local halion_heal_spell = 62892
- local debuffID = 999999
- local debuff = {}
- local enrage = 61212
- function halion_spawn(pUnit, event)
- halion = pUnit
- halion:SetUInt32Value(59, 2)
- halion:SetMovementFlags(2)
- halion:MoveTo(5811.865234, 430.781677, 658.773376, 1.366595)
- halion:RegisterEvent("halion_despawn_nearby", 4000, 1)
- end
- function halion_despawn_nearby(pUnit, event)
- for _,v in pairs(halion:GetInRangeUnits()) do
- v:Despawn(3000, 600000)
- end
- halion:FullCastSpell(flame_spell)
- halion:RegisterEvent("halion_flames", 2200, 1)
- halion:RegisterEvent("eadric_spawn", 3000, 1)
- halion:SendChatMessage(14, 0, "The heavens burn!")
- halion:PlaySoundToSet(17505)
- end
- function halion_flames(pUnit, event)
- flames[1] = PerformIngameSpawn(2, flame_object, 571, 5836.120117, 451.244812, 658.778137, 3.223354, 500, 0)
- flames[2] = PerformIngameSpawn(2, flame_object, 571, 5822.706543, 470.705505, 658.778992, 4.216882, 500, 0)
- flames[3] = PerformIngameSpawn(2, flame_object, 571, 5804.275391, 471.398376, 658.780884, 5.013276, 500, 0)
- flames[4] = PerformIngameSpawn(2, flame_object, 571, 5843.834473, 473.248962, 657.648315, 4.002699, 500, 0)
- flames[5] = PerformIngameSpawn(2, flame_object, 571, 5811.180176, 491.086731, 657.165039, 4.214756, 500, 0)
- end
- RegisterUnitEvent(halionID, 18, "halion_spawn")
- function eadric_spawn(pUnit, event)
- eadric[1] = PerformIngameSpawn(1, eadricID, 571, 5818.958008, 518.560913, 657.748291, 5.737253, 2007, 0)
- eadric[1]:MoveTo(5831.867188, 513.460938, 657.748291, 4.578004)
- eadric[1]:SetMovementFlags(1)
- eadric[1]:EquipWeapons(13262, 0, 0)
- halion:RegisterEvent("eadric_move1", 2000, 1)
- end
- function eadric_move1(pUnit, event)
- eadric[1]:MoveTo(5815.333984, 450.494781, 658.753113, 4.254894)
- halion:RegisterEvent("eadric_taunt", 7000, 1)
- end
- function eadric_taunt(pUnit, event)
- eadric[1]:SendChatMessage(14, 0, "For the Argent Crusade!")
- eadric[1]:SetUInt32Value(59, 0)
- halion:RegisterEvent("flames_damage", 3000, 0)
- halion:SetCombatCapable(0)
- halion:SetUInt32Value(59, 0)
- halion:SetMovementFlags(0)
- halion:SetTauntedBy(eadric[1])
- eadric[1]:SetTauntedBy(halion)
- eadric[1]:SetTauntedBy(halionN[1])
- battletime_sec = 1
- battletime_min = 0
- halion_buffs = 90
- RegisterTimedEvent("battle_time_up", 1000, 0)
- eadric[1]:RegisterEvent("eadric_spells", 1000, 1)
- eadric[1]:RegisterEvent("eadric_bubble", 1000, 0)
- halion:RegisterEvent("halion_spells", 1000, 1)
- for i = 1, halion_buffs do
- halion:CastSpell(halion_buff)
- end
- end
- function eadric_spells(pUnit, event)
- eadric[1]:RegisterEvent("eadric_ash", 6000, 0)
- eadric[1]:RegisterEvent("eadric_holybolt", 7000, 0)
- eadric[1]:RegisterEvent("eadric_avengwrath", 15000, 0)
- eadric[1]:RegisterEvent("eadric_heal", 10000, 0)
- eadric[1]:RegisterEvent("eadric_spawn_f", 10000, 19)
- end
- function eadric_spawn_f(pUnit, event)
- starter:SendBroadcastMessage("["..pUnit:GetName().."]Spawning Debuff Brazier...["..battletime_min..":"..battletime_sec.."]")
- local random_spawn = math.random(1, 6)
- if(random_spawn == 1) then
- debuff[1] = PerformIngameSpawn(2, debuffID, eadric[1]:GetMapId(), eadric[1]:GetX()+15, eadric[1]:GetY(), eadric[1]:GetZ(), eadric[1]:GetO(), 50, 5000)
- elseif(random_spawn == 2) then
- debuff[1] = PerformIngameSpawn(2, debuffID, eadric[1]:GetMapId(), eadric[1]:GetX()-15, eadric[1]:GetY(), eadric[1]:GetZ(), eadric[1]:GetO(), 50, 5000)
- elseif(random_spawn == 3) then
- debuff[1] = PerformIngameSpawn(2, debuffID, eadric[1]:GetMapId(), eadric[1]:GetX()+15, eadric[1]:GetY()+15, eadric[1]:GetZ(), eadric[1]:GetO(), 50, 5000)
- elseif(random_spawn == 4) then
- debuff[1] = PerformIngameSpawn(2, debuffID, eadric[1]:GetMapId(), eadric[1]:GetX()+15, eadric[1]:GetY()-15, eadric[1]:GetZ(), eadric[1]:GetO(), 50, 5000)
- elseif(random_spawn == 5) then
- debuff[1] = PerformIngameSpawn(2, debuffID, eadric[1]:GetMapId(), eadric[1]:GetX()-15, eadric[1]:GetY()-15, eadric[1]:GetZ(), eadric[1]:GetO(), 50, 5000)
- elseif(random_spawn == 6) then
- debuff[1] = PerformIngameSpawn(2, debuffID, eadric[1]:GetMapId(), eadric[1]:GetX()-15, eadric[1]:GetY()+15, eadric[1]:GetZ(), eadric[1]:GetO(), 50, 5000)
- end
- end
- function halion_removebuff(pUnit, event)
- eadric[1]:SetHealthPct(eadric[1]:GetHealthPct()+5)
- starter:SendBroadcastMessage("["..pUnit:GetName().."]Healing Eadric the Pure, Current HP "..eadric[1]:GetHealth().."/"..eadric[1]:GetMaxHealth().."["..battletime_min..":"..battletime_sec.."]")
- if(halion_buffs == 0) then
- else
- for i = 1, halion_buffs do
- halion:RemoveAura(halion_buff)
- end
- halion_buffs = halion_buffs - 5
- starter:SendBroadcastMessage("["..pUnit:GetName().."]Removing Buff from Halion, Buffs remaining: "..halion_buffs.."["..battletime_min..":"..battletime_sec.."]")
- debuff[1]:Despawn(100, 0)
- for i = 1, halion_buffs do
- halion:CastSpell(halion_buff)
- end
- end
- end
- function eadric_ash(pUnit, event)
- if(eadric[1]:GetCurrentSpellId() == nil) then
- eadric[1]:FullCastSpellOnTarget(ashbringer, halion)
- starter:SendBroadcastMessage("["..pUnit:GetName().."]Ashbringer...["..battletime_min..":"..battletime_sec.."]")
- end
- end
- function eadric_holybolt(pUnit, event)
- if(eadric[1]:GetCurrentSpellId() == nil) then
- eadric[1]:FullCastSpellOnTarget(holybolt, halion)
- starter:SendBroadcastMessage("["..pUnit:GetName().."]Holy Bolt...["..battletime_min..":"..battletime_sec.."]")
- end
- end
- function eadric_heal(pUnit, event)
- if(eadric[1]:GetCurrentSpellId() == nil) then
- eadric[1]:FullCastSpell(heal)
- starter:SendBroadcastMessage("["..pUnit:GetName().."]Heal...["..battletime_min..":"..battletime_sec.."]")
- end
- end
- function eadric_avengwrath(pUnit, event)
- if(eadric[1]:GetCurrentSpellId() == nil) then
- eadric[1]:CastSpell(avengwrath)
- starter:SendBroadcastMessage("["..pUnit:GetName().."]AvengWrath...["..battletime_min..":"..battletime_sec.."]")
- end
- end
- function battle_time_up(pUnit, event)
- if battletime_sec == 59 then
- battletime_min = battletime_min + 1
- battletime_sec = 0
- else
- battletime_sec = battletime_sec + 1
- end
- end
- function eadric_bubble(pUnit, event)
- if(eadric[1]:GetHealthPct() <= 45) then
- starter:SendBroadcastMessage("Disabling spells... Bubble UP! ["..battletime_min..":"..battletime_sec.."]")
- eadric[1]:CastSpell(bubble)
- eadric[1]:RemoveEvents()
- halion:RemoveEvents()
- eadric[1]:SetUInt32Value(59, 2)
- eadric[1]:RegisterEvent("eadric_heal", 2010, 0)
- eadric[1]:RegisterEvent("eadric_stopheal", 21000, 1)
- end
- end
- function eadric_stopheal(pUnit, event)
- eadric[1]:RemoveEvents()
- eadric[1]:RemoveAura(bubble)
- eadric[1]:SetUInt32Value(59, 0)
- eadric[1]:RegisterEvent("eadric_enrage", 1000, 0)
- eadric[1]:RegisterEvent("eadric_ash", 3000, 0)
- eadric[1]:RegisterEvent("eadric_holybolt", 4000, 0)
- eadric[1]:RegisterEvent("eadric_avengwrath", 15000, 0)
- eadric[1]:RegisterEvent("eadric_spawn_f", 20000, 3)
- halion:RegisterEvent("halion_spells", 1000, 1)
- starter:SendBroadcastMessage("["..pUnit:GetName().."]Has Stopped healing self!["..battletime_min..":"..battletime_sec.."]")
- end
- function eadric_enrage(pUnit, event)
- if(halion:GetHealthPct() <= 30) then
- eadric[1]:CastSpell(enrage)
- eadric[1]:RemoveEvents()
- eadric[1]:RegisterEvent("eadric_ash", 3000, 0)
- eadric[1]:RegisterEvent("eadric_holybolt", 4000, 0)
- eadric[1]:RegisterEvent("eadric_avengwrath", 15000, 0)
- eadric[1]:RegisterEvent("eadric_spawn_f", 20000, 3)
- end
- end
- function flames_damage(pGameObject, event)
- flames[1]:CastSpellOnTarget(64733, eadric[1])
- flames[2]:CastSpellOnTarget(64733, eadric[1])
- flames[3]:CastSpellOnTarget(64733, eadric[1])
- flames[4]:CastSpellOnTarget(64733, eadric[1])
- flames[5]:CastSpellOnTarget(64733, eadric[1])
- end
- function halion_spells(pUnit, event)
- halion:CastSpell(halion_heal_spell)
- halion:RegisterEvent("halion_slash", 10000, 0)
- halion:RegisterEvent("halion_shadowlance", 7000, 0)
- end
- function halion_shadowlance(pUnit, event)
- if(halion:GetCurrentSpellId() == nil) then
- starter:SendBroadcastMessage("["..pUnit:GetName().."]Shadow Lance...["..battletime_min..":"..battletime_sec.."]")
- halion:FullCastSpellOnTarget(shadow_lance, halion:GetMainTank())
- end
- end
- function halion_slash(pUnit, event)
- if(halion:GetCurrentSpellId() == nil) then
- starter:SendBroadcastMessage("["..pUnit:GetName().."]Delirious Slash...["..battletime_min..":"..battletime_sec.."]")
- halion:FullCastSpellOnTarget(delirious_slash, halion:GetMainTank())
- end
- end
- function halion_spawn_msg(event, player, message, type, language)
- if(message == "#halion") then
- if(player:IsGm() == true) then
- if(inprogress == false) then
- halionN[1] = PerformIngameSpawn(1, halionID, 571, 5800.203125, 389.554016, 669.523315, 1.334444, 2068, 0)
- starter = player
- inprogress = true
- else
- player:SendBroadcastMessage("Halion encounter is already in progress!")
- end
- else
- player:SendBroadcastMessage("Only GM or Admin can use this command!")
- end
- return 0
- elseif(message == "#buffs") then
- for i = 1, halion_buffs do
- halion:RemoveAura(halion_buff)
- end
- halion_buffs = 0
- eadric[1]:SetHealthPct(45)
- halion:SetHealthPct(31)
- end
- end
- RegisterServerHook(16, "halion_spawn_msg")
- function ead_hal_die(pUnit, event)
- if(halion:IsDead() == true) then
- for k,v in pairs(eadric[1]:GetInRangePlayers()) do
- v:AddItem(49426, 5)
- end
- end
- halion:RemoveEvents()
- halion:Despawn(1000, 0)
- eadric[1]:Despawn(1000, 0)
- flames[1]:Despawn(1000, 0)
- flames[2]:Despawn(1000, 0)
- flames[3]:Despawn(1000, 0)
- flames[4]:Despawn(1000, 0)
- flames[5]:Despawn(1000, 0)
- inprogress = false
- RemoveTimedEvents()
- end
- RegisterUnitEvent(halionID, 4, "ead_hal_die")
- RegisterUnitEvent(eadricID, 4, "ead_hal_die")
- RegisterGameObjectEvent(debuffID, 4, "halion_removebuff")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement