Postado Abril 8, 2014 11 anos boa noite galera, seguinte, eu tenho um sistema de critical no meu servidor, pra players "semi-deuses", onde cada dano critico heala um tanto x de life, gostaria que fosse uma porcentagem, tipo 10% de life a cada critical, ja tentei da maneira que pensei que fosse funcionar e nao deu :/ preciso da colaboração de alguns ;P local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) function onGetFormulaValues(cid, level, maglevel) skill = getPlayerSkill(cid,3) min = -((skill*52)+(level*2)) max = -((skill*55)+(level*2)) 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,3) min = -((skill*55)+(level*3)) max = -((skill*60)+(level*4)) 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,3) min = -((skill*59)+(level*4)) max = -((skill*66)+(level*5)) 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, -607) setCombatCondition(combat2, condition) local condition = createConditionObject(CONDITION_EMO) setConditionParam(condition, CONDITION_PARAM_DELAYED, 1) addDamageCondition(condition, 100, 3000, -607) setCombatCondition(combat3, condition) function onUseWeapon(cid, var) Critical = math.random(1,100) if Critical > 80 then local hp = getCreatureHealthMax(cid) local regenhp = hp*0.1 doPlayerAddHealth(cid, regenhp) doSendAnimatedText(getPlayerPosition(cid), "Critical!", TEXTCOLOR_LIGHTGREY) doCombat(cid, combat2, var) end Critical = math.random(1,100) if Critical < 2 then local hp = getCreatureHealthMax(cid) local regenhp = hp*0.1 doPlayerAddHealth(cid, regenhp) doPlayerSay(cid,"For Honor!",16) doSendAnimatedText(getPlayerPosition(cid), "Critical!", TEXTCOLOR_LIGHTGREY) doCombat(cid, combat3, var) else doCombat(cid, combat1, var) end end "attempt to call global 'getCreatureHealthMax' a nil value"
Postado Abril 8, 2014 11 anos Tente isso : local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) function onGetFormulaValues(cid, level, maglevel) skill = getPlayerSkill(cid,3) min = -((skill*52)+(level*2)) max = -((skill*55)+(level*2)) 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,3) min = -((skill*55)+(level*3)) max = -((skill*60)+(level*4)) 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,3) min = -((skill*59)+(level*4)) max = -((skill*66)+(level*5)) 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, -607) setCombatCondition(combat2, condition) local condition = createConditionObject(CONDITION_EMO) setConditionParam(condition, CONDITION_PARAM_DELAYED, 1) addDamageCondition(condition, 100, 3000, -607) setCombatCondition(combat3, condition) function onUseWeapon(cid, var) Critical = math.random(1,100) if Critical > 80 then local regenhp = (getCreatureMaxHealth(cid) / 100) * 10 doPlayerAddHealth(cid, regenhp) doSendAnimatedText(getPlayerPosition(cid), "Critical!", TEXTCOLOR_LIGHTGREY) doCombat(cid, combat2, var) end Critical = math.random(1,100) if Critical < 2 then local regenhp = (getCreatureMaxHealth(cid) / 100) * 10 doPlayerAddHealth(cid, regenhp) doPlayerSay(cid,"For Honor!",16) doSendAnimatedText(getPlayerPosition(cid), "Critical!", TEXTCOLOR_LIGHTGREY) doCombat(cid, combat3, var) else doCombat(cid, combat1, var) end end Não testei. @edit Vi que se script tem um bug... Não existe a função: 'getCreatureHealthMax' O correto é: 'getCreatureMaxHealth' Então, você tem a opção de usar o script acima, ou de apenas alterar a função errada para função certa no seu script. Editado Abril 8, 2014 11 anos por Jamison Collins (veja o histórico de edições) 愛"A alma permanece em suas criações" 平(Não dou suporte por mensagem privada.)
Postado Abril 9, 2014 11 anos Autor mano, da o mesmo erro.. tem alguma outra função pra isso ? pra checar o life total e realar 10% ?
Postado Abril 9, 2014 11 anos Impossível dar o mesmo erro, ou é um erro diferente, ou você não alterou nada. Se houver outro erro, me mostre. 愛"A alma permanece em suas criações" 平(Não dou suporte por mensagem privada.)
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.