[Ajuda] Dialogos Em Lista Nгo Funcionam
#1

Bom, vou direto ao assunto:
Eu estou criando um sistema de empregos em DIALOG_STYLE_LIST. Й igual alguns outros, o player digita "/empregos" na agencia de empregos e o dialogo aparece.
O problema, й que quando o player seleciona o emprego, nгo acontece nada, nem a mensagem que eu coloco pra aparecer aparece, o dialogo simplesmente fecha e nada acontece.

Aqui estб o cуdigo:

pawn Код:
//DEFINES=======================================================================
#define                             C_Caminhoneiro                              0xFFFFFFFF
#define                             DIALOGO_EMPREGOS                            1
//C_Caminhoneiro = Cor dos caminhoneiros
//DIALOGO_EMPREGOS = Define o dialogo 1 em DIALOGO_EMPREGOS
//==============================================================================

//ENUMS=========================================================================
//ENUM pInfo--------------------------------------------------------------------
enum pInfo //ENUMERADOR DO SISTEMA DE EMPREGOS
{
    pEmprego,
};
new PlayerInfo[MAX_PLAYERS][pInfo];
//------------------------------------------------------------------------------
//==============================================================================

public OnPlayerCommandText(playerid, cmdtext[])
{
//COMANDO /EMPREGOS-------------------------------------------------------------
    if(strcmp(cmdtext, "/empregos", true) == 0)
    {
        if(IsPlayerInRangeOfPoint(playerid, 2.0, 2309.2161, -8.5345, 26.7422))
        {
            ShowPlayerDialog(playerid, DIALOGO_EMPREGOS, DIALOG_STYLE_LIST, "Empregos", "Caminhoneiro\n", "Selecionar", "Cancelar");
        }
        else
        {
            SendClientMessage(playerid, 0xFF0000C8, "[ x ] Vocк Nгo Estб Na Agencia de Empregos!");
        }
    }
        return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOGO_EMPREGOS)
    {
        if(response)
        {
            if(listitem == 0)
            {
                SendClientMessage(playerid, C_Caminhoneiro, "[ B.V.V. Empregos ] Vocк Virou Um Caminhoneiro!");
                PlayerInfo[playerid][pEmprego] = 1; //esse 1 й o ID da profissгo de caminhoneiro.
                return 1;
            }
        }
    }
    return 0;
}
Por Favor me ajudem, jб tentei usar a search mas nгo achei nada a respeito.
PS: Sou iniciante em Pawn.
Reply
#2

Tenso.
fiz o teste aqui no meu e funcionou corretamente.
o erro nгo esta nesse cуdigo.
Reply
#3

nao se esqueзa que tem de estar num raio de 2.0 destas cordenadas 2309.2161, -8.5345, 26.7422
Reply
#4

Utiliza este comando no jogo e depois digita /empregos sem se mover de lб.
Se funcionar e por que vocк estava longe do comando, se caso nгo ai o problema nгo й no comando e sim em outro script.
pawn Код:
if(strcmp(cmdtext, "/irempregos", true) == 0)
{
    SetPlayerPos(playerid, 2309.2161, -8.5345, 26.7422);
    SetPlayerInterior(playerid, 0);
    return 1;
}
Se caso funcionar altere esta linha:
pawn Код:
if(IsPlayerInRangeOfPoint(playerid, 2.0, 2309.2161, -8.5345, 26.7422))
Para:
pawn Код:
if(IsPlayerInRangeOfPoint(playerid, 4.0, 2309.2161, -8.5345, 26.7422))
Aumentei o tempo de distвncia do ponto onde poderб dar /empregos.
Reply
#5

Quote:
Originally Posted by willttoonn
Посмотреть сообщение
Utiliza este comando no jogo e depois digita /empregos sem se mover de lб.
Se funcionar e por que vocк estava longe do comando, se caso nгo ai o problema nгo й no comando e sim em outro script.
pawn Код:
if(strcmp(cmdtext, "/irempregos", true) == 0)
{
    SetPlayerPos(playerid, 2309.2161, -8.5345, 26.7422);
    SetPlayerInterior(playerid, 0);
    return 1;
}
Se caso funcionar altere esta linha:
pawn Код:
if(IsPlayerInRangeOfPoint(playerid, 2.0, 2309.2161, -8.5345, 26.7422))
Para:
pawn Код:
if(IsPlayerInRangeOfPoint(playerid, 4.0, 2309.2161, -8.5345, 26.7422))
Aumentei o tempo de distвncia do ponto onde poderб dar /empregos.
Isso nгo resolve nada, pois a dialog й chamada corretamente, so nгo estб respondendo a opзгo selecionada.
Reply
#6

