Brother eu elaborei aqui uma magia, sem usar esses combats.
Não sei se a formula que elaborei vai ficar ao seu gosto, porém, poderemos ir melhorando conforme o teste.
Eu nomearia de "special exura", que no caso funcionaria para todas as vocações, aqui nesse código eu só configurei a magia para as 4 primeiras vocações, suas promoções ainda não estão configuradas, usando assim evitaria a necessidade de criar 3 magias/arquivos que no final executaria a mesma coisa, porém se não gostar do resultado eu posso apenas resolver sanar o problema do script.
function onCastSpell(cid)
local spellFormula = {
[1] = (getPlayerLevel(cid) * getPlayerMagLevel(cid)),
[2] = (getPlayerLevel(cid) * getPlayerMagLevel(cid)),
[3] = (getPlayerLevel(cid) * (math.floor(getPlayerLevel(cid) / 2))),
[4] = (getPlayerLevel(cid) * 2 + (math.floor(getPlayerLevel(cid) / 2) * 4))
}
if spellFormula[getPlayerVocation(cid)] then
doCreatureAddHealth(cid, spellFormula[getPlayerVocation(cid)])
doSendMagicEffect(getThingPos(cid, 49))
return true
end
return false
end
Mas de qualquer forma, está aqui o seu código com o problema resolvido.
-- paladin
local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, 49)
setCombatParam(combat2, COMBAT_PARAM_TARGETCASTERORTOPMOST, 1)
setCombatParam(combat2, COMBAT_PARAM_AGGRESSIVE, 0)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, 0, 11000, 0, 12000)
function onCastSpell(cid, var)
doCombat(cid, combat2, var)
return true
end
-- mage
local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, 49)
setCombatParam(combat2, COMBAT_PARAM_TARGETCASTERORTOPMOST, 1)
setCombatParam(combat2, COMBAT_PARAM_AGGRESSIVE, 0)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, 0, 20000, 0, 15000)
function onCastSpell(cid, var)
doCombat(cid, combat2, var)
return true
end
-- knight
local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, 49)
setCombatParam(combat2, COMBAT_PARAM_TARGETCASTERORTOPMOST, 1)
setCombatParam(combat2, COMBAT_PARAM_AGGRESSIVE, 0)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, 0, 8000, 0, 9000)
function onCastSpell(cid, var)
doCombat(cid, combat2, var)
return true
end