Postado Setembro 18, 2020 4 anos .Qual servidor ou website você utiliza como base? tfs 0.4 8.60 Qual o motivo deste tópico? Sistema de critical do @xWhiteWolf dando erro Está surgindo algum erro? Se sim coloque-o aqui. Citar [Error - CreatureScript Interface] data/creaturescripts/scripts/critical.lua:onStatsChange Description: (luaGetPlayerSkillLevel) Player not found [Error - CreatureScript Interface] data/creaturescripts/scripts/critical.lua:onStatsChange Description: data/creaturescripts/scripts/critical.lua:9: attempt to perform arithmetic on a boolean value stack traceback: data/creaturescripts/scripts/critical.lua:9: in function <data/creaturescripts/scripts/critical.lua:7> Você tem o código disponível? Se tiver publique-o aqui: local SKILL_ID = 3 -- id do skill... local multiplier = 1.5 local percentual = 0.3 function onStatsChange(cid, attacker, type, combat, value) if isPlayer(attacker) and (not (attacker == cid)) and (type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS) then local chance = (getPlayerSkillLevel(cid, SKILL_ID) * percentual) * 10 if math.random(1, 1000) <= chance then dano = math.ceil(value*(multiplier)) doTargetCombatHealth(attacker, cid, combat, -dano, -dano) doSendMagicEffect(getCreaturePosition(cid), 5) return false end end return true end Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. Editado Setembro 22, 2020 4 anos por diarmaint (veja o histórico de edições)
Postado Setembro 21, 2020 4 anos Ver se esse funciona: function onStatsChange(cid, attacker, type, combat, value) if (type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS) and isPlayer(attacker) then if (getPlayerStorageValue(attacker, 48903)*1) >= math.random (0,1000) then dano = math.ceil(value*(2)) doTargetCombatHealth(attacker, cid, combat, -dano, -dano, 255) doSendAnimatedText(getCreaturePos(attacker), "Critical!", 100) end end return true end
Postado Setembro 22, 2020 4 anos Autor @RicK Sanchez O sistema por storage funciona perfeitamente, Eu já uso ele.. Spoiler --[[Critical System ------------------------- By Night Wolf]] local lvlcrit = 48910 local multiplier = 1.07 function onStatsChange(cid, attacker, type, combat, value) if isPlayer(attacker) and (not (attacker == cid)) and (type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS) then if (getPlayerStorageValue(attacker, lvlcrit)*20) >= math.random (0,1000) then dano = math.ceil(value*(multiplier)) doTargetCombatHealth(attacker, cid, combat, -dano, -dano, 130) doSendMagicEffect(getPlayerPosition(cid), 4) return false end end return true end mas não quero deixar dessa forma preciso que o crítical aumente conforme a skill axe o script que está ocorrendo o erro é feito da forma que eu quero, mas não sei o motivo do erro
Postado Outubro 3, 2020 4 anos permita-me lhe ajudar: Descrição do erro: Description:data/creaturescripts/scripts/critical.lua:9: attempt to perform arithmetic on a boolean value "Tentativa de conta com valores booleanos (verdadeiros/falso) na linha 9" a linha 9: local chance = (getPlayerSkillLevel(cid, SKILL_ID) * percentual) * 10 Dessa linha aí, vc tem 3 coisas sendo multiplicadas: uma função, uma variavel e uma constante. Tanto a constante (10) quanto a variavel (percentual) são bem definidas e não podem ser booleanas (true/false), o que nos indica que o problema é que sua função getPlayerSkillLevel(cid, SKILL_ID) não está retornando o level da skill. Você pode checar isso colocando na linha acima dessa print(getPlayerSkillLevel(cid, SKILL_ID)) e vendo o que ele vai escrever no seu console. Se isso se confirmar, busca outra função ou tenta ver o que tem de errado nessa
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.