PDA

View Full Version : [Lua] Vekjik Boss (hard)


HelloMyNameIs
04-29-2009, 06:37 PM
Alright so this would be my first lua script so it probably wont be perfect. Feedback would be nice.:D I haven't got a chance to test him so tell me if he has any problems

One problems is I cant figure out how to get his spawns to cast chain heal on him.

This is his and his totem's sql.

INSERT INTO `creature_names` (`name`, `subname`, `info_str`, `type`, `family`, `rank`, `male_displayid`, `female_displayid`, `male_displayid2`, `female_displayid2`, `civilian`, `leader`, `entry`) VALUES ('Healing Totem', '', '', '0', '0', '1', '4588', '0', '0', '0', '0', NULL, '87010');
INSERT INTO `creature_proto` (`minlevel`, `maxlevel`, `faction`, `minhealth`, `maxhealth`, `mana`, `scale`, `npcflags`, `attacktime`, `attacktype`, `mindamage`, `maxdamage`, `rangedattacktime`, `rangedmindamage`, `rangedmaxdamage`, `respawntime`, `armor`, `resistance1`, `resistance2`, `resistance3`, `resistance4`, `resistance5`, `resistance6`, `combat_reach`, `bounding_radius`, `auras`, `boss`, `money`, `invisibility_type`, `death_state`, `walk_speed`, `run_speed`, `fly_speed`, `entry`) VALUES ('83', '83', '168', '50000', '50000', '50000', '1', '0', '1500', '-1', '0', '0', '0', '0', '0', '36000', '5000', '0', '0', '0', '0', '0', '0', '0', '1', '0', '0', '0', '0', '0', '0', '0', '0', '87010');
INSERT INTO `creature_names` (`name`, `subname`, `info_str`, `type`, `family`, `rank`, `male_displayid`, `female_displayid`, `male_displayid2`, `female_displayid2`, `civilian`, `leader`, `entry`) VALUES ('Vekjik', '', '', '7', '0', '3', '25381', '0', '0', '0', '0', NULL, '87011');
INSERT INTO `creature_proto` (`minlevel`, `maxlevel`, `faction`, `minhealth`, `maxhealth`, `mana`, `scale`, `npcflags`, `attacktime`, `attacktype`, `mindamage`, `maxdamage`, `rangedattacktime`, `rangedmindamage`, `rangedmaxdamage`, `respawntime`, `armor`, `resistance1`, `resistance2`, `resistance3`, `resistance4`, `resistance5`, `resistance6`, `combat_reach`, `bounding_radius`, `auras`, `boss`, `money`, `invisibility_type`, `death_state`, `walk_speed`, `run_speed`, `fly_speed`, `entry`) VALUES ('83', '83', '168', '8500000', '10000000', '21000000', '3', '0', '1600', '0', '15500', '20129', '68', '477', '0', '360000', '10000', '20', '20', '20', '20', '20', '20', '1', '3', '0', '1', '0', '0', '0', '2.5', '8', '14', '87011');

Vekjik's Lua

function Vekjik_OnCombat(pUnit, Event)
pUnit:SendChatMessage(14, 0, "You dare challenge me?")
pUnit:RegisterEvent("Vekjik_ArcLightning", 2000, 0)
pUnit:RegisterEvent("Phase2", 1000, 0)
end

function Phase2(pUnit, Event)
if pUnit:GetHealthPct() < 90 then
pUnit:RemoveEvents();
pUnit:RegisterEvent("Vekjik_ArcLightning", 2000, 0)
pUnit:RegisterEvent("Vekjik_EnvelopingWinds", 60000, 0)
pUnit:RegisterEvent("Vekjik_RainofFire", 30000, 0)
pUnit:RegisterEvent("Phase3", 1000, 0)
end
end

function Phase3(pUnit, Event)
if pUnit:GetHealthPct() < 75 then
pUnit:RemoveEvents();
pUnit:RegisterEvent("Vekjik_Domination", 120000, 0)
pUnit:RegisterEvent("Vekjik_Thunder", 25000, 0)
pUnit:RegisterEvent("Vekjik_Moonfire", 2000, 0)
pUnit:RegisterEvent("Vekjik_ArcLightning", 2000, 0)
pUnit:SendChatMessage(14, 0, "Your fate is sealed!")
pUnit:RegisterEvent("Phase4", 1000, 0)
end
end

function Phase4(pUnit, Event)
if pUnit:GetHealthPct() < 50 then
pUnit:RemoveEvents();
pUnit:RegisterEvent("Vekjik_ArcLightning", 2000, 0)
pUnit:RegisterEvent("Vekjik_EnvelopingWinds", 60000, 0)
pUnit:RegisterEvent("Vekjik_RainofFire", 30000, 0)
pUnit:RegisterEvent("Vekjik_EarthShock", 45000, 0)
pUnit:RegisterEvent("Vekjik_WaterBlast", 90000, 0)
pUnit:SendChatMessage(14, 0, "You will not kill me!")
pUnit:RegisterEvent("Phase5", 1000, 0)
end
end

