[Ajuda] Dialog
#3

Quote:
Originally Posted by Kuddy
Посмотреть сообщение
Completamente errado, Dri.

Para contar os players que clicaram vocк precisa contar os players. Para contar, iremos usar uma variбvel e iremos checar se a contagem й menor do que 10.

Para comeзar, zcmd nгo fica dentro de callbacks. Coloque ela solta no gamemode (fora de qualquer chave):
pawn Код:
CMD:wipeout(playerid, params[])
{
    if(PlayerInfo[playerid][pAdminLevel] >= 3)
    {
          for(new i=0; i < MAX_PLAYERS; i++)
          {
            // Trocaremos o playerid por "i" pois nos estamos usando i no loop e nao playerid. Playerid no caso seria o player que digitou o comando, 'i' seria o que o nosso loop percorre, no caso ele tem a instruзao de percorrer todos os players
            ShowPlayerDialog(i,DIALOG_WIPEOUT, DIALOG_STYLE_MSGBOX, "Wipeout", "O administrador comeзou um evento de Wipeout. Deseja ir?", "Sim", "Nгo");
          }
          return 1;
    }
    return 1;
}
Agora iremos criar nossa variбvel. Geralmente colocamos elas junto das outras, e geralmente elas ficam no topo do gamemode, logo apуs as defines:
pawn Код:
new contagemEvento;
Agora iremos fazer o "processamento" da dialog:

pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_WIPEOUT)
    {
        if(response)
        {
            if (contagemEvento <= 10)
            {
                SendClientMessage(playerid, COLOR_GREEN, "O evento vai comeзar em breve!");
                SetPlayerPos(playerid,0.0,0.0,3.0);
                contagemEvento ++; // Esta funcao ira contar +1 na nossa variavel (nossa contagem).
                return 1;
            }
            else // Se o if acima nao for executado...
            {
                SendClientMessage(playerid, COLOR_RED, "Voce esta atrasado! 10 players ja foram ao evento.");
                return 1;
            }
        }
        else
        {
            SendClientMessage(playerid, COLOR_RED, "Vocк decidiu nгo ir ao evento.");
        }
        return 1;
    }

    return 1;
}
Mas esse cуdigo acima tem um problema. Depois que 10 players forem ao evento, nossa contagem nunca mais serб 0 ;/

Para resolver este erro de lуgica basta resetarmos a nossa variбvel no comando: contagemEvento = 0;
Cabe a vocк encontrar em que parte colocar este cуdigo

Qualquer dъvida й sу falar.

Vou explicar algumas coisas quanto ao uso dos returns:
returns encerram o bloco de cуdigo na hora. Por exemplo:

pawn Код:
CMD:mostra(playerid){
    print("Vai mostrar");
    print("Vai mostrar");
    print("Vai mostrar");
    return 1;
    print("Nгo vai mostrar");
    print("Nгo vai mostrar");
    print("Nгo vai mostrar");
}
Nesse caso o compilador vai atй dar um aviso falando que as funзхes abaixo do return nгo vгo ser executadas, pois й impossнvel delas serem executadas.
Obrigado pela ajuda
Reply


Messages In This Thread
Dialog - by MonstrinhoVerde - 06.12.2013, 09:12
Re: Dialog - by Kuddy - 06.12.2013, 11:21
Re: Dialog - by MonstrinhoVerde - 07.12.2013, 07:37

Forum Jump:


Users browsing this thread: 1 Guest(s)