Code:
--[[Alereth]]--
function AlerethEarth(pUnit, event)
pUnit:CastSpellOnTarget(30129, pUnit:GetRandomPlayer(0))
if pUnit:GetRandomPlayer(0) == nil then
pUnit:CastSpellOnTarget(30129, pUnit:GetClosestPlayer())
end
if pUnit:GetClosestPlayer() == nil then
return
end
end
function AlerethBreath(pUnit, event)
pUnit:CastSpellOnTarget(56908, pUnit:GetMainTank())
if pUnit:GetMainTank() == nil then
pUnit:CastSpellOnTarget(56908, pUnit:GetClosestPlayer())
end
if pUnit:GetClosestPlayer() == nil then
return
end
end
function AlerethFirerain(pUnit, Event)
pUnit:CastSpellOnTarget(42023, pUnit:GetRandomPlayer(0))
if pUnit:GetRandomPlayer(0) == nil then
pUnit:CastSpellOnTarget(42023, pUnit:GetClosestPlayer())
end
if pUnit:GetClosestPlayer() == nil then
return
end
end
function AlerethMiniEnrage(pUnit, event)
pUnit:CastSpell(19812)
end
function AlerethMegaEnrage(pUnit, Event)
pUnit:CastSpell(26662)
end
function AlerethImmun(pUnit, Event)
pUnit:CastSpell(42354)
pUnit:CastSpell(57679)
end
function AlerethBattleTalk(pUnit, Event)
local choice=math.random(1,3)
if choice==1 then
pUnit:PlaySoundToSet(14099)
pUnit:SendChatMessage(14, 0, "Wie leicht Sie brennen, diese kleinen Maden.")
end
if choice==2 then
pUnit:PlaySoundToSet(14101)
pUnit:SendChatMessage(14, 0, "Wie viel Hitze k\195\182nnt ihr vertragen?")
end
if choice==3 then
pUnit:PlaySoundToSet(14102)
pUnit:SendChatMessage(14, 0, "Nur noch Asche wird \195\188brig bleiben!")
end
end
function AlerethSpawn(pUnit, Event)
pUnit:SpawnCreature(700000, 3241, 483, 57, 1.463975, 2010, 20000)
pUnit:SpawnCreature(700001, 3223, 512, 58, 0.439823, 2010, 20000)
pUnit:SpawnCreature(700001, 3263, 509, 59, 2.517202, 2010, 20000)
end
function AlerethTalk1(pUnit, Event)
pUnit:PlaySoundToSet(14103)
pUnit:CastSpell(19798)
pUnit:SendChatMessage(14, 0, "Dieser l\195\164cherliche Angriff endet jetzt!")
end
function AlerethAggro(pUnit, event)
pUnit:PlaySoundToSet(14093)
pUnit:SendChatMessage(14, 0, "Meine Aufgabe ist es \195\188ber diese Eier zu Wachen. Kommt ihnen zu Nahe und von Euch bleibt nur ein H\195\164uflein Asche.")
pUnit:RegisterEvent("AlerethBattleTalk", 26000, 0)
pUnit:RegisterEvent("AlerethBreath", 27000, 0)
pUnit:RegisterEvent("AlerethEarth", 13000, 0)
pUnit:RegisterEvent("AlerethFirerain", 17000, 0)
pUnit:RegisterEvent("AlerethMiniEnrage", 19000, 0)
pUnit:RegisterEvent("Alereth2", 1000, 0)
pUnit:RegisterEvent("AlerethMegaEnrage", 360000, 0)
end
function Alereth2(pUnit, event)
if pUnit:GetHealthPct() <= 6 then
pUnit:RemoveEvents()
pUnit:SetFaction(1852)
pUnit:SetCombatCapable(1)
pUnit:PlaySoundToSet(14096)
pUnit:SendChatMessage(14, 0, "Ihr seid in einer tottraurigen Lage.")
pUnit:RegisterEvent("AlerethImmun", 200, 1)
pUnit:RegisterEvent("AlerethSpawn", 3000, 1)
pUnit:RegisterEvent("AlerethTalk1", 6500, 1)
pUnit:RegisterEvent("AlerethExplode1", 7000, 1)
pUnit:RegisterEvent("AlerethExplode2", 8000, 1)
pUnit:RegisterEvent("AlerethDied", 9000, 1)
end
end
function AlerethExplode1(pUnit, event)
pUnit:CastSpell(36373)
pUnit:CastSpell(36092)
end
function AlerethExplode2(pUnit, event)
pUnit:CastSpell(36373)
pUnit:CastSpell(36092)
end
function AlerethDied(pUnit, event)
pUnit:RemoveEvents()
Foe=pUnit;
end
function AlerethLeave(pUnit, event)
pUnit:RemoveEvents()
pUnit:RemoveAura(28131)
pUnit:RemoveAura(42354)
end
function AlerethDeath(pUnit, event)
pUnit:RemoveEvents()
pUnit:PlaySoundToSet(14107)
pUnit:SendChatMessage(14, 0, "Dies ist der Preis des Versagens...")
pUnit:RemoveAura(28131)
end
RegisterUnitEvent(9, 1, "AlerethAggro")
RegisterUnitEvent(9, 2, "AlerethLeave")
RegisterUnitEvent(9, 4, "AlerethDeath")
local npcid = 50
RegisterUnitEvent(npcid, 18, "ControllNpc")
function ControllNpc(Unit, event)
Unit:SetScale(0.01)
x = Unit:GetX();
y = Unit:GetY();
z = Unit:GetZ();
o = Unit:GetO();
Unit:SpawnCreature(npcid, x, y, z, o, 35, 0);
Unit:CastSpell(5, Foe)
Unit:Despawn(1,0)
end