PDA

View Full Version : Gioran the Corrupted Paladin



k1ng01
25-03-10, 04:05 PM
Ok, so here's my second attempt in making a LUA "Boss script" i know it's not the best but i thought i'd share it since it was a fun fight! :D

Well before he hits phase 1 he starts off casting bolts,curses and a few stuns here and there nothing to serious just a simple fight in the beginning

Phase 1 - He'll cast "HOLY BLAST and that'll knock everyone close range of him and possibly medium range as well. after that he'll throw down consecration every few seconds and it'll do quite a bit of damage so watch out for that (you can move the boss out of that "but he'll end up casting it again very soon) after he finishes with those he'll end up casting more HOLY spells "divine storm, crusader strike and holy bolt" along with holy blast every 20 seconds along with a stun every 30 seconds (this are instant cast spells)


Phase 2 - He goes into a unholy phase and cast UNHOLY spells most spells are casted on random targets (some spells do damage to nearby allies also) he lays down a strong "death and decay" later on he'll eventually use the spell "army of the dead" every 25 seconds and after all that its just a few unholy spells on random players :D


Phase - Not much to really say here besides its half unholy and half holy spells (may sound lame but it works pretty cool) :)

AND NOW!

Phase 4 - It's all phase 1 and 2 spells on this part except they dish out a little faster along with a few newer spells so more damage will be done on EVERY player 2 AOE's will be droped more curses/dots will be casted along with more bolts casted at random players :D

Well here ya go i hope you like it :p
it's not the best (and i know it's newbish haha) but it's fun and works fine :D so enjoy.

LUA -
function Gioran_OnCombat(Unit, Event)
Unit:SendChatMessage(14, 0, "So you mortals have chosen your own fate? let us see about that!")
Unit:RegisterEvent("Gioran_stun", 40000, 1)
Unit:RegisterEvent("Gioran_holybolt", 5000, 0)
Unit:RegisterEvent("Gioran_bolt2", 10000, 0)
Unit:RegisterEvent("Gioran_curse", 5500, 1)
Unit:RegisterEvent("Gioran_bolt3", 14000, 1)
Unit:RegisterEvent("Gioran_bolt4", 15000, 1)
Unit:RegisterEvent("Gioran_Phase1", 1000, 0)
Unit:RegisterEvent("Gioran_Summon", 60000, 2)
Unit:RegisterEvent("Gioran_Summon2", 60000, 2)
end

function Gioran_Summon2(Unit, Event)
Unit:SpawnCreature (75001, 2495.88, -4282.51, 74.1301, 2.14728, 14, 60000);
end



function Gioran_Summon(Unit, Event)
local x = Unit:GetX();
local y = Unit:GetY();
local z = Unit:GetZ();
local o = Unit:GetO();
Unit:SpawnCreature (75001, x, y, z, o, 14 ,60000);
end



function Gioran_aoe(Unit, Event)
Unit:FullCastSpellOnTarget(60953, Unit:GetMainTank())
end

function Gioran_bolt2(Unit, Event)
Unit:FullCastSpellOnTarget(70281, Unit:GetRandomPlayer(0))
end

function Gioran_bolt3(Unit, Event)
Unit:FullCastSpellOnTarget(38441, Unit:GetRandomPlayer(0))
end

function Gioran_bolt4(Unit, Event)
Unit:FullCastSpellOnTarget(72489, Unit:GetRandomPlayer(0))
end

function Gioran_holybolt(Unit, Event)
Unit:FullCastSpellOnTarget(57465, Unit:GetRandomPlayer(0))
end

function Gioran_curse(Unit, Event)
Unit:FullCastSpellOnTarget(68138, Unit:GetRandomPlayer(0))
end

function Gioran_bolt(Unit, Event)
Unit:FullCastSpellOnTarget(73784, Unit:GetRandomPlayer(0))
end

function Gioran_stun(Unit, Event)
Unit:FullCastSpellOnTarget(29511, Unit:GetRandomPlayer(0))
end


function Gioran_curse2(Unit, Event)
Unit:FullCastSpellOnTarget(72865, Unit:GetRandomPlayer(0))
end

function Gioran_boom(Unit, Event)
Unit:FullCastSpellOnTarget(59700, Unit:GetMainTank())
end

function Gioran_shock(Unit, Event)
Unit:FullCastSpellOnTarget(59726, Unit:GetMainTank())
end


