Postado Fevereiro 23, 2020 5 anos Bom, indo direto ao assunto, eu estou com um problema: Tenho uma tabela com os IDs dos itens. E quando dá use no item X, quero que selecione um item na tabela usando um math.random(1,4) Exemplo: local itemRandom = Items[math.random(1,4) Até aqui tudo bem, mas o meu problema se dá quando quero pegar este item da variável itemRandom e exibir o nome do item em uma mensagem. Imagino que devo usar getItemIdByName pegando o id da array itemRandom . A questão é que não sei como usar esse comando. Eu pensei nisso: local ItemsGenerator= { 2365, -- backpack of holding 10518, -- demon backpack 10016, -- batwing hat 2152 -- platinum coin } function onUse(cid, item, fromPosition, itemEx, toPosition) local itemRandom = ItemsGenerator[math.random(1,4) local itemName = getItemIdByName(itemRandom [, displayError = true]) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "O item gerado foi " ..itemName ) return true end Mas obviamente não deu certo, alguém pode me apontar uma solução? Desde já agradeço muito! Agora, Steeven disse: Bom, indo direto ao assunto, eu estou com um problema: Tenho uma tabela com os IDs dos itens. E quando dá use no item X, quero que selecione um item na tabela usando um math.random(1,4) Exemplo: local itemRandom = Items[math.random(1,4) Até aqui tudo bem, mas o meu problema se dá quando quero pegar este item da variável itemRandom e exibir o nome do item em uma mensagem. Imagino que devo usar getItemIdByName pegando o id da array itemRandom . A questão é que não sei como usar esse comando. Eu pensei nisso: local ItemsGenerator= { 2365, -- backpack of holding 10518, -- demon backpack 10016, -- batwing hat 2152 -- platinum coin } function onUse(cid, item, fromPosition, itemEx, toPosition) local itemRandom = ItemsGenerator[math.random(1,4) local itemName = getItemIdByName(itemRandom [, displayError = true]) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "O item gerado foi " ..itemName ) return true end Mas obviamente não deu certo, alguém pode me apontar uma solução? Desde já agradeço muito! Desculpe, só lembrando que o nome exibido tem que ser o mesmo do item gerado na variável itemRandom . OBRIGADO!
Postado Fevereiro 24, 2020 5 anos Solução local items = { 2365, -- backpack of holding 10518, -- demon backpack 10016, -- batwing hat 2152 -- platinum coin } function onUse(cid, item, fromPosition, itemEx, toPosition) local r = items[math.random(#items)] return doPlayerSendTextMessage(cid,22,"O item gerado foi: "..getItemNameById(r)) end [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
Postado Fevereiro 24, 2020 5 anos Autor 1 hora atrás, Vodkart disse: local items = { 2365, -- backpack of holding 10518, -- demon backpack 10016, -- batwing hat 2152 -- platinum coin } function onUse(cid, item, fromPosition, itemEx, toPosition) local r = items[math.random(#items)] return doPlayerSendTextMessage(cid,22,"O item gerado foi: "..getItemNameById(r)) end @Vodkart Eu acho que devia ter te avisado, que estou usando um "The OTX Server Version: (2.52 - 1557) - Codename: (Necron)". Quando usei o teu código, o servidor fechou sozinho, mas antes apareceu o erro no console: lua:341: attempt to call a string value. É justamente a linha em questão: return doPlayerSendTextMessage(cid,22,"O item gerado foi: "..getItemNameById(r)) Em fim, usei do jeito que você mandou e deu o mesmo erro OBRIGADO CARA, FUNCIONOU, EU AO INVÉS DE USAR NO RETURN, USEI COMO UM COMANDO SIMPLES E DEU CERTO SEM ERROS AGORA. OBRIGADO DE CORAÇÃO! VOCÊ FAZ PARTE DO MEU DREAM TEAM QUE SE DEUS QUISER AINDA VOU MONTAR! ABRAÇOS! ABAIXO SEGUE COMO RESOLVI: local items = { 2365, -- backpack of holding 10518, -- demon backpack 10016, -- batwing hat 2152 -- platinum coin } function onUse(cid, item, fromPosition, itemEx, toPosition) local r = items[math.random(#items)] doPlayerSendTextMessage(cid,22,"O item gerado foi: "..getItemNameById(r)) return true end Editado Fevereiro 24, 2020 5 anos por Steeven (veja o histórico de edições)
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.