local c = {
storage = 40902,
time = 4
}
local cfg = {
fromPosition = {x = 32346, y = 32347, z = 13}, -- top left cornor of the playground
toPosition = {x = 32445, y = 32431, z = 13}, -- bottom right cornor of the playground
}
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH)
local function doBlockEffect(cid)
doSendAnimatedText(getPlayerPosition(cid), "Immune!", COLOR_GREY)
return doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_RED)
end
function onCastSpell(cid, var)
if isInRange(getPlayerPosition(cid), cfg.fromPosition, cfg.toPosition) then
return doPlayerSendCancel(cid, "You can't use this spell in event.")
end
local target = getTopCreature(variantToPosition(var)).uid
if not isPlayer(target) then
doPlayerSendCancel(cid, "Target has to be a player.")
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
return false
end
if exhaustion.check(target, c.storage) then
local n = target == cid and "You are" or getPlayerName(target).." is"
doPlayerSendCancel(cid, n.." already blocking attacks.")
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
return false
end
exhaustion.set(target, c.storage, c.time)
doSendAnimatedText(getPlayerPosition(cid), "Immune!", COLOR_YELLOW)
doCombat(cid, combat, var)
for x = 1, c.time do
addEvent(doBlockEffect, x * 1000, target)
end
return true
end