No Sistema Original do Servidor Dragon Souls
Os scripts de Critical são divididos em 4 Pastas (Club, Fist, Axe, Sword)
Cada pasta possui seus devidos scripts de critical por exemplo o Class.A da Sword.
Repare nas partes em vermelho é onde você edita qual o skill em que o script vai ser basear.
local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
function onGetFormulaValues(cid, level, maglevel)
skill = getPlayerSkill(cid,2)
min = -((skill*0)+level)
max = -((skill*8)+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,2)
min = -((skill*24)+level)
max = -((skill*26)+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,2)
min = -((skill*24)+level)
max = -((skill*28)+level)
return min, max
end
setCombatCallback(combat3, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
local condition = createConditionObject(CONDITION_EMO)
setConditionParam(condition, CONDITION_PARAM_DELAYED, 1)
addDamageCondition(condition, 100, 3000, -120)
setCombatCondition(combat2, condition)
local condition = createConditionObject(CONDITION_EMO)
setConditionParam(condition, CONDITION_PARAM_DELAYED, 1)
addDamageCondition(condition, 100, 3000, -120)
setCombatCondition(combat3, condition)
function onUseWeapon(cid, var)
Critical = math.random(1,100)
if Critical > 80 then
doSendAnimatedText(getPlayerPosition(cid), "Critical!", TEXTCOLOR_LIGHTGREY)
doCombat(cid, combat2, var)
end
Critical = math.random(1,100)
if Critical < 2 then
doPlayerSay(cid,"For Honor!",16)
doPlayerAddHealth(cid, math.random(1000, 10000))
doSendAnimatedText(getPlayerPosition(cid), "Critical!", TEXTCOLOR_LIGHTGREY)
doCombat(cid, combat3, var)
else
doCombat(cid, combat1, var)
end
end
Script Retirado do Servidor Completo Dragon Souls. Editar valores quando for passado para Evolutions.
Espero ter sanado sua duvida. Até mais.



info
Grupo: Campones
Registrado: 11/04/09
Posts: 2
Reputação: 0
Char no Tibia: Ex - Nargoriel
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.
-------------------------------------------------------------------------------------------------------------------------------------------------