function onCastSpell(creature, var) local COOLDOWN = { [-1] = 360; [00] = 360; [01] = 300; [02] = 240; [03] = 180; [04] = 120; } -- MAESTRIA: REGEN if creature:getStorageValue(_SYSTEM.MAESTRIA[01]) == 01 then if creature:getStorageValue(_SYSTEM.MAESTRIA[03]) > 0 then creature:getPosition():sendMagicEffect(CONST_ME_POFF) return true end local WaitTime = COOLDOWN[creature:getStorageValue(_SYSTEM.MAESTRIA[02])] creature:setStorageValue(_SYSTEM.MAESTRIA[04], 60) creature:setStorageValue(_SYSTEM.MAESTRIA[03], WaitTime + 3) creature:getPosition():sendMagicEffect(CONST_ME_MAGIC_GREEN) creature:sendCancelMessage("@SpellCooldown 06 " ..WaitTime) local regenCondition = Condition(CONDITION_REGENERATION, CONDITIONID_DEFAULT) local RegenRandom = (math.random(05, 10)) local HPGain = RegenRandom * (creature:getBaseMaxHealth() / 100) regenCondition:setTicks(01 * 60 * 1000) regenCondition:setParameter(CONDITION_PARAM_BUFF_SPELL, true) regenCondition:setParameter(CONDITION_PARAM_HEALTHTICKS, 1000) regenCondition:setParameter(CONDITION_PARAM_HEALTHGAIN, HPGain) creature:addCondition(regenCondition) -- MAESTRIA: TANKER elseif creature:getStorageValue(_SYSTEM.MAESTRIA[01]) == 02 then if creature:getStorageValue(_SYSTEM.MAESTRIA[03]) > 0 then creature:getPosition():sendMagicEffect(CONST_ME_POFF) return true end local WaitTime = COOLDOWN[creature:getStorageValue(_SYSTEM.MAESTRIA[02])] creature:setStorageValue(_SYSTEM.MAESTRIA[04], 10) creature:setStorageValue(_SYSTEM.MAESTRIA[03], WaitTime + 3) creature:getPosition():sendMagicEffect(CONST_ME_MAGIC_GREEN) creature:sendCancelMessage("@SpellCooldown 06 " ..WaitTime) -- MAESTRIA: SHOOTER elseif creature:getStorageValue(_SYSTEM.MAESTRIA[01]) == 03 then if creature:getStorageValue(_SYSTEM.MAESTRIA[03]) > 0 then creature:getPosition():sendMagicEffect(CONST_ME_POFF) return true end local WaitTime = COOLDOWN[creature:getStorageValue(_SYSTEM.MAESTRIA[02])] creature:setStorageValue(_SYSTEM.MAESTRIA[04], 10) creature:setStorageValue(_SYSTEM.MAESTRIA[03], WaitTime + 3) creature:getPosition():sendMagicEffect(CONST_ME_MAGIC_GREEN) creature:sendCancelMessage("@SpellCooldown 06 " ..WaitTime) -- MAESTRIA: VITAL elseif creature:getStorageValue(_SYSTEM.MAESTRIA[01]) == 04 then if creature:getStorageValue(_SYSTEM.MAESTRIA[03]) > 0 then creature:getPosition():sendMagicEffect(CONST_ME_POFF) return true end local WaitTime = COOLDOWN[creature:getStorageValue(_SYSTEM.MAESTRIA[02])] creature:setStorageValue(_SYSTEM.MAESTRIA[04], 10) creature:setStorageValue(_SYSTEM.MAESTRIA[03], WaitTime + 3) creature:getPosition():sendMagicEffect(CONST_ME_MAGIC_GREEN) creature:sendCancelMessage("@SpellCooldown 06 " ..WaitTime) local gainedHealth = creature:getBaseMaxHealth() local condition = Condition(CONDITION_ATTRIBUTES) condition:setParameter(CONDITION_PARAM_STAT_MAXHITPOINTS, gainedHealth) condition:setParameter(CONDITION_PARAM_BUFF_SPELL, true) condition:setParameter(CONDITION_PARAM_TICKS, 10 * 1000) creature:addCondition(condition) doTargetCombat(0, creature, COMBAT_HEALING, gainedHealth * 10, gainedHealth * 10) -- MAESTRIA: LUCKY elseif creature:getStorageValue(_SYSTEM.MAESTRIA[01]) == 05 then if creature:getStorageValue(_SYSTEM.MAESTRIA[03]) > 0 then creature:getPosition():sendMagicEffect(CONST_ME_POFF) return true end local WaitTime = COOLDOWN[creature:getStorageValue(_SYSTEM.MAESTRIA[02])] creature:setStorageValue(_SYSTEM.MAESTRIA[04], 60) creature:setStorageValue(_SYSTEM.MAESTRIA[03], WaitTime + 3) creature:getPosition():sendMagicEffect(CONST_ME_MAGIC_GREEN) creature:sendCancelMessage("@SpellCooldown 06 " ..WaitTime) else creature:getPosition():sendMagicEffect(CONST_ME_POFF) return true end -- DESAFIO if creature:getStorageValue(_DESAFIOS[00].DESAFIO_ID) > 00 then onPlayerDesafios(creature, 30, 01) end return true end