NB
dúvida

Spell Nao Poder Ser Usado Tal Level

Por nbb147, 11 de ago. de 2012 em Scripts

tibia
otserver
spell
3
615
nbb147N
11 de agosto de 2012 às 20:41

Galera eu to com uma duvida, eu queria saber se tem como fazer o player parar de usar alguma magia quando chegar em um certo nivel, tipo o cara ganhou exura gran level 20, ai o cara pega level 30 ai ja nao pode usar mais a magia, isso é possivel, se possivel, tem alguem que poderia mim ajudar?

OneshotO
11 de agosto de 2012 às 20:56

Sim, é possível. Vou pegar como exemplo a magia Berserk, veja abaixo:

 

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)
setCombatParam(combat, COMBAT_PARAM_USECHARGES, true)

local area = createCombatArea(AREA_SQUARE1X1)
setCombatArea(combat, area)

function onGetFormulaValues(cid, level, skill, attack, element, factor)
   local levelTotal, formula = level / 5, 0.0496
   local normal, elemental = -(skill * attack * formula + levelTotal), math.ceil((skill * element * formula + levelTotal))
   return normal/2, normal, -math.random(elemental/2, elemental)
end

setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")
function onCastSpell(cid, var)
   return doCombat(cid, combat, var)
end

 

Basta fazer mais ou menos isso:

 


local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)
setCombatParam(combat, COMBAT_PARAM_USECHARGES, true)

local area = createCombatArea(AREA_SQUARE1X1)
setCombatArea(combat, area)

function onGetFormulaValues(cid, level, skill, attack, element, factor)
   local levelTotal, formula = level / 5, 0.0496
   local normal, elemental = -(skill * attack * formula + levelTotal), math.ceil((skill * element * formula + levelTotal))
   return normal/2, normal, -math.random(elemental/2, elemental)
end

setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")

function onCastSpell(cid, var)
   if getPlayerLevel(cid) < 100 then
       return doCombat(cid, combat, var)
   else
       doPlayerSendCancel(cid, "You cannot use this spell anymore.")
       return false
   end
end

 

Um grande abraço.

nbb147N
11 de agosto de 2012 às 21:21

putz cara tu e o cara, te dou rep amanhã hj ta esgotado ^^