Code:
local SpawnID =23375
local NPCNAME = Illidan Stormrage
local SPAWNNAME =Shadow Demon
local NPCID =22917
-- Start function --
function NPCNAME_OnEnterCombat(pUnit,Event)
pUnit:SetModel(22917)
pUnit:PlaySoundToSet(22917)
pUnit:SetScale(2)
pUnit:SetCombatCapable(1)
pUnit:SetFaction(35)
pUnit:SendChatMessage(0, 0, "")
pUnit:RegisterEvent("NPCNAME_TalkStart1", 5000, 0)
end
-- Phase one --
function NPCNAME_SpellpUnitShear,Event)
pUnit:CastSpellOnTarget(41032,pUnit:GetRandomPlayer(0))
pUnit:CastSpellOnTarget(41032,pUnit:GetRandomPlayer(0))
end
function NPCNAME_SpellFlameCrash(pUnit,Event)
pUnit:CastSpellOnTarget(40832,pUnit:GetRandomPlayer(0))
pUnit:CastSpellOnTarget(40832,pUnit:GetRandomPlayer(0))
end
function NPCNAME_Phaseone(pUnit,Event)
Choice=math.random(1, 2, 3, 4)
if Choice==1 then
pUnit:CastSpellOnTarget(41117,pUnit:GetRandomPlayer(0))
end
if Choice==2 then
pUnit:CastSpellOnTarget(40904,pUnit:GetRandomPlayer(0))
end
if Choice==3 then
pUnit:CastSpellOnTarget(41032,pUnit:GetRandomPlayer(0))
end
if Choice==4 then
pUnit:CastSpellOnTarget(40832,pUnit:GetRandomPlayer(0))
end
end
if nit:GetHealthPct() <= 80 then
Unit:RegisterEvent("NPCNAME_Phasetwo", 1000, 0)
not Unit:RegisterEvent("NPCNAME_Phaseone", 1000, 0)
end
--Phase two--
function NPCNAME_Phasetwo(pUnit,Event)
Choice=math.random(1, 2, 3)
if Choice==1 then
pUnit:CastSpellOnTarget(40018,pUnit:GetRandomPlayer(0))
end
if Choice==2 then
pUnit:CastSpellOnTarget(40598,pUnit:GetRandomPlayer(0))
end
if Choice==3 then
pUnit:CastSpellOnTarget(40585,pUnit:GetRandomPlayer(0))
end
end
if nit:GetHealthPct() <= 70 then
Unit:RegisterEvent("NPCNAME_Phasethree", 1000, 0)
not Unit:RegisterEvent("NPCNAME_Phasetwo", 1000, 0
end
--Phase 3--
function NPCNAME_SpellpUnitShear,Event)
pUnit:CastSpellOnTarget(41032,pUnit:GetRandomPlayer(0))
pUnit:CastSpellOnTarget(41032,pUnit:GetRandomPlayer(0))
end
function NPCNAME_SpellFlameCrash(pUnit,Event)
pUnit:CastSpellOnTarget(40832,pUnit:GetRandomPlayer(0))
pUnit:CastSpellOnTarget(40832,pUnit:GetRandomPlayer(0))
end
function NPCNAME_Phasethree(pUnit,Event)
Choice=math.random(1, 2, 3, 4, 5)
if Choice==1 then
pUnit:CastSpellOnTarget(41117,pUnit:GetRandomPlayer(0))
end
if Choice==2 then
pUnit:CastSpellOnTarget(40904,pUnit:GetRandomPlayer(0))
end
if Choice==3 then
pUnit:CastSpellOnTarget(41032,pUnit:GetRandomPlayer(0))
end
if Choice==4 then
pUnit:CastSpellOnTarget(40832,pUnit:GetRandomPlayer(0))
end
if Choice==5 then
pUnit:CastSpellOnTarget(40932,pUnit:GetRandomPlayer(0))
end
if nit:GetHealthPct() <= 50 then
Unit:RegisterEvent("NPCNAME_Phasefour", 1000, 0)
not Unit:RegisterEvent("NPCNAME_Phasethree", 1000, 0)
end
--Phase 4--
function NPCNAME_SpellR(pUnit,Event)
Choice=math.random(1, 2, 3, 4)
if Choice==1 then
pUnit:CastSpellOnTarget(41078,pUnit:GetRandomPlayer(0))
end
if Choice==2 then
pUnit:CastSpellOnTarget(41126,pUnit:GetRandomPlayer(0))
end
if Choice==3 then
pUnit:CastSpellOnTarget(41117,pUnit:GetRandomPlayer(0))
end
if Choice==4 then
pUnit:CastSpellOnTarget(41142,pUnit:GetRandomPlayer(0))
end
if nit:GetHealthPct() <= 25 then
Unit:RegisterEvent("NPCNAME_Phasefive", 1000, 0)
not Unit:RegisterEvent("NPCNAME_Phasefour", 1000, 0)
end
--Phase 5--
function NPCNAME_SpellpUnitShear,Event)
pUnit:CastSpellOnTarget(41032,pUnit:GetRandomPlayer(0))
pUnit:CastSpellOnTarget(41032,pUnit:GetRandomPlayer(0))
end
function NPCNAME_SpellFlameCrash(pUnit,Event)
pUnit:CastSpellOnTarget(40832,pUnit:GetRandomPlayer(0))
pUnit:CastSpellOnTarget(40832,pUnit:GetRandomPlayer(0))
end
function NPCNAME_SpellR(pUnit,Event)
Choice=math.random(1, 2, 3, 4, 5, 6, 7)
if Choice==1 then
pUnit:CastSpellOnTarget(41117,pUnit:GetMainTank(0))
end
if Choice==2 then
pUnit:CastSpellOnTarget(40904,pUnit:GetMainTank(0))
end
if Choice==3 then
pUnit:CastSpellOnTarget(41032,pUnit:GetMainTank(0))
end
if Choice==4 then
pUnit:CastSpellOnTarget(40832,pUnit:GetMainTank(0))
end
if Choice==5 then
pUnit:CastSpellOnTarget(40932,pUnit:GetRandomPlayer(0))
end
if Choice==6 then
pUnit:CastSpellOnTarget(40647,pUnit:GetRandomPlayer(0))
end
if Choice==7 then
pUnit:CastSpellOnTarget(40683,pUnit:GetRandomPlayer(0))
if nit:GetHealthPct() <= o then
Unit:RegisterEvent("NPCNAME_death", 1000, 0)
not Unit:RegisterEvent("NPCNAME_Phasefive", 1000, 0
end
-- Extra --
function NPCNAME_Death(pUnit)
pUnit:SetScale(2)
pUnit:PlaySoundToSet(22917)
pUnit:RemoveEvents()
function NPCNAME_OnLeaveCombat(pUnit, event)
pUnit:RemoveEvents()
pUnit:SetModel(22917)
pUnit:SetScale(2)
end
function NPCNAME_OnKilledTarget(pUnit)
pUnit:PlaySoundToSet(22917)
end
-- Start functions --
RegisterUnitEvent(NPCID, 1, "NPCNAME_OnEnterCombat")
RegisterUnitEvent(NPCID, 2, "NPCNAME_OnLeaveCombat")
RegisterUnitEvent(NPCID, 3, "NPCNAME_OnKilledTarget")
RegisterUnitEvent(NPCID, 4, "NPCNAME_Death")
--Harmonixer_boss_scripter (MMOwned), [email protected], --
--thanks to Nymphx (MMOwned) fir getting me into this--
--also my first script--