[Ajuda] Dialog sem funзгo
#1

Olб, eu estava aqui desenvolvendo meu sistema de eventos, e quando apareceu a dialog pra escolher se era corrida ou apй eu clicava e acontecia mais nada, e eu puis as funзхes na callback OnDialogResponse, sabem como me ajuda ?
Reply
#2

poste os cуdigos...
Reply
#3

pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_EVENTO)
    {
        if(response)
        {
            ShowPlayerDialog(playerid, DIALOG_CORRIDA, DIALOG_STYLE_MSGBOX, "{CD3333}Evento", "Qual tipo de corrida deseja realizar?", "Normal", "Checkpoint");
        }
        else
        {
            ToEvento[playerid] = true;
            EventoFechado = 0;
            TotalPlayers++;
       
            TipoEvento = 1;
            EventoFechado = 0;
            GetPlayerPos(playerid, evx, evy, evz);
            format(estr, 128, "[CVoEventos] Evento criado com sucesso. [Vagas: %d]", TotalVagas);
            SendClientMessage(playerid, COR_CORRECAO, estr);
           
            format(estr, 128, "~b~~h~~h~Comandos: ~w~Off");
            PlayerTextDrawSetString(playerid, evento1, estr);
           
            format(estr, 128, "~b~~h~~h~Checkpoints: ~w~0");
            PlayerTextDrawSetString(playerid, evento2, estr);
           
            format(estr, 128, "~b~~h~~h~Vagas: ~w~%d/%d", TotalPlayers, TotalVagas);
            PlayerTextDrawSetString(playerid, evento3, estr);
           
            format(estr, 128, "~b~~h~~h~Tipo: ~w~Apй");
            PlayerTextDrawSetString(playerid, evento4, estr);
           
            format(estr, 128, "~b~~h~~h~Status: ~w~Aberto");
            PlayerTextDrawSetString(playerid, evento5, estr);
           
            PlayerTextDrawShow(playerid, evento1);
            PlayerTextDrawShow(playerid, evento2);
            PlayerTextDrawShow(playerid, evento3);
            PlayerTextDrawShow(playerid, evento4);
            PlayerTextDrawShow(playerid, evento5);
        }
    }
    return 1;
}
Reply
#4

poste o comando do evento e o dialogid do Dialog_CORRIDA
Reply
#5

Nгo existe, estou deixando ele pra depois, mas a dialog de Apй como pode ver ali estб tudo certinho, mas quando chega no servidor nгo chama nenhuma funзгo.
Reply
#6

pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_EVENTO)
    {
        if(response)
        {
            ShowPlayerDialog(playerid, DIALOG_CORRIDA, DIALOG_STYLE_MSGBOX, "{CD3333}Evento", "Qual tipo de corrida deseja realizar?", "Normal", "Checkpoint");
            return 1;
        }
        if(!response)
        {
            ToEvento[playerid] = true;
            EventoFechado = 0;
            TotalPlayers++;

            TipoEvento = 1;
            EventoFechado = 0;
            GetPlayerPos(playerid, evx, evy, evz);
            format(estr, 128, "[CVoEventos] Evento criado com sucesso. [Vagas: %d]", TotalVagas);
            SendClientMessage(playerid, COR_CORRECAO, estr);

            format(estr, 128, "~b~~h~~h~Comandos: ~w~Off");
            PlayerTextDrawSetString(playerid, evento1, estr);

            format(estr, 128, "~b~~h~~h~Checkpoints: ~w~0");
            PlayerTextDrawSetString(playerid, evento2, estr);

            format(estr, 128, "~b~~h~~h~Vagas: ~w~%d/%d", TotalPlayers, TotalVagas);
            PlayerTextDrawSetString(playerid, evento3, estr);

            format(estr, 128, "~b~~h~~h~Tipo: ~w~Apй");
            PlayerTextDrawSetString(playerid, evento4, estr);

            format(estr, 128, "~b~~h~~h~Status: ~w~Aberto");
            PlayerTextDrawSetString(playerid, evento5, estr);

            PlayerTextDrawShow(playerid, evento1);
            PlayerTextDrawShow(playerid, evento2);
            PlayerTextDrawShow(playerid, evento3);
            PlayerTextDrawShow(playerid, evento4);
            PlayerTextDrawShow(playerid, evento5);
            return 1;
        }
    }
    return 1;
}

