Ir para conteúdo
  • 0

Qual é o problema disso?


Tony Araujo

Pergunta

error :

[11/12/2013 17:06:26] [Error - Action Interface]
[11/12/2013 17:06:26] data/actions/scripts/attrs.lua:onUse
[11/12/2013 17:06:26] Description:
[11/12/2013 17:06:26] data/actions/scripts/attrs.lua:24: attempt to compare number with nil
[11/12/2013 17:06:26] stack traceback:
[11/12/2013 17:06:26] data/actions/scripts/attrs.lua:24: in function <data/actions/scripts/attrs.lua:1>

 

 

codigo

 

if getItemAttribute(itemEx.uid, "attrs") > 4 then
doPlayerSendTextMessage(cid, 22, "This item already have 5 attributes.")
return false
end
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
local att = getItemAttribute(itemEx.uid, "attrs") or 0
if att > 4 then
doPlayerSendTextMessage(cid, 22, "This item already have 5 attributes.")
return false
end

Você estava fazendo uma comparação, verificando se o atributo attrs era maior que 4. Porém, da maneira que você fez, se o item não tivesse tal atributo, assumiria um valor nulo, dando o erro de attempt to compare number with nil. Então, bastaria fazer uma variável que funciona assim: se o item não tiver o atributo, irá assumir o valor 0. Se tiver, irá assumir o valor getItemAttribute(itemEx.uid, "attrs"). No caso, então, getItemAttribute(itemEx.uid, "attrs") or 0. Toda vez que for fazer uma comparação de atributos, opte por fazer dessa maneira.

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

×
×
  • Criar Novo...