function Phase5(pUnit, Event)
if pUnit:GetHealthPct() < 21 then
pUnit:RemoveEvents();
pUnit:RegisterEvent("Vekjik_Domination", 120000, 0)
pUnit:RegisterEvent("Vekjik_WindFury", 15000, 0)
pUnit:RegisterEvent("Vekjik_EarthShock", 45000, 0)
pUnit:RegisterEvent("Vekjik_RockShield", 2000, 0)
pUnit:RegisterEvent("Vekjik_Thunder", 25000, 0)
pUnit:RegisterEvent("Vekjik_WaterBolt", 30000, 0)
pUnit:RegisterEvent("Vekjik_Totems", 60000, 0)
end
end

RegisterUnitEvent(87011, 1, "Vekjik_OnCombat")
RegisterUnitEvent(87011, 2, "Vekjik_OnLeaveCombat")
RegisterUnitEvent(87011, 3, "Vekjik_OnKilledTarget")
RegisterUnitEvent(87011, 4, "Vekjik_OnDied")

function Vekjik_ArcLightning(Unit, event, miscunit, misc)
Unit:FullCastSpellOnTarget(52921,Unit:GetRandomPla yer(0))
end

function Vekjik_Domination(Unit, event, miscunit, misc)
Unit:FullCastSpellOnTarget(36866,Unit:GetRandomPla yer(0))
end

function Vekjik_EarthShock(Unit, event, miscunit, misc)
Unit:FullCastSpellOnTarget(43305,Unit:GetRandomPla yer(0))
end

function Vekjik_EnvelopingWinds(Unit, event, miscunit, misc)
Unit:FullCastSpellOnTarget(25189,Unit:GetRandomPla yer(4))
end

function Vekjik_Moonfire(Unit, event, miscunit, misc)
Unit:FullCastSpellOnTarget(47072,Unit:GetRandomPla yer(0))
end

function Vekjik_RainofFire(Unit, event, miscunit, misc)
Unit:FullCastSpellOnTarget(34435,Unit:GetRandomPla yer(0))
end

function Vekjik_RockShield(Unit, event, miscunit, misc)
Unit:FullCastSpellOnTarget(50363,Unit:GetRandomPla yer(0))
end

function Vekjik_Thunder(Unit, event, miscunit, misc)
Unit:CastSpell(53630)
end

function Vekjik_WaterBlast(Unit, event, miscunit, misc)
Unit:FullCastSpellOnTarget(59520,Unit:GetRandomPla yer(0))
end

function Vekjik_WaterBolt(Unit, event, miscunit, misc)
Unit:FullCastSpellOnTarget(37138,Unit:GetRandomPla yer(0))
end

function Vekjik_WindFury(Unit, event, miscunit, misc)
Unit:CastSpell(38229)
end

function Vekjik_Totems(pUnit, Event)
x = pUnit:GetX()
y = pUnit:GetY()
z = pUnit:GetZ()
o = pUnit:GetO()
pUnit:SpawnCreature(87010, x+5, y, z, o, 14, 60000)
pUnit:SpawnCreature(87010, x+10, y, z, o, 14, 60000)
pUnit:SpawnCreature(87010, x-5, y, z, o, 14, 60000)
pUnit:SpawnCreature(87010, x-10, y, z, o, 14, 60000)

function Vekjik_OnDied(pUnit, Event)
pUnit:RemoveEvents();
pUnit:SendChatMessage(14, 0, "Tonight the blood runs from my veins and I join the Gods.")
end


function Vekjik_OnKilledTarget(pUnit, Event)
pUnit:CastSpell(55948)
pUnit:SendChatMessage(14, 0, "Your friend has fallen. His spirit is mine!")
end

His totem's lua (only up in hopes someone can fix it)

function Totems_OnCombat(Unit, Event)
Unit:RegisterEvent("Totems_ChainHeal", 1000, 0)
end

function Totems_ChainHeal(pUnit, Event)
pUnit:FullCastSpellOnTarget(54481, pUnit:GetName(Vekjik))
end

function Totems_OnLeaveCombat(Unit, Event)
Unit:RemoveEvents();
end

function Totems_OnDied(Unit, Event)
Unit:RemoveEvents();
end

RegisterUnitEvent(87010, 1, "Totems_OnCombat")
RegisterUnitEvent(87010, 2, "Totems_OnLeaveCombat")
RegisterUnitEvent(87010, 4, "Totems_OnDied")

Vekjik's Picture (Dont he look pretty)

http://i634.photobucket.com/albums/uu64/Hellomynameislimegreen/WoWScrnShot_042809_172002-1.jpg

marrw
05-04-2009, 07:05 PM
Very Nice Going to use this for my serv thx alot mate! +rep when i can

Coreyduffel
05-04-2009, 07:20 PM
Haha sweet! i like it =]

+rep

Drikish
05-04-2009, 09:00 PM
Cool script ;)
What exactly is wrong with the Totem script? It looks fine to me..

HelloMyNameIs
05-04-2009, 09:18 PM
I tested it and the totems wouldn't chain heal Vek

Alvanaar
05-05-2009, 08:47 AM
Chain heal doesn't require a target. Just pUnit:FullCastSpell(54481)

Also, if it did require a target, then perhaps you need to specify the target differently. :)

Good work +rep for your first Lua script which looks pretty good.