CMD:irevento(playerid, params[])
{
    SetPlayerPos(playerid, evx, evy, evz);
    ResetPlayerWeapons(playerid);
    SendClientMessage(playerid, -1, "Vocк estб no evento, use /sairevento quando quiser sair!");
    GameTextForPlayer(playerid, "~r~Use ~y~/sairevento ~r~para sair !", 5000, 3);
    return 1;
}
CMD:criarevento(playerid, params[])
{
    ShowPlayerDialog(playerid, DIALOG_EVENTO, DIALOG_STYLE_MSGBOX, "{CD3333}Evento", "Qual tipo de evento deseja criar?", "Corrida", "Apй");
    return 1;
}
adapta e faz um loop para setar para todos se tem evento disponivel..
Reply
#7

Isso jб estб criado no meu sistema, o erro й a callback OnDialogResponse nгo й chamada.
Reply
#8

Que estranho, mas o player consegue ir no evento de boa ? mas nгo aparece as info do evento? vк se tu botou no comando o id do dialog certo..

tente assim
pawn Код:
if(dialogid == DIALOG_EVENTO)
    {
        if(response)
        {
            switch(listitem)
            {
                case 0:
                {
                    ShowPlayerDialog(playerid, DIALOG_CORRIDA, DIALOG_STYLE_MSGBOX, "{CD3333}Evento", "Qual tipo de corrida deseja realizar?", "Normal", "Checkpoint");
                    return 1;
                }
                case 1:
                {
                    ToEvento[playerid] = true;
                    EventoFechado = 0;
                    TotalPlayers++;

                    TipoEvento = 1;
                    EventoFechado = 0;
                    GetPlayerPos(playerid, evx, evy, evz);
                    format(estr, 128, "[CVoEventos] Evento criado com sucesso. [Vagas: %d]", TotalVagas);
                    SendClientMessage(playerid, COR_CORRECAO, estr);

                    format(estr, 128, "~b~~h~~h~Comandos: ~w~Off");
                    PlayerTextDrawSetString(playerid, evento1, estr);

                    format(estr, 128, "~b~~h~~h~Checkpoints: ~w~0");
                    PlayerTextDrawSetString(playerid, evento2, estr);

                    format(estr, 128, "~b~~h~~h~Vagas: ~w~%d/%d", TotalPlayers, TotalVagas);
                    PlayerTextDrawSetString(playerid, evento3, estr);

                    format(estr, 128, "~b~~h~~h~Tipo: ~w~Apй");
                    PlayerTextDrawSetString(playerid, evento4, estr);

                    format(estr, 128, "~b~~h~~h~Status: ~w~Aberto");
                    PlayerTextDrawSetString(playerid, evento5, estr);

                    PlayerTextDrawShow(playerid, evento1);
                    PlayerTextDrawShow(playerid, evento2);
                    PlayerTextDrawShow(playerid, evento3);
                    PlayerTextDrawShow(playerid, evento4);
                    PlayerTextDrawShow(playerid, evento5);
                    return 1;
                }
            }
        }
    }
e no comando do pra criar lб use DIALOG_STYLE_LIST com corrida na primeira opзгo e apй na segunda..
Reply
#9

Como eu disse, a callback nгo й chamada, ou seja nem ele vai pro evento, nгo aparece as infos, nada.
Reply
#10

Problema resolvido. Quem tiver enfrentando o mesmo problema clique aqui
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)