Ir para conteúdo

Problemas Com Sistema De Critical.


wesleymendes1986

Posts Recomendados

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

Link para o comentário
Compartilhar em outros sites

  • 6 months later...

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.

Link para o comentário
Compartilhar em outros sites

  • 7 months later...
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...