Postado Setembro 21, 2016 8 anos Autor 17 horas atrás, xWhiteWolf disse: não funciona.. oque funciona é verificar um a um no array com um for ou usar a função isInArray. local tb = {1501, 1503, 1702} if isInArray(tb, item.itemid) then [Error - Action Interface] data/actions/scripts/other/doors.lua:onUse Description: data/lib/050-function.lua:10: bad argument #1 to 'ipairs' (table expected, got nil) stack traceback: [C]: in function 'ipairs' data/lib/050-function.lua:10: in function 'isInArray' data/actions/scripts/other/doors.lua:14: in function <data/actions/scripts/other/doors.lua:7> É outra função não?
Postado Setembro 21, 2016 8 anos @Noynac local item_existe = false local item = 'sword' local item_lista = {'sword','shield','helmet'} for _,v in pairs(item_lista) do if v == item then item_existe = true break end end if (item_existe) then print('Item "'..item..'" existe no array') else print('Item "'..item..'" não existe no array') end Essa é uma das maneiras que eu faço esse tipo de validação. Funciona? Claro, pode testar em: https://www.lua.org/cgi-bin/demo Valeu! Está procurando um Global Mid exp para se divertir e dominar? http://www.deluxe-global.com
Postado Setembro 21, 2016 8 anos function onUse(cid, item, fromPosition, itemEx, toPosition) local locked_doors = {10774,10783,12150,10477,10468} if not isInArray(locked_doors, item.itemid) then return true end return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "It is locked.") end [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
Postado Setembro 21, 2016 8 anos 4 horas atrás, Noynac disse: [Error - Action Interface] data/actions/scripts/other/doors.lua:onUse Description: data/lib/050-function.lua:10: bad argument #1 to 'ipairs' (table expected, got nil) stack traceback: [C]: in function 'ipairs' data/lib/050-function.lua:10: in function 'isInArray' data/actions/scripts/other/doors.lua:14: in function <data/actions/scripts/other/doors.lua:7> É outra função não? lol? acha que você fez alguma burrada no código, se só fizer aquilo que eu falei tem que funcionar.. veja o exemplo do vodkart. a função isInArray internamente faz isso aqui: for i, v in ipairs(tb) do if v == item.itemid then return true end return false end ele tá falando que deu erro porque o ipairs espera uma tabela e você forneceu algo nulo (provavelmente item.itemid). Então você tem que verificar se existe item como parametro do callback que você tá utilizando e se realmente tá com o nome de item. (posta o script inteiro pra gente poder te ajudar mais) Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá! "Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda (obg ao @Beeny por fazer essa linda sign <3)
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.