- Joined
- Nov 2, 2010
- Messages
- 218
- Solutions
- 1
- Reaction score
- 62
LUA:
local celestialJudgment = Spell("instant")
function celestialJudgment.onCastSpell(creature, var)
local origin = creature:getPosition()
local casterId = creature:getId()
creature:say("Judgment!", TALKTYPE_MONSTER_SAY)
doSendMagicEffect(origin, CONST_ME_HOLYAREA)
-- Stage 1: Fire a holy projectile at the target after 500ms.
addEvent(function()
local caster = Creature(casterId)
if not caster or not caster:isCreature() then
return
end
local target = caster:getTarget()
if not target or not target:isCreature() then
return
end
local combatBeam = Combat()
combatBeam:setParameter(COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
combatBeam:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_HOLYAREA)
combatBeam:setFormula(COMBAT_FORMULA_DAMAGE, -4000, 0, -9000, 0)
doSendDistanceShoot(origin, target:getPosition(), CONST_ANI_HOLY)
combatBeam:execute(caster, positionToVariant(target:getPosition()))
end, 500)
-- Stage 2: After 2500ms, cause a ring explosion around target's current position.
addEvent(function()
local caster = Creature(casterId)
if not caster or not caster:isCreature() then
return
end
local target = caster:getTarget()
if not target or not target:isCreature() then
return
end
local targetPos = target:getPosition()
local explosionCombat = Combat()
explosionCombat:setParameter(COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
explosionCombat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_HOLYAREA)
explosionCombat:setFormula(COMBAT_FORMULA_DAMAGE, -5000, 0, -9000, 0)
local explosionRadius = 3
for dx = -explosionRadius, explosionRadius do
for dy = -explosionRadius, explosionRadius do
local pos = Position(targetPos.x + dx, targetPos.y + dy, targetPos.z)
explosionCombat:execute(caster, positionToVariant(pos))
doSendMagicEffect(pos, CONST_ME_HOLYAREA)
end
end
end, 2500)
return true
end
celestialJudgment:name("Judgment")
celestialJudgment:words("##judgment")
celestialJudgment:isAggressive(true)
celestialJudgment:blockWalls(true)
celestialJudgment:needLearn(true)
celestialJudgment:register()