Code:
local NAME = "Elite Boss"
local NPCID = 500026
function Elite_OnCombat(pUnit, event, player)
Elite=pUnit
pUnit:SendChatMessage(14, 0, "Feel the earth's wrath!")
pUnit:RegisterEvent("Elite_Phase1", 1000, 0) --checks every sec
end
function Elite_OnLeaveCombat(pUnit, event, player)
pUnit:RemoveEvents()
pUnit:SendChatMessage(14, 0, "Puny mortal, you are no match for the makers!")
end
function Elite_OnDeath(pUnit, event, player)
pUnit:RemoveEvents()
end
function Elite_Phase1(pUnit, event, player)
local hp = pUnit:GetHealth()
if (hp <= 725000) then
Elite:RemoveEvents()
Elite:SendChatMessage(14, 0, "I see that you must really want to die!")
Elite:CastSpell (30926)
Elite:RegisterEvent("Elite_Phase2", 1000, 0)
end
end
function Elite_Phase2(pUnit, event, player) -- Here is the seond phase
local hp = pUnit:GetHealth()
if (hp <= 666666) then
Elite:RemoveEvents()
Elite:SendChatMessage(14, 0, "Prepare for pain!")
Elite:CastSpell (53791)
Elite:CastSpell (41107)
Elite:CastSpell (19636)
end
end
RegisterUnitEvent(500026, 1, "Elite_OnCombat")
RegisterUnitEvent(500026, 2, "Elite_OnLeaveCombat")
RegisterUnitEvent(500026, 3, "Elite_OnDeath")
try that. 
by the way, instead of
Code:
local hp = pUnit:GetHealth()
if (hp <= 725000) then
you can use
Code:
if pUnit:GetHealthPct() <= 50 then
for example, if the event should trigger at 50%.