Apaga:
pawn Код:
if(dialogid == DIALOGO_EMPREGOS)
    {
        if(response)
        {
            if(listitem == 0)
            {
                SendClientMessage(playerid, C_Caminhoneiro, "[ B.V.V. Empregos ] Vocк Virou Um Caminhoneiro!");
                PlayerInfo[playerid][pEmprego] = 1; //esse 1 й o ID da profissгo de caminhoneiro.
                return 1;
            }
        }
    }
E substitui por
pawn Код:
else if(dialogid == DIALOGO_EMPREGOS) // Vк qual ele escolheu
    {
        if(response)
        {
            switch(listitem)
            {
                case 0: ShowPlayerDialog(playerid, EMPREGO_CAMINHONEIRO); // Caminhoneiro
            }
        }
    }
else if(dialogid == EMPREGO_CAMINHONEIRO) // Vк qual ele escolheu
    {
        if(response)
        {
            SendClientMessage(playerid, C_Caminhoneiro, "[ B.V.V. Empregos ] Vocк Virou Um Caminhoneiro!");
                PlayerInfo[playerid][pEmprego] = 1; //Seta o emprego.
                return 1;
        }
        }
Reply
#7

Quote:
Originally Posted by willttoonn
Посмотреть сообщение
Apaga:
pawn Код:
if(dialogid == DIALOGO_EMPREGOS)
    {
        if(response)
        {
            if(listitem == 0)
            {
                SendClientMessage(playerid, C_Caminhoneiro, "[ B.V.V. Empregos ] Vocк Virou Um Caminhoneiro!");
                PlayerInfo[playerid][pEmprego] = 1; //esse 1 й o ID da profissгo de caminhoneiro.
                return 1;
            }
        }
    }
E substitui por
pawn Код:
else if(dialogid == DIALOGO_EMPREGOS) // Vк qual ele escolheu
    {
        if(response)
        {
            switch(listitem)
            {
                case 0: ShowPlayerDialog(playerid, EMPREGO_CAMINHONEIRO); // Caminhoneiro
            }
        }
    }
else if(dialogid == EMPREGO_CAMINHONEIRO) // Vк qual ele escolheu
    {
        if(response)
        {
            SendClientMessage(playerid, C_Caminhoneiro, "[ B.V.V. Empregos ] Vocк Virou Um Caminhoneiro!");
                PlayerInfo[playerid][pEmpreifgo] = 1; //Seta o emprego.
                return 1;
        }
        }
Isso concerteza irб dar erros no script, vocк nгo colocou todos os parametros de uma dialog ali, entгo, tente assim:

pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
      if(dialogid == DIALOGO_EMPREGOS) {
           if(response) {
              switch(listitem) {
                  case 0: SendClientMessage(playerid, C_Caminhoneiro, "[ B.V.V. Empregos ] Vocк Virou Um Caminhoneiro!"), PlayerInfo[playerid][pEmprego] = 1;
              }
           }
       }
       return 1;
}
Reply
#8

Quote:
Originally Posted by .FuneraL.
Посмотреть сообщение
Isso concerteza irб dar erros no script, vocк nгo colocou todos os parametros de uma dialog ali, entгo, tente assim:

pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
      if(dialogid == DIALOGO_EMPREGOS) {
           if(response) {
              switch(listitem) {
                  case 0: SendClientMessage(playerid, C_Caminhoneiro, "[ B.V.V. Empregos ] Vocк Virou Um Caminhoneiro!"), PlayerInfo[playerid][pEmprego] = 1;
              }
           }
       }
       return 1;
}
E acho que esse
pawn Код:
else if(dialogid == DIALOGO_EMPREGOS)
nгo seria o mais adequado para o script.
Reply
#9

Quote:
Originally Posted by Coe1
Посмотреть сообщение
E acho que esse
pawn Код:
else if(dialogid == DIALOGO_EMPREGOS)
nгo seria o mais adequado para o script.
Sу й utilizado "if" no OnDialogResponse que eu saiba
Reply
#10

Quote:
Originally Posted by .FuneraL.
Посмотреть сообщение
Sу й utilizado "if" no OnDialogResponse que eu saiba
Nгo funcionou, mas jб bolei um jeito de o player pegar o emprego com um comando, e atй achei melhor porque assim do jeito mais difнcil eu aprendo mais.


Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)