Aow turminha do XTIBIA, estou aqui para explicar como por um Cooldown independente para cada magia, sendo possivel se tirar o exausted do jogo e só usar o Cooldown, bom eu testei em TFS 0.3.6 e 0.4 + acho que funcione em todos 8.50+ !!!!
Bom vamos começar primeiro pegue uma magia de sua pasta spells, que deseja por o cooldown, vou usar no exemplo abaixo a magia exori vis:
local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY) function onGetFormulaValues(cid, level, maglevel) min = -(level * 0.28 + maglevel * 1.48) * 1.0 max = -(level * 0.34 + maglevel * 2.34) * 1.0 return min, max end setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") function onCastSpell(cid, var) return doCombat(cid, combat, var) end
bom agora a baixo de "function onCastSpell(cid, var)" voce apaga tudo e poe:
if exhaustion.check(cid, 23006) == false then exhaustion.set(cid, 23006, 1) return doCombat(cid, combat, var) else doPlayerSendCancel(cid, "Cooldown[" ..exhaustion.get(cid, 23006).."]") end end
ficando assim:
local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY) function onGetFormulaValues(cid, level, maglevel) min = -(level * 0.28 + maglevel * 1.48) * 1.0 max = -(level * 0.34 + maglevel * 2.34) * 1.0 return min, max end setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") function onCastSpell(cid, var) if exhaustion.check(cid, 23006) == false then exhaustion.set(cid, 23006, 1) return doCombat(cid, combat, var) else doPlayerSendCancel(cid, "Cooldown[" ..exhaustion.get(cid, 23006).."]") end end
Explicando:
if exhaustion.check(cid, 23006) == false then
exhaustion.set(cid, 23006, 1)
return doCombat(cid, combat, var)
else
doPlayerSendCancel(cid, "Cooldown[" ..exhaustion.get(cid, 23006).."]")
bom os numeros 23006 são a storage que a magia usa entao cada magia deve posuir um numero diferente!!!!
e o numero 1 é o tempo do cooldown ou seja 1segundo!!!
dae é só ir em spells.xml e abaixar o exausted ou até mesmo zerar se voce for usar esse sistema em todas as magias do jogo!!! ;D
BOM É MEU PRIMEIRO TUTORIAL AQUI NO XTIBIA, ESPERO AJUDAR UMA GALERA AE ^^
AJUDEM DANDO REPUTAÇÃO CASO SEJA UTIL PRA TI ESSE TUTORIAL!!!
SEJAM TODOS FELIZES
T+