function Gioran_divine(Unit, Event)
Unit:FullCastSpellOnTarget(53385, Unit:GetClosestPlayer())
end



function Gioran_Phase1(Unit, event)
if Unit:GetHealthPct() <90 then
Unit:RemoveEvents()
Unit:RemoveEvents()
Unit:SendChatMessage(14, 0, "The fight has just begun.")
Unit:FullCastSpellOnTarget(59726, Unit:GetClosestPlayer())
Unit:RegisterEvent("Gioran_shock", 550000, 1)
Unit:RegisterEvent("Gioran_boom", 15000, 1)
Unit:RegisterEvent("Gioran_stun", 30000, 1)
Unit:RegisterEvent("Gioran_bolt", 5000, 0)
Unit:RegisterEvent("Gioran_bolt", 10000, 1)
Unit:RegisterEvent("Gioran_bolt2", 5000, 0)
Unit:RegisterEvent("Gioran_curse", 5500, 1)
Unit:RegisterEvent("Gioran_bolt3", 9000, 1)
Unit:RegisterEvent("Gioran_bolt4", 12000, 1)
Unit:CastSpell(43429)
Unit:CastSpell(59726)
Unit:RegisterEvent("Gioran_Phase2", 1000, 0)
else
end
end



function Gioran_Phase2(Unit, event)
if Unit:GetHealthPct() <75 then
Unit:RemoveEvents()
Unit:RemoveEvents()
Unit:SendChatMessage(14, 0, "The world will fall upon you mortals!")
Unit:FullCastSpellOnTarget(59726, Unit:GetRandomPlayer(0))
Unit:FullCastSpellOnTarget(57369, Unit:GetRandomPlayer(0))
Unit:FullCastSpellOnTarget(29563, Unit:GetRandomPlayer(0))
Unit:FullCastSpellOnTarget(70437, Unit:GetMainTank())
Unit:FullCastSpellOnTarget(53639, Unit:GetMainTank())
Unit:RegisterEvent("Gioran_stun", 40000, 1)
Unit:RegisterEvent("Gioran_bolt2", 3500, 0)
Unit:RegisterEvent("Gioran_curse", 5500, 1)
Unit:RegisterEvent("Gioran_bolt3", 9000, 1)
Unit:RegisterEvent("Gioran_bolt4", 12000, 1)
Unit:CastSpell(59726)
Unit:CastSpell(55974)
Unit:CastSpell(24437)
Unit:RegisterEvent("Gioran_Phase3", 1000, 0)
else
end
end

function Gioran_Phase3(Unit, event)
if Unit:GetHealthPct() <50 then
Unit:RemoveEvents()
Unit:RemoveEvents()
Unit:SendChatMessage(14, 0, "This is not your fate mortals. turn back now!")
Unit:FullCastSpellOnTarget(59726, Unit:GetClosestPlayer())
Unit:RegisterEvent("Gioran_shock", 550000, 1)
Unit:RegisterEvent("Gioran_boom", 20000, 1)
Unit:RegisterEvent("Gioran_stun", 30000, 1)
Unit:RegisterEvent("Gioran_bolt", 2000, 1)
Unit:RegisterEvent("Gioran_curse", 20000, 2)
Unit:CastSpell(55974)
Unit:CastSpell(24437)
Unit:CastSpell(43429)
Unit:CastSpell(53385)
Unit:CastSpell(59726)
Unit:RegisterEvent("Gioran_stun", 40000, 1)
Unit:RegisterEvent("Gioran_bolt2", 9000, 0)
Unit:RegisterEvent("Gioran_curse", 5500, 1)
Unit:RegisterEvent("Gioran_bolt3", 12000, 1)
Unit:RegisterEvent("Gioran_bolt4", 15000, 1)
Unit:RegisterEvent("Gioran_Phase4", 1000, 0)
else
end
end



