Olá prezados amigos, venho por meio deste, pedir-lhes uma ajuda com meu sistema de critical.
Meu sistema de critical é formado por Classes de A a H. O sistema está funcionando, porém os skills estão com algum tipo de erro. O que acontece é que não importa que treinem os SKILS (AXE, SWORD e CLUB), sempre prevalece o FIST. Ou seja, se um player usa um AXE, caso ele treine o skill referente, não fará diferença em seus hits. Mas caso o mesmo treine FIST, os hits aumentarão de acordo com o mesmo. Peço o apois de vocês para que eu resolva esse sistema.
INFORMAÇÕES ÚTEIS:
Servidor: Evolutions
Versão: 7.92
Posto abaixo, o sistema de crítical class A.
-------------------------------------------------------------------------------------------------------------------------------------------------
local combat1 = createCombatObject()setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
function onGetFormulaValues(cid, level, maglevel)
skill = getPlayerSkill(cid,0) or getPlayerSkill(cid,1) or getPlayerSkill(cid,2) or getPlayerSkill(cid,3)
min = -((skill*3)+level)
max = -((skill*10)+level)
return min, max
end
setCombatCallback(combat1, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_EFFECT, 31)
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
function onGetFormulaValues(cid, level, maglevel)
skill = getPlayerSkill(cid,0) or getPlayerSkill(cid,1) or getPlayerSkill(cid,2) or getPlayerSkill(cid,3)
min = -((skill*5)+level)
max = -((skill*10)+level)
return min, max
end
setCombatCallback(combat2, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
local combat3 = createCombatObject()
setCombatParam(combat3, COMBAT_PARAM_EFFECT, 31)
setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
function onGetFormulaValues(cid, level, maglevel)
skill = getPlayerSkill(cid,0) or getPlayerSkill(cid,1) or getPlayerSkill(cid,2) or getPlayerSkill(cid,3)
min = -((skill*19)+level)
max = -((skill*22)+level)
return min, max
end
setCombatCallback(combat3, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
local combat4 = createCombatObject()
setCombatParam(combat4, COMBAT_PARAM_EFFECT, 31)
setCombatParam(combat4, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
function onGetFormulaValues(cid, level, maglevel)
skill = getPlayerSkill(cid,0) or getPlayerSkill(cid,1) or getPlayerSkill(cid,2) or getPlayerSkill(cid,3)
min = -((skill*21)+level)
max = -((skill*22)+level)
return min, max
end
setCombatCallback(combat4, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
local condition = createConditionObject(CONDITION_EMO)
setConditionParam(condition, CONDITION_PARAM_DELAYED, 1)
addDamageCondition(condition, 500, 3000, -150)
setCombatCondition(combat2, condition)
local condition = createConditionObject(CONDITION_EMO)
setConditionParam(condition, CONDITION_PARAM_DELAYED, 1)
addDamageCondition(condition, 500, 3000, -150)
setCombatCondition(combat3, condition)
local condition = createConditionObject(CONDITION_EMO)
setConditionParam(condition, CONDITION_PARAM_DELAYED, 1)
addDamageCondition(condition, 500, 3000, -150)
setCombatCondition(combat4, condition)
function onUseWeapon(cid, var)
rand = math.random(1,20)
if rand == 1 then
doPlayerSay(cid,"Fell my fury!?",16)
doPlayerAddHealth(cid, math.random(80, 800))
doSendAnimatedText(getPlayerPosition(cid), "Critical!", TEXTCOLOR_LIGHTGREY)
doCombat(cid, combat4, var)
end
rand = math.random(1,20)
if rand == 5 then
doPlayerSay(cid,"For Honor!",16)
doPlayerAddHealth(cid, math.random(80, 800))
doSendAnimatedText(getPlayerPosition(cid), "Critical!", TEXTCOLOR_LIGHTGREY)
doCombat(cid, combat3, var)
end
rand = math.random(1,20)
if rand == 15 then
doPlayerAddHealth(cid, math.random(80, 800))
doSendAnimatedText(getPlayerPosition(cid), "Critical!", TEXTCOLOR_LIGHTGREY)
doCombat(cid, combat2, var)
else
doCombat(cid, combat1, var)
end
end