O que eu posso te sugerir é que em cada spell, dentro da função onGetFormulaValues(cid, level, maglevel) e antes de return -min, -max você coloque o seguinte código:
if (getPlayerVocation(cid) == #) then
min = min * 1.25
max = max * 1.25
end
Talvez seu script não seja exatamente com esses nomes, mas vai o exemplo:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_CARNIPHILA)
local distanceCombat = createCombatObject()
setCombatParam(distanceCombat, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE)
setCombatParam(distanceCombat, COMBAT_PARAM_EFFECT, CONST_ME_CARNIPHILA)
setCombatParam(distanceCombat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SMALLEARTH)
function onGetFormulaValues(cid, level, maglevel)
local min = (((level/5)+(maglevel*1.4))+10)
local max = (((level/5)+(maglevel*2.1))+20)
if (getPlayerVocation(cid) == 1) then
min = min * 1.25
max = max * 1.25
end
return -min, -max
end
setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
function onGetFormulaValues(cid, level, maglevel)
local min = (((level/5)+(maglevel*1.4))+10)
local max = (((level/5)+(maglevel*2.1))+20)
if (getPlayerVocation(cid) == 1) then
min = min * 1.25
max = max * 1.25
end
return -min, -max
end
setCombatCallback(distanceCombat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
function onCastSpell(cid, var)
if(variantToNumber(var) ~= 0) then
return doCombat(cid, distanceCombat, var)
end
return doCombat(cid, combat, var)
end
No caso eu usei Terra Strike (exori tera) com 25% (1,25x) a mais de dano para sorcerers (voc. 1)