Ir para conteúdo
  • 0

if and elseif - Dúvida


SeKtooR

Pergunta

Oi pessoal, teria uma dúvida estou me esforçando para aprender Scripting e teria uma dúvida/pedido.



Tem como usar para verificar e executar uma função de acordo com a quantidade de storages que o jogador tem?


Ex:



Se ele tiver 1
receber certo item
receber mensagem
Se ele tiver 2
receber certo item
receber mensagem
Se ele tiver 3
receber certo item
receber mensagem
Se ele não tiver nenhum
receber mensagem

Se não me engano o jeito mais fácil e usando Elseif que ainda quero aprender a utilizar, bom gostaria que alguém reproduzi-se o código que citei acima, e se possível explicar um pouco do uso.


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

3 respostass a esta questão

Posts Recomendados

  • 0

Há uma maneira mais simples e menor de fazer isso: tabelas. Aqui está o seu código (não lhe culpo se não entender, não sou bom com explicações):

local tabela_de_exemplo = {
    [1] = {item, "mensagem"},     --[valor da storage] = {id do item, mensagem},
    [2] = {item, "mensagem"},
    [3] = {item, "mensagem"},
}
    if tabela_de_exemplo[getPlayerStorageValue(cid, storage)] then   --Se o valor da storage "storage" do jogador for igual à algum dos valores entre colchetes da tabela_de_exemplo, então:
        local tab = tabela_de_exemplo[getPlayerStorageValue(cid, storage)]
        doPlayerAddItem(cid, tab[1], 1)  --O jogador receberá o item com ID programado no índice 1 da tabela equivalente ao valor da storage do jogador entre colchetes na tabela_de_exemplo.
        doPlayerSendTextMessage(cid, 27, tab[2])     --Será enviada ao jogador uma mensagem programada no índice 2 da tabela equivalente ao valor da storage do jogador entre colchetes na tabela_de_exemplo.
    else   --Caso contrário:
        return doPlayerSendCancel(cid, "Mensagem")   --Enviará uma mensagem.
    end

Entende-se como cid quem executou a ação.

PS: Não entendi muito bem a parte de "storages que o jogador tem". Assim, é possível entender como keys, e não values. Porém, suponho que seu objetivo fosse a segunda opção.

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

  • 0

Há uma maneira mais simples e menor de fazer isso: tabelas. Aqui está o seu código (não lhe culpo se não entender, não sou bom com explicações):

local tabela_de_exemplo = {
    [1] = {item, "mensagem"},     --[valor da storage] = {id do item, mensagem},
    [2] = {item, "mensagem"},
    [3] = {item, "mensagem"},
}
    if tabela_de_exemplo[getPlayerStorageValue(cid, storage)] then   --Se o valor da storage "storage" do jogador for igual à algum dos valores entre colchetes da tabela_de_exemplo, então:
        local tab = tabela_de_exemplo[getPlayerStorageValue(cid, storage)]
        doPlayerAddItem(cid, tab[1], 1)  --O jogador receberá o item com ID programado no índice 1 da tabela equivalente ao valor da storage do jogador entre colchetes na tabela_de_exemplo.
        doPlayerSendTextMessage(cid, 27, tab[2])     --Será enviada ao jogador uma mensagem programada no índice 2 da tabela equivalente ao valor da storage do jogador entre colchetes na tabela_de_exemplo.
    else   --Caso contrário:
        return doPlayerSendCancel(cid, "Mensagem")   --Enviará uma mensagem.
    end

Entende-se como cid quem executou a ação.

PS: Não entendi muito bem a parte de "storages que o jogador tem". Assim, é possível entender como keys, e não values. Porém, suponho que seu objetivo fosse a segunda opção.

 

A obrigado Zipter, revisei e aprendi algumas coisas, tópico sanado obrigado.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...