Ir para conteúdo
  • 0

[Resolvido] Comum em pokemons


161996

Pergunta

Este erro aconteceu em 2 servidores meus : Lunus e Centurion V8...



[Error - CreatureScript Interface]

[12/04/2014 13:21:00] data/creaturescripts/scripts/exp.lua:onStatsChange

[12/04/2014 13:21:01] Description:

[12/04/2014 13:21:01] data/lib/level system.lua:659: attempt to perform arithmetic on a nil value

[12/04/2014 13:21:01] stack traceback:

[12/04/2014 13:21:01] data/lib/level system.lua:659: in function 'getSpecialDefense'

[12/04/2014 13:21:02] data/creaturescripts/scripts/exp.lua:451: in function <data/creaturescripts/scripts/exp.lua:129>



Acredito que alguém consiga arrumar isso, tal que outros servidores sem bugs ja passaram por esse com certeza.

No aguardo, obrigado.



Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Substitua sua função getSpecialDefense por essa:

function getSpecialDefense(cid)
if not isCreature(cid) then return 0 end
    local spatk = getSpecialAttack(cid)
    local defense = getDefense(cid) 
    local str = ""
    if not spatk then
        str = "A criatura "..getCreatureName(cid).." possui valor nulo para a função getSpecialAttack. Valor da storage 1005: "..getPlayerStorageValue(cid, 1005) and getPlayerStorageValue(cid, 1005) or "NIL"
        if not pokes[getCreatureName(cid)] then
            str = str..". Esta criatura não se encontra na tabela pokes, de configuration.lua."
        end
        print(str)
        spatk = 0
    elseif not defense then
        str = "A criatura "..getCreatureName(cid).." possui valor nulo para a função getDefense. Valor da storage 1002: "..getPlayerStorageValue(cid, 1002) and getPlayerStorageValue(cid, 1002) or "NIL"
        if not pokes[getCreatureName(cid)] then
            str = str..". Esta criatura não se encontra na tabela pokes, de configuration.lua."
        end
        print(str)
        defense = 0
    end
    return spatk * 0.85 + defense * 0.2      
end
Editado por zipter98
Link para o comentário
Compartilhar em outros sites

  • 0

Desculpe pelo local errado.

 

Aqui está o exp.lua linha: 451

block = 1 - (getSpecialDefense(cid) / (getSpecialAttack(attacker) + getSpecialDefense(cid)))

 

 

Aqui o level system.lua linha: 659

return getSpecialAttack(cid) * 0.85 + getDefense(cid) * 0.2

Editado por walquer
Link para o comentário
Compartilhar em outros sites

  • 0

Achei que tinha resolvido mas ta dando este outro erro agora:

 

[14/04/2014 15:00:56] [Error - CreatureScript Interface]
[14/04/2014 15:00:57] data/creaturescripts/scripts/exp.lua:onStatsChange
[14/04/2014 15:00:57] Description:
[14/04/2014 15:00:58] data/creaturescripts/scripts/exp.lua:352: attempt to perform arithmetic on a nil value
[14/04/2014 15:00:58] stack traceback:
[14/04/2014 15:00:59] data/creaturescripts/scripts/exp.lua:352: in function <data/creaturescripts/scripts/exp.lua:129>
linha 352 do exp.lua
local miss = (getSpeed(cid) - getSpeed(attacker)) * 0.26
linha 129
function onStatsChange(cid, attacker, type, combat, value)
Link para o comentário
Compartilhar em outros sites

  • 0

Agora, substitua sua função getSpeed(cid) por esta:

function getSpeed(cid)
if not isCreature(cid) then return 0 end
    local speed = tonumber(getPlayerStorageValue(cid, 1003))
    if not speed then
        speed = 1
        local str = getCreatureName(cid).." possui valor nulo para a função getSpeed (storage 1003)."
        if not pokes[getCreatureName(cid)] then
            str = str.." Esta criatura não se encontra na tabela pokes, de configuration.lua."
        end
        print(str)
    end
    return speed
end

PS: Parece que o erro está sendo causado devido à criaturas que possuem valor nulo das storages de status, como defense, offense, speed, etc. Se for imprimido em seu console alguma das mensagens que deixei programadas no código, peço-lhe que envie-a.

Editado por zipter98
Link para o comentário
Compartilhar em outros sites

  • 0
  • Administrador
A questão neste tópico de suporte foi respondida e/ou o autor do tópico resolveu o problema. Este tópico está fechado e foi movido para Suporte - Resolvidos. Se você tiver outras dúvidas, crie um novo tópico.
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...