Problemas Com Sistema De Critical.

wesleymendes1986
em Lixeira Pública

wesleymendes1986

Empresário
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 11/04/09Posts: 2Char 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.

 

-------------------------------------------------------------------------------------------------------------------------------------------------

 

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

MaxLinux

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 06/11/10Posts: 3Char no Tibia: Dav Sciter

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.

Eeeeok

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 05/11/11Posts: 0Char no Tibia: Mestre Zodic Belias

estou tentando colocar no meu server esse sistema, porém não estou conseguindo, não sei onde coloco os scripts.