mirror of
https://github.com/araxiaonline/RandomScriptsforAzerothCore.git
synced 2026-06-13 02:22:19 -04:00
Add files via upload
This commit is contained in:
@@ -33,4 +33,3 @@ RegisterCreatureEvent(400051, 4, BlightedZombie.OnDeath)
|
|||||||
RegisterCreatureEvent(400051, 5, BlightedZombie.OnSpawn)
|
RegisterCreatureEvent(400051, 5, BlightedZombie.OnSpawn)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
29
BlightedZombie2.lua
Normal file
29
BlightedZombie2.lua
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
local BlightedZombie = {}
|
||||||
|
|
||||||
|
function BlightedZombie.OnCombat(event, creature, target)
|
||||||
|
creature:RegisterEvent(BlightedZombie.Ability1, 7000, 0)
|
||||||
|
creature:RegisterEvent(BlightedZombie.Ability2, 12000, 0)
|
||||||
|
end
|
||||||
|
|
||||||
|
function BlightedZombie.Ability1(event, delay, calls, creature)
|
||||||
|
creature:CastSpell(creature:GetVictim(), 52476, true)
|
||||||
|
end
|
||||||
|
|
||||||
|
function BlightedZombie.Ability2(event, delay, calls, creature)
|
||||||
|
creature:CastSpell(creature:GetVictim(), 37597, true)
|
||||||
|
end
|
||||||
|
|
||||||
|
function BlightedZombie.OnLeaveCombat(event, creature)
|
||||||
|
creature:RemoveEvents()
|
||||||
|
end
|
||||||
|
|
||||||
|
function BlightedZombie.OnDeath(event, creature, killer)
|
||||||
|
creature:RemoveEvents()
|
||||||
|
end
|
||||||
|
|
||||||
|
RegisterCreatureEvent(4475, 1, BlightedZombie.OnCombat)
|
||||||
|
RegisterCreatureEvent(4475, 2, BlightedZombie.OnLeaveCombat)
|
||||||
|
RegisterCreatureEvent(4475, 4, BlightedZombie.OnDeath)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
37
FleshFlayer.lua
Normal file
37
FleshFlayer.lua
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
local FleshFlayer = {};
|
||||||
|
|
||||||
|
local function CastLeap(eventId, delay, calls, creature)
|
||||||
|
creature:CastSpell(creature:GetVictim(), 47482, true)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function CastPlague(eventId, delay, calls, creature)
|
||||||
|
creature:CastSpell(creature:GetVictim(), 52230, true)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function CastExplode(eventId, delay, calls, creature)
|
||||||
|
creature:CastSpell(creature, 47496, true)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function CastRend(eventId, delay, calls, creature)
|
||||||
|
creature:CastSpell(creature:GetVictim(), 18106, true)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function OnEnterCombat(event, creature, target)
|
||||||
|
creature:RegisterEvent(CastLeap, 100, 1)
|
||||||
|
creature:RegisterEvent(CastPlague, 500, 1)
|
||||||
|
creature:RegisterEvent(CastRend, 2000, 1)
|
||||||
|
creature:RegisterEvent(CastPlague, 20000, 0)
|
||||||
|
creature:RegisterEvent(CastExplode, 30000, 0)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function OnLeaveCombat(event, creature)
|
||||||
|
creature:RemoveEvents()
|
||||||
|
end
|
||||||
|
|
||||||
|
local function OnDied(event, creature, killer)
|
||||||
|
creature:RemoveEvents()
|
||||||
|
end
|
||||||
|
|
||||||
|
RegisterCreatureEvent(10407, 1, OnEnterCombat)
|
||||||
|
RegisterCreatureEvent(10407, 2, OnLeaveCombat)
|
||||||
|
RegisterCreatureEvent(10407, 4, OnDied)
|
||||||
27
GibberingGhoul.lua
Normal file
27
GibberingGhoul.lua
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
local GibberingGhoul = {}
|
||||||
|
|
||||||
|
function GibberingGhoul.OnCombat(event, creature, target)
|
||||||
|
creature:RegisterEvent(GibberingGhoul.Ability2, 100, 1)
|
||||||
|
creature:RegisterEvent(GibberingGhoul.Ability1, 7000, 0)
|
||||||
|
creature:RegisterEvent(GibberingGhoul.Ability2, 12000, 0)
|
||||||
|
end
|
||||||
|
|
||||||
|
function GibberingGhoul.Ability1(event, delay, calls, creature)
|
||||||
|
creature:CastSpell(creature:GetVictim(), 34113, true)
|
||||||
|
end
|
||||||
|
|
||||||
|
function GibberingGhoul.Ability2(event, delay, calls, creature)
|
||||||
|
creature:CastSpell(creature:GetVictim(), 12889, true)
|
||||||
|
end
|
||||||
|
|
||||||
|
function GibberingGhoul.OnLeaveCombat(event, creature)
|
||||||
|
creature:RemoveEvents()
|
||||||
|
end
|
||||||
|
|
||||||
|
function GibberingGhoul.OnDeath(event, creature, killer)
|
||||||
|
creature:RemoveEvents()
|
||||||
|
end
|
||||||
|
|
||||||
|
RegisterCreatureEvent(8531, 1, GibberingGhoul.OnCombat)
|
||||||
|
RegisterCreatureEvent(8531, 2, GibberingGhoul.OnLeaveCombat)
|
||||||
|
RegisterCreatureEvent(8531, 4, GibberingGhoul.OnDeath)
|
||||||
35
HateShrieker.lua
Normal file
35
HateShrieker.lua
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
local HateShrieker = {}
|
||||||
|
|
||||||
|
function HateShrieker.OnEnterCombat(event, creature, target)
|
||||||
|
creature:RegisterEvent(HateShrieker.Screech, 7000, 0)
|
||||||
|
creature:RegisterEvent(HateShrieker.ShadowWordPain, math.random(11000,16000), 0)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
function HateShrieker.Screech(eventId, delay, calls, creature)
|
||||||
|
creature:CastSpell(creature, 3589)
|
||||||
|
end
|
||||||
|
|
||||||
|
function HateShrieker.OnLeaveCombat(event, creature)
|
||||||
|
creature:RemoveEvents()
|
||||||
|
end
|
||||||
|
|
||||||
|
function HateShrieker.OnDied(event, creature, killer)
|
||||||
|
creature:RemoveEvents()
|
||||||
|
end
|
||||||
|
|
||||||
|
function HateShrieker.ShadowWordPain(eventId, delay, calls, creature)
|
||||||
|
local targets = creature:GetAITargets(10)
|
||||||
|
if #targets == 0 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local target = targets[math.random(#targets)]
|
||||||
|
creature:CastSpell(target, 10893)
|
||||||
|
creature:ClearThreatList()
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
RegisterCreatureEvent(8541, 1, HateShrieker.OnEnterCombat)
|
||||||
|
RegisterCreatureEvent(8541, 2, HateShrieker.OnLeaveCombat)
|
||||||
|
RegisterCreatureEvent(8541, 4, HateShrieker.OnDied)
|
||||||
36
Necrofiend2.lua
Normal file
36
Necrofiend2.lua
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
local Necrofiend = {}
|
||||||
|
|
||||||
|
function Necrofiend.OnEnterCombat(event, creature, target)
|
||||||
|
creature:RegisterEvent(Necrofiend.WebSpray, 12000, 0, creature)
|
||||||
|
creature:RegisterEvent(Necrofiend.CastBanefulPoison, 7000, 0, creature)
|
||||||
|
creature:RegisterEvent(Necrofiend.DeadlyPoison, 10000, 0, creature)
|
||||||
|
end
|
||||||
|
|
||||||
|
function Necrofiend.WebSpray(event, delay, calls, creature)
|
||||||
|
creature:CastSpell(creature:GetVictim(), 55508, true)
|
||||||
|
end
|
||||||
|
|
||||||
|
function Necrofiend.DeadlyPoison(event, delay, calls, creature)
|
||||||
|
creature:CastSpell(creature:GetVictim(), 34616, true)
|
||||||
|
end
|
||||||
|
|
||||||
|
function Necrofiend.CastBanefulPoison(event, delay, calls, creature)
|
||||||
|
local targets = creature:GetAITargets(10)
|
||||||
|
if #targets == 0 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local target = targets[math.random(#targets)]
|
||||||
|
creature:CastSpell(target, 15475, true)
|
||||||
|
end
|
||||||
|
|
||||||
|
function Necrofiend.OnLeaveCombat(event, creature)
|
||||||
|
creature:RemoveEvents()
|
||||||
|
end
|
||||||
|
|
||||||
|
function Necrofiend.OnDied(event, creature, killer)
|
||||||
|
creature:RemoveEvents()
|
||||||
|
end
|
||||||
|
|
||||||
|
RegisterCreatureEvent(11551, 1, Necrofiend.OnEnterCombat)
|
||||||
|
RegisterCreatureEvent(11551, 2, Necrofiend.OnLeaveCombat)
|
||||||
|
RegisterCreatureEvent(11551, 4, Necrofiend.OnDied)
|
||||||
27
OrgDefQuest.lua
Normal file
27
OrgDefQuest.lua
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
local ORG_ID = {3296, 400039, 400040, 400041, 400045, 400059, 400060, 400061, 400070, 400071}
|
||||||
|
local SPELL_ID = 100193
|
||||||
|
|
||||||
|
function OnSpellCast(event, caster, spell)
|
||||||
|
local target = spell:GetTarget()
|
||||||
|
if target and spell:GetEntry() == SPELL_ID then
|
||||||
|
local isValidTarget = false
|
||||||
|
for _, orgID in ipairs(ORG_ID) do
|
||||||
|
if target:GetEntry() == orgID then
|
||||||
|
isValidTarget = true
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if not isValidTarget then
|
||||||
|
caster:SendBroadcastMessage("That target is not valid.")
|
||||||
|
spell:Cancel()
|
||||||
|
elseif target:HasAura(SPELL_ID) then
|
||||||
|
caster:SendBroadcastMessage("You've already used the Shadow-Drenched Cloth on that defender!")
|
||||||
|
spell:Cancel()
|
||||||
|
else
|
||||||
|
-- give kill credit to NPC ID 3296
|
||||||
|
caster:KilledMonsterCredit(3296)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
RegisterPlayerEvent(5, OnSpellCast)
|
||||||
@@ -27,7 +27,7 @@ end
|
|||||||
|
|
||||||
local function OnEnterCombat(event, creature, target)
|
local function OnEnterCombat(event, creature, target)
|
||||||
creature:RegisterEvent(AcidSpit, 7000, 0)
|
creature:RegisterEvent(AcidSpit, 7000, 0)
|
||||||
creature:RegisterEvent(CastBludgeoningStrike, 14000, 0)
|
creature:RegisterEvent(CastBludgeoningStrike, 13000, 0)
|
||||||
creature:RegisterEvent(CastSpecialSpell, 1000, 0)
|
creature:RegisterEvent(CastSpecialSpell, 1000, 0)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
38
PatchworkHorror2.lua
Normal file
38
PatchworkHorror2.lua
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
local PatchWorkHorror2 = {};
|
||||||
|
|
||||||
|
local function AcidSpit(eventId, delay, calls, creature)
|
||||||
|
creature:CastSpell(creature:GetVictim(), 61597, true)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function KnockAway(eventId, delay, calls, creature)
|
||||||
|
creature:CastSpell(creature:GetVictim(), 10101, true)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
function CastBludgeoningStrike(eventId, delay, calls, creature)
|
||||||
|
local targets = creature:GetAITargets(10)
|
||||||
|
if #targets == 0 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local target = targets[math.random(#targets)]
|
||||||
|
creature:CastSpell(target, 60870, true)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
local function OnEnterCombat(event, creature, target)
|
||||||
|
creature:RegisterEvent(AcidSpit, 7000, 0)
|
||||||
|
creature:RegisterEvent(CastBludgeoningStrike, 13000, 0)
|
||||||
|
creature:RegisterEvent(KnockAway, 16000, 0)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function OnLeaveCombat(event, creature)
|
||||||
|
creature:RemoveEvents()
|
||||||
|
end
|
||||||
|
|
||||||
|
local function OnDied(event, creature, killer)
|
||||||
|
creature:RemoveEvents()
|
||||||
|
end
|
||||||
|
|
||||||
|
RegisterCreatureEvent(10414, 1, OnEnterCombat)
|
||||||
|
RegisterCreatureEvent(10414, 2, OnLeaveCombat)
|
||||||
|
RegisterCreatureEvent(10414, 4, OnDied)
|
||||||
64
Rattlegore.lua
Normal file
64
Rattlegore.lua
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
local Rattlegore = {};
|
||||||
|
|
||||||
|
local function Thunderclap(eventId, delay, calls, creature)
|
||||||
|
creature:CastSpell(creature:GetVictim(), 26554, true)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function WhirlwindKnockback(eventId, delay, calls, creature)
|
||||||
|
creature:CastSpell(creature:GetVictim(), 34109, true)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function Enrage(eventId, delay, calls, creature)
|
||||||
|
creature:CastSpell(creature, 15716, true)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function BoneArmor(eventId, delay, calls, creature)
|
||||||
|
creature:CastSpell(creature, 38882, true)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function Thrash(eventId, delay, calls, creature)
|
||||||
|
creature:CastSpell(creature, 3391, true)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function SweepingStrikes(eventId, delay, calls, creature)
|
||||||
|
creature:CastSpell(creature, 18765, true)
|
||||||
|
end
|
||||||
|
|
||||||
|
function Stun(eventId, delay, calls, creature)
|
||||||
|
local targets = creature:GetAITargets(10)
|
||||||
|
if #targets == 0 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local target = targets[math.random(#targets)]
|
||||||
|
creature:CastSpell(target, 17308, true)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function OnEnterCombat(event, creature, target)
|
||||||
|
creature:RegisterEvent(Thunderclap, 7000, 0)
|
||||||
|
creature:RegisterEvent(WhirlwindKnockback, 11000)
|
||||||
|
creature:RegisterEvent(Stun, 16000, 0)
|
||||||
|
creature:RegisterEvent(Thrash, 8500, 0)
|
||||||
|
creature:RegisterEvent(BoneArmor, 15000, 0)
|
||||||
|
creature:RegisterEvent(BoneArmor, 500, 1)
|
||||||
|
creature:RegisterEvent(SweepingStrikes, 100, 1)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function OnHealthUpdate(event, creature, value)
|
||||||
|
if (creature:GetHealthPct() <= 20) then
|
||||||
|
creature:RemoveEvents()
|
||||||
|
creature:RegisterEvent(Enrage, 100, 1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function OnLeaveCombat(event, creature)
|
||||||
|
creature:RemoveEvents()
|
||||||
|
end
|
||||||
|
|
||||||
|
local function OnDied(event, creature, killer)
|
||||||
|
creature:RemoveEvents()
|
||||||
|
end
|
||||||
|
|
||||||
|
RegisterCreatureEvent(11622, 1, OnEnterCombat)
|
||||||
|
RegisterCreatureEvent(11622, 9, OnHealthUpdate)
|
||||||
|
RegisterCreatureEvent(11622, 2, OnLeaveCombat)
|
||||||
|
RegisterCreatureEvent(11622, 4, OnDied)
|
||||||
53
RisenConstruct.lua
Normal file
53
RisenConstruct.lua
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
local RisenConstruct = {};
|
||||||
|
|
||||||
|
local function ArcingSmash(eventId, delay, calls, creature)
|
||||||
|
creature:CastSpell(creature:GetVictim(), 1619, true)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function Enrage(eventId, delay, calls, creature)
|
||||||
|
creature:CastSpell(creature, 15716, true)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function Thrash(eventId, delay, calls, creature)
|
||||||
|
creature:CastSpell(creature, 3391, true)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function SweepingStrikes(eventId, delay, calls, creature)
|
||||||
|
creature:CastSpell(creature, 18765, true)
|
||||||
|
end
|
||||||
|
|
||||||
|
function Stun(eventId, delay, calls, creature)
|
||||||
|
local targets = creature:GetAITargets(10)
|
||||||
|
if #targets == 0 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local target = targets[math.random(#targets)]
|
||||||
|
creature:CastSpell(target, 17308, true)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function OnEnterCombat(event, creature, target)
|
||||||
|
creature:RegisterEvent(ArcingSmash, 7000, 0)
|
||||||
|
creature:RegisterEvent(Stun, 13000, 0)
|
||||||
|
creature:RegisterEvent(Thrash, 8500, 0)
|
||||||
|
creature:RegisterEvent(SweepingStrikes, 100, 1)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function OnHealthUpdate(event, creature, value)
|
||||||
|
if (creature:GetHealthPct() <= 20) then
|
||||||
|
creature:RemoveEvents()
|
||||||
|
creature:RegisterEvent(Enrage, 100, 1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function OnLeaveCombat(event, creature)
|
||||||
|
creature:RemoveEvents()
|
||||||
|
end
|
||||||
|
|
||||||
|
local function OnDied(event, creature, killer)
|
||||||
|
creature:RemoveEvents()
|
||||||
|
end
|
||||||
|
|
||||||
|
RegisterCreatureEvent(10488, 1, OnEnterCombat)
|
||||||
|
RegisterCreatureEvent(10488, 9, OnHealthUpdate)
|
||||||
|
RegisterCreatureEvent(10488, 2, OnLeaveCombat)
|
||||||
|
RegisterCreatureEvent(10488, 4, OnDied)
|
||||||
33
RisenGuard.lua
Normal file
33
RisenGuard.lua
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
local RisenGuard = {}
|
||||||
|
|
||||||
|
function RisenGuard.OnCombat(event, creature, target)
|
||||||
|
creature:RegisterEvent(RisenGuard.Ability2, 100, 1)
|
||||||
|
creature:RegisterEvent(RisenGuard.Ability1, 7000, 0)
|
||||||
|
creature:RegisterEvent(RisenGuard.Ability2, 12000, 0)
|
||||||
|
creature:RegisterEvent(RisenGuard.Ability3, 10000, 0)
|
||||||
|
end
|
||||||
|
|
||||||
|
function RisenGuard.Ability1(event, delay, calls, creature)
|
||||||
|
creature:CastSpell(creature:GetVictim(), 34113, true)
|
||||||
|
end
|
||||||
|
|
||||||
|
function RisenGuard.Ability2(event, delay, calls, creature)
|
||||||
|
creature:CastSpell(creature:GetVictim(), 8380, true)
|
||||||
|
end
|
||||||
|
|
||||||
|
function RisenGuard.Ability3(event, delay, calls, creature)
|
||||||
|
creature:CastSpell(creature:GetVictim(), 5164, true)
|
||||||
|
end
|
||||||
|
|
||||||
|
function RisenGuard.OnLeaveCombat(event, creature)
|
||||||
|
creature:RemoveEvents()
|
||||||
|
end
|
||||||
|
|
||||||
|
function RisenGuard.OnDeath(event, creature, killer)
|
||||||
|
creature:RemoveEvents()
|
||||||
|
end
|
||||||
|
|
||||||
|
RegisterCreatureEvent(10489, 1, RisenGuard.OnCombat)
|
||||||
|
RegisterCreatureEvent(10489, 2, RisenGuard.OnLeaveCombat)
|
||||||
|
RegisterCreatureEvent(10489, 4, RisenGuard.OnDeath)
|
||||||
|
|
||||||
@@ -1,24 +1,27 @@
|
|||||||
local SWG_IDS = {68, 400013, 400033, 400014, 1976}
|
local SWG_ID = {68, 400013, 400033, 400014, 1976}
|
||||||
local SPELL_ID = 100141
|
local SPELL_ID = 100141
|
||||||
|
|
||||||
function OnSpellCast(event, caster, spell)
|
function OnSpellCast(event, caster, spell)
|
||||||
local target = spell:GetTarget()
|
local target = spell:GetTarget()
|
||||||
if target and spell:GetEntry() == SPELL_ID then
|
if target and spell:GetEntry() == SPELL_ID then
|
||||||
local isValidTarget = false
|
local isValidTarget = false
|
||||||
for _, swgID in ipairs(SWG_IDS) do
|
for _, swgID in ipairs(SWG_ID) do
|
||||||
if target:GetEntry() == swgID then
|
if target:GetEntry() == swgID then
|
||||||
isValidTarget = true
|
isValidTarget = true
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if not isValidTarget then
|
if not isValidTarget then
|
||||||
caster:SendBroadcastMessage("")
|
caster:SendBroadcastMessage("That target is not valid.")
|
||||||
spell:Cancel()
|
spell:Cancel()
|
||||||
else
|
elseif target:HasAura(SPELL_ID) then
|
||||||
-- give kill credit to NPC ID 68
|
caster:SendBroadcastMessage("Target has already been empowered.")
|
||||||
caster:KilledMonsterCredit(68)
|
spell:Cancel()
|
||||||
end
|
else
|
||||||
end
|
-- give kill credit to NPC ID 68
|
||||||
|
caster:KilledMonsterCredit(68)
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
RegisterPlayerEvent(5, OnSpellCast)
|
RegisterPlayerEvent(5, OnSpellCast)
|
||||||
@@ -1,11 +1,6 @@
|
|||||||
local SkeletalWarlord = {}
|
local SkeletalWarlord = {}
|
||||||
SkeletalWarlord.minChargeRange = 10
|
SkeletalWarlord.minChargeRange = 10
|
||||||
|
|
||||||
function SkeletalWarlord.OnSpawn(event, creature)
|
|
||||||
creature:SetMaxHealth(54353)
|
|
||||||
creature:CastSpell(creature, 17683, true)
|
|
||||||
end
|
|
||||||
|
|
||||||
function SkeletalWarlord.OnEnterCombat(event, creature, target)
|
function SkeletalWarlord.OnEnterCombat(event, creature, target)
|
||||||
creature:RegisterEvent(SkeletalWarlord.Whirlwind, 15000, 0)
|
creature:RegisterEvent(SkeletalWarlord.Whirlwind, 15000, 0)
|
||||||
creature:RegisterEvent(SkeletalWarlord.MortalStrike, 7000, 0)
|
creature:RegisterEvent(SkeletalWarlord.MortalStrike, 7000, 0)
|
||||||
@@ -25,7 +20,7 @@ creature:RemoveEvents()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function SkeletalWarlord.OnDied(event, creature, killer)
|
function SkeletalWarlord.OnDied(event, creature, killer)
|
||||||
creature:DespawnOrUnsummon(5000)
|
creature:DespawnOrUnsummon(15000)
|
||||||
creature:RemoveEvents()
|
creature:RemoveEvents()
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -39,10 +34,15 @@ function SkeletalWarlord.Charge(eventId, delay, calls, creature)
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
RegisterCreatureEvent(400056, 5, SkeletalWarlord.OnSpawn)
|
|
||||||
RegisterCreatureEvent(400056, 1, SkeletalWarlord.OnEnterCombat)
|
RegisterCreatureEvent(400056, 1, SkeletalWarlord.OnEnterCombat)
|
||||||
RegisterCreatureEvent(400056, 2, SkeletalWarlord.OnLeaveCombat)
|
RegisterCreatureEvent(400056, 2, SkeletalWarlord.OnLeaveCombat)
|
||||||
RegisterCreatureEvent(400056, 4, SkeletalWarlord.OnDied)
|
RegisterCreatureEvent(400056, 4, SkeletalWarlord.OnDied)
|
||||||
|
|
||||||
|
|
||||||
|
RegisterCreatureEvent(1788, 1, SkeletalWarlord.OnEnterCombat)
|
||||||
|
RegisterCreatureEvent(1788, 2, SkeletalWarlord.OnLeaveCombat)
|
||||||
|
RegisterCreatureEvent(1788, 4, SkeletalWarlord.OnDied)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
40
SpectralAttendant (2).lua
Normal file
40
SpectralAttendant (2).lua
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
local SpectralAttendant = {}
|
||||||
|
|
||||||
|
function SpectralAttendant.OnEnterCombat(event, creature, target)
|
||||||
|
creature:RegisterEvent(SpectralAttendant.Cripple, 6000, 0)
|
||||||
|
creature:RegisterEvent(SpectralAttendant.AOEFear, 13000, 0)
|
||||||
|
creature:RegisterEvent(SpectralAttendant.Teleport, math.random(14000,16000), 0)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
function SpectralAttendant.Cripple(eventId, delay, calls, creature)
|
||||||
|
creature:CastSpell(creature:GetVictim(), 11443, true)
|
||||||
|
end
|
||||||
|
|
||||||
|
function SpectralAttendant.AOEFear(eventId, delay, calls, creature)
|
||||||
|
creature:CastSpell(creature, 8122)
|
||||||
|
end
|
||||||
|
|
||||||
|
function SpectralAttendant.OnLeaveCombat(event, creature)
|
||||||
|
creature:RemoveEvents()
|
||||||
|
end
|
||||||
|
|
||||||
|
function SpectralAttendant.OnDied(event, creature, killer)
|
||||||
|
creature:RemoveEvents()
|
||||||
|
end
|
||||||
|
|
||||||
|
function SpectralAttendant.Teleport(eventId, delay, calls, creature)
|
||||||
|
local targets = creature:GetAITargets(10)
|
||||||
|
if #targets == 0 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local target = targets[math.random(#targets)]
|
||||||
|
creature:CastSpell(target, 69904)
|
||||||
|
creature:ClearThreatList()
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
RegisterCreatureEvent(11873, 1, SpectralAttendant.OnEnterCombat)
|
||||||
|
RegisterCreatureEvent(11873, 2, SpectralAttendant.OnLeaveCombat)
|
||||||
|
RegisterCreatureEvent(11873, 4, SpectralAttendant.OnDied)
|
||||||
@@ -4,6 +4,8 @@ local NPC_ID = 400034 -- The ID of the NPC you want players to get kill credit f
|
|||||||
local ALLOWED_ZONES = {
|
local ALLOWED_ZONES = {
|
||||||
1519, -- SW City
|
1519, -- SW City
|
||||||
12,
|
12,
|
||||||
|
14,
|
||||||
|
1637
|
||||||
}
|
}
|
||||||
|
|
||||||
-- List of allowed spell IDs
|
-- List of allowed spell IDs
|
||||||
@@ -32,7 +34,7 @@ function OnPlayerCastSpell(event, player, spell)
|
|||||||
if table.indexOf(ALLOWED_SPELLS, spellId) ~= -1 then
|
if table.indexOf(ALLOWED_SPELLS, spellId) ~= -1 then
|
||||||
if table.indexOf(ALLOWED_ZONES, zoneId) == -1 then
|
if table.indexOf(ALLOWED_ZONES, zoneId) == -1 then
|
||||||
spell:Cancel()
|
spell:Cancel()
|
||||||
player:SendBroadcastMessage("You cannot cast this spell in this area.")
|
player:SendBroadcastMessage("You cannot use that here.")
|
||||||
else
|
else
|
||||||
player:KilledMonsterCredit(NPC_ID)
|
player:KilledMonsterCredit(NPC_ID)
|
||||||
player:SendBroadcastMessage("You have successfuly placed a trap!")
|
player:SendBroadcastMessage("You have successfuly placed a trap!")
|
||||||
|
|||||||
38
VenomBelcher.lua
Normal file
38
VenomBelcher.lua
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
local VenomBelcher = {};
|
||||||
|
|
||||||
|
local function VenomSpit(eventId, delay, calls, creature)
|
||||||
|
creature:CastSpell(creature:GetVictim(), 24011, true)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function SlowingPoison(eventId, delay, calls, creature)
|
||||||
|
creature:CastSpell(creature:GetVictim(), 14897, true)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
function CastRetchingPlague(eventId, delay, calls, creature)
|
||||||
|
local targets = creature:GetAITargets(10)
|
||||||
|
if #targets == 0 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local target = targets[math.random(#targets)]
|
||||||
|
creature:CastSpell(target, 30080, true)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
local function OnEnterCombat(event, creature, target)
|
||||||
|
creature:RegisterEvent(VenomSpit, 7000, 0)
|
||||||
|
creature:RegisterEvent(CastRetchingPlague, 13000, 0)
|
||||||
|
creature:RegisterEvent(SlowingPoison, 16000, 0)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function OnLeaveCombat(event, creature)
|
||||||
|
creature:RemoveEvents()
|
||||||
|
end
|
||||||
|
|
||||||
|
local function OnDied(event, creature, killer)
|
||||||
|
creature:RemoveEvents()
|
||||||
|
end
|
||||||
|
|
||||||
|
RegisterCreatureEvent(10417, 1, OnEnterCombat)
|
||||||
|
RegisterCreatureEvent(10417, 2, OnLeaveCombat)
|
||||||
|
RegisterCreatureEvent(10417, 4, OnDied)
|
||||||
Reference in New Issue
Block a user