wesleymendes1986 0 Postado Setembro 14, 2010 Share Postado Setembro 14, 2010 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 More sharing options...
MaxLinux 2 Postado Março 15, 2011 Share Postado Março 15, 2011 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 More sharing options...
Eeeeok 0 Postado Novembro 8, 2011 Share Postado Novembro 8, 2011 estou tentando colocar no meu server esse sistema, porém não estou conseguindo, não sei onde coloco os scripts. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados