[Ajuda] mensagem retornando
#1

To fazendo minha Humilde 24/7 , mais to com um pequeno BUG .
Quando eu vou comprar o item 1 , Fala que eu nгo tenho dinheiro suficiente, OK .
Mais ai torna mostrar as mensagens dos Itens da Loja . Eu nгo quero isso .
Alguйm sabe como fazer para nгo voltar a aparecer a lista de itens ?


pawn Код:
CMD:comprar(playerid, params [])
{
    if (pInfo[playerid][Pode_Fazer_Compras] == 0)
    {
        SendClientMessage(playerid, Vermelho, "Vocк nгo estб em uma Loja");
        return 1;
    }
   
    new
        Item
    ;

    if (sscanf(params, "i", Item))
    {
        SendClientMessage(playerid, Laranja, "Use: /Comprar [Id do Item]");
    }
   
    SendClientMessage(playerid, Vermelho, "----------------Loja----------------");
    SendClientMessage(playerid, Branco  , "[1] - Carteira de Motorista");
    SendClientMessage(playerid, Branco  , "[2] - Quentinha");
    SendClientMessage(playerid, Branco  , "[3] - Celular");
    SendClientMessage(playerid, Vermelho, "------------------------------------");
   
    if ( Item > 3 || Item < 0 )
    {
        SendClientMessage(playerid, Branco, "Nъmero de Item Invбlido");
        return 1;
    }
   
    if(Item == 1)
    {
        if(!(GetPlayerMoney(playerid) >= 5000))
        {
            SendClientMessage(playerid, Vermelho, "Vocк nгo tem {FFFFFF}R$: 5000");
            return 1;
        }
        {
            pInfo[playerid][Licenciado] = 1;
            SendClientMessage(playerid, Laranja, "Vocк comprou uma Carteira de Motorista por {FFFFFF}R$: 5000");
            return 1;
        }
    }
   
    if(Item == 2)
    {
        SendClientMessage(playerid, Branco, "Item Indisponнvel no Momento.");
    }
    if(Item == 3)
    {
        SendClientMessage(playerid, Branco, "Item Indisponнvel no Momento.");
    }
    return 1;
}
Reply
#2

por que a cada item vocк estб retornando a 1?
Reply
#3

Por que й assim que eu faзo as verificaзхes po .
Reply
#4

tenta isso:

if(GetPlayerMoney(playerid) <= 5000)
Reply
#5

pelo que eu saiba nгo percisa retornar a 1 valor, para verificar alguma coisa й so retornar exemplo:

pawn Код:
return SendClientMessage(playerid,-1,"VOcк nгo tem a grana");
eu posso atй estar errado mais acho que o correto й assim, volto a dizer apreste atenзгo nos operadores. : P
Reply
#6

Pedro , й o return da verificaзгo do dinheiro que faz a lista de itens aparecer novamente ?
Reply
#7

Jб й o 3є post seu que eu falo praticamente a mesma coisa:

"Nгo esqueзa o return do sscanf, se vocк nгo retornar, a funзгo vai continuar mesmo estando incorreta."

Para isso que vocк quer, a melhor opзгo й switch.

pawn Код:
CMD:comprar(playerid, params [])
{
    if (pInfo[playerid][Pode_Fazer_Compras] == 0)
        return SendClientMessage(playerid, Vermelho, "Vocк nгo estб em uma Loja");
   
    new
        Item
    ;

    if (sscanf(params, "i", Item))
    {
        SendClientMessage(playerid, Vermelho, "----------------Loja----------------");
        SendClientMessage(playerid, Branco  , "[1] - Carteira de Motorista");
        SendClientMessage(playerid, Branco  , "[2] - Quentinha");
        SendClientMessage(playerid, Branco  , "[3] - Celular");
        SendClientMessage(playerid, Vermelho, "------------------------------------");
        return SendClientMessage(playerid, Laranja, "Use: /Comprar [Id do Item]");
    }

    SendClientMessage(playerid, Vermelho, "----------------Loja----------------");
    SendClientMessage(playerid, Branco  , "[1] - Carteira de Motorista");
    SendClientMessage(playerid, Branco  , "[2] - Quentinha");
    SendClientMessage(playerid, Branco  , "[3] - Celular");
    SendClientMessage(playerid, Vermelho, "------------------------------------");
   
    if ( Item > 3 || Item < 0 )
        return SendClientMessage(playerid, Branco, "Nъmero de Item Invбlido");

    switch ( Item )
    {
        case 1:
        {
            if(GetPlayerMoney(playerid) > 5000)
                return SendClientMessage(playerid, Vermelho, "Vocк nгo tem {FFFFFF}R$: 5000");
               
            pInfo[playerid][Licenciado] = 1;
            SendClientMessage(playerid, Laranja, "Vocк comprou uma Carteira de Motorista por {FFFFFF}R$: 5000");

            return 1;
        }
        case 2:
            return SendClientMessage(playerid, Branco, "Item Indisponнvel no Momento.");

        case 3:
            return SendClientMessage(playerid, Branco, "Item Indisponнvel no Momento.");
    }
   
    return 1;
}
Reply
#8

