IMMUNITY = 67163549 -- storage of the buff
function powerOff(cid)
if isPlayer(cid) == true then
setPlayerStorageValue(cid, IMMUNITY, 0)
else
return false
end
end
function powerOn(cid)
if isPlayer(cid) == true then
setPlayerStorageValue(cid, IMMUNITY, 1)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_BLUE)
local segundos = 30 -- buff seconds
addEvent(powerOff, 1000*segundos, cid)
else
return false
end
end
function onCastSpell(cid, var)
if getPlayerStorageValue(cid, IMMUNITY) >= 1 then
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
doPlayerSendCancel(cid, "You're already under the effect of this buff.")
else
addEvent(powerOn, 0, cid)
setPlayerStorageValue(cid, IMMUNITY, 1)
end
end
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_CARNIPHILA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1)
function onCastSpell(cid, var)
if getPlayerStorageValue(getCreatureTarget(cid), IMMUNITY) >= 1 then
return false
else
return doCombat(cid, combat, var)
end
end