function Gioran_Phase4(Unit, event)
if Unit:GetHealthPct() <25 then
Unit:RemoveEvents()
Unit:SendChatMessage(14, 0, "This ends now. it is time for my power to fully unleash!")
Unit:FullCastSpellOnTarget(59726, Unit:GetRandomPlayer(0))
Unit:FullCastSpellOnTarget(57369, Unit:GetRandomPlayer(0))
Unit:FullCastSpellOnTarget(29563, Unit:GetRandomPlayer(0))
Unit:FullCastSpellOnTarget(70437, Unit:GetMainTank())
Unit:FullCastSpellOnTarget(53639, Unit:GetMainTank())
Unit:RegisterEvent("Gioran_aoe", 5000, 1)
Unit:RegisterEvent("Gioran_curse", 10000, 2)
Unit:CastSpell(55974)
Unit:CastSpell(24437)
Unit:RegisterEvent("Gioran_stun", 40000, 1)
Unit:RegisterEvent("Gioran_holybolt", 5000, 0)
Unit:RegisterEvent("Gioran_bolt2", 9000, 0)
Unit:RegisterEvent("Gioran_curse", 5500, 1)
Unit:RegisterEvent("Gioran_bolt3", 12000, 1)
Unit:RegisterEvent("Gioran_bolt4", 15000, 1)
Unit:CastSpell(53385)
Unit:CastSpell(59726)
else
end
end


function Gioran_OnLeaveCombat(Unit, Event)
Unit:RemoveEvents()
end

function Gioran_OnKilledTarget(Unit, Event)
Unit:SendChatMessage(14, 0, "You have failed foolish one")
end

function Gioran_OnDied(Unit, Event)
Unit:SendChatMessage(14, 0, "Wait... this cannot be, it's not suppose to end this way! well... i guess you champions are worthy enough for this world, may you find what you seek in this life.")
Unit:RemoveEvents()
end


RegisterUnitEvent(75000, 1, "Gioran_OnCombat")
RegisterUnitEvent(75000, 2, "Gioran_OnLeaveCombat")
RegisterUnitEvent(75000, 3, "Gioran_OnKilledTarget")
RegisterUnitEvent(75000, 4, "Gioran_OnDied")

Servant LUA -
function servant_OnCombat(Unit, Event)
Unit:SendChatMessage(14, 0, "For master...!")
Unit:RegisterEvent("servant_aura", 5000, 0)
Unit:RegisterEvent("servant_slash1", 10000, 0)
Unit:RegisterEvent("servant_slash2", 5000, 0)
end

function servant_aura(Unit, Event)
Unit:FullCastSpellOnTarget(72523, Unit:GetRandomPlayer(0))
end

function servant_slash1(Unit, Event)
Unit:FullCastSpellOnTarget(42395, Unit:GetRandomPlayer(0))
end

function servant_slash2(Unit, Event)
Unit:FullCastSpellOnTarget(55249, Unit:GetRandomPlayer(0))
end


function servant_OnLeaveCombat(Unit, Event)
Unit:RemoveEvents()
end

function servant_OnKilledTarget(Unit, Event)
end

function servant_OnDied(Unit, Event)
Unit:RemoveEvents()
end


RegisterUnitEvent(75001, 1, "servant_OnCombat")
RegisterUnitEvent(75001, 2, "servant_OnLeaveCombat")
RegisterUnitEvent(75001, 3, "servant_OnKilledTarget")
RegisterUnitEvent(75001, 4, "servant_OnDied")

SQL here - SQL HERE! :D (http://pastebin.com/MWD580ev)

Apple
25-03-10, 09:02 PM
nice work :)

k1ng01
26-03-10, 02:18 AM
nice work :)
Thank you :D

shadowslayer133
26-03-10, 03:47 AM
If you plan on releasing another I'd recommend you try having your boss summon other creatures. If you really want to explore, in the same script put a couple lua scripts for the spawns as well.
If the spawned creature is set as a variable you can also make it complete actions if its not in the function. (Make the creature and its spawn cast a spell onto the player maybe?)


Below is a code for registering a creature on spawn.


local NPC_SPAWNED = nil -- Put at top of script

function Npc_Spawn(pUnit, Event)
NPC_SPAWNED = pUnit -- You could set the spawned creature as a variable and then have other events with the spawned unit
end

RegisterUnitEvent(Entry ID, 18, "Npc_Spawn")

k1ng01
26-03-10, 11:46 AM
If you plan on releasing another I'd recommend you try having your boss summon other creatures. If you really want to explore, in the same script put a couple lua scripts for the spawns as well.
If the spawned creature is set as a variable you can also make it complete actions if its not in the function. (Make the creature and its spawn cast a spell onto the player maybe?)

Yeah i know... :P thanks for the heads up shadowslayer i changed it a big so he summons some ghouls to aid him :)

shadowslayer133
26-03-10, 07:01 PM
sounds cool