Oxe Los, nгo entendi NADA agora .
Reply
#9

Adaptei o Cуdigo do Los , fiz assim e deu certo :

pawn Код:
CMD:comprar(playerid, params [])
{
    if (pInfo[playerid][Pode_Fazer_Compras] == 0)
    {
        SendClientMessage(playerid, Vermelho, "Vocк nгo estб em uma Loja");
        return 1;
    }
   
    new
        Item
    ;

    if (sscanf(params, "i", Item))
    {
        SendClientMessage(playerid, Vermelho, "----------------Loja----------------");
        SendClientMessage(playerid, Branco  , "[1] - Carteira de Motorista");
        SendClientMessage(playerid, Branco  , "[2] - Quentinha");
        SendClientMessage(playerid, Branco  , "[3] - Celular");
        SendClientMessage(playerid, Vermelho, "------------------------------------");
        return SendClientMessage(playerid, Laranja, "Use: /Comprar [Id do Item]");
    }
   
    if ( Item > 3 || Item < 0 )
    {
        SendClientMessage(playerid, Branco, "Nъmero de Item Invбlido");
        return 1;
    }
   
    switch ( Item )
    {
        case 1:
        {
            if(GetPlayerMoney(playerid) < 5000)
            {
                SendClientMessage(playerid, Vermelho, "Vocк nгo tem {FFFFFF}R$: 5000");
                return 1;
            }

            pInfo[playerid][Licenciado] = 1;
            SendClientMessage(playerid, Laranja, "Vocк comprou uma Carteira de Motorista por {FFFFFF}R$: 5000");
            return 1;
        }
        case 2:
        {
            SendClientMessage(playerid, Branco, "Item Indisponнvel no Momento.");
        }
        case 3:
        {
            SendClientMessage(playerid, Branco, "Item Indisponнvel no Momento.");
        }
    }
    return 1;
}

Reply
#10

Quote:
Originally Posted by DAKOT4
Посмотреть сообщение
Oxe Los, nгo entendi NADA agora .
pawn Код:
CMD:comprar(playerid, params [])
{
    //Verificando se a variбvel do jogador й 0
    if (pInfo[playerid][Pode_Fazer_Compras] == 0)
        return SendClientMessage(playerid, Vermelho, "Vocк nгo estб em uma Loja");//retornando uma mensagem ao jogador e encerrando a funзгo
   
    new
        Item;//declarando a variбvel item

    if (sscanf(params, "i", Item))//processando a variбvel item
    {
        SendClientMessage(playerid, Vermelho, "----------------Loja----------------");
        SendClientMessage(playerid, Branco  , "[1] - Carteira de Motorista");
        SendClientMessage(playerid, Branco  , "[2] - Quentinha");
        SendClientMessage(playerid, Branco  , "[3] - Celular");
        SendClientMessage(playerid, Vermelho, "------------------------------------");
        return SendClientMessage(playerid, Laranja, "Use: /Comprar [Id do Item]");//enviando mensagens de ajuda e encerrando a funзгo, pois o jogador errou os parвmetros.
    }

    SendClientMessage(playerid, Vermelho, "----------------Loja----------------");//enviando mensagens de ajuda com nъmero dos itens para o jogador
    SendClientMessage(playerid, Branco  , "[1] - Carteira de Motorista");
    SendClientMessage(playerid, Branco  , "[2] - Quentinha");
    SendClientMessage(playerid, Branco  , "[3] - Celular");
    SendClientMessage(playerid, Vermelho, "------------------------------------");
   
    if ( Item > 3 || Item < 0 )//checando se o valor de item й maior que 3 ou menor do que 0
        return SendClientMessage(playerid, Branco, "Nъmero de Item Invбlido");//caso for, retorna a mensagem e encerra a funзгo

    switch ( Item )//Informa que vocк quer selecionar a variбvel Item e quer checar ela
    {
        case 1://caso o valor da variбvel Item for 1 ela continua abaixo
        {
            if(GetPlayerMoney(playerid) < 5000)//checa se o dinheiro do jogador й menor do que 5000
                return SendClientMessage(playerid, Vermelho, "Vocк nгo tem {FFFFFF}R$: 5000");//caso for encerra a funзгo informando que o jogador nгo tem dinheiro suficiente
               
            pInfo[playerid][Licenciado] = 1;//altera a variavel do jogador para 1
            SendClientMessage(playerid, Laranja, "Vocк comprou uma Carteira de Motorista por {FFFFFF}R$: 5000");//envia uma mensagem ao jogador, informando que comprou o item

            return 1;//encerra a funзгo
        }
        case 2://caso o valor for 2 continua abaixo
            return SendClientMessage(playerid, Branco, "Item Indisponнvel no Momento.");//encerra a funзгo e informa que o item estб indisponнvel

        case 3://caso o valor for 3
            return SendClientMessage(playerid, Branco, "Item Indisponнvel no Momento.");//encerra a funзгo e informa que o item estб indisponнvel
    }

    return 1;//encerra a funзгo
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)