Ir para conteúdo
  • Cadastre-se

(Resolvido)Como usar getItemIdByName?


Ir para solução Resolvido por Vodkart,

Posts Recomendados

 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!

Link para o post
Compartilhar em outros sites
  • 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

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
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 por Steeven (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

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.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo