TO
erro

Qual é o problema disso?

Por Tony Araujo, 11 de dez. de 2013 em Scripts

resolvido
script
5
969
Tony AraujoT
11 de dezembro de 2013 às 17:07

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
Heitor123456H
11 de dezembro de 2013 às 17:21

voc eque estalo isso?

zipter98Z
11 de dezembro de 2013 às 18:49
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 Dezembro 11 por zipter98

Tony AraujoT
11 de dezembro de 2013 às 19:16

LoL, só precisei usar a variavel, e dps fazer uns adaptos .

 

funcionou . REP+

zipter98Z
11 de dezembro de 2013 às 19:36

Tópico movido para a seção de dúvidas e pedidos resolvidos.