[Ajuda] Dialog com players
#1

Olб meus amiguinhos, estou querendo estudar isso e nгo achei em lugar nenhum.

Quero fazer um dialog_style_list com tais players que estejam com tais variбveis online no momento, porйm nгo sei como devo proceder no DialogResponse...

Por exemplo, quero que, quando clicar num player do diбlogo, eu possa ligar pra ele com o telefone pelo jogo...
Alguйm poderia me explicar como posso colocar nas funзхes?

Espero que dк pra entender, bjks
Reply
#2

pawn Код:
new string[400];
for(new i = 0; i < MAX_PLAYERS; i++)
{
    if(IsPlayerConnected(i) {
        new nome[24];
        GetPlayerName(i, nome, 24);
        strcat(string, nome);
        strcat(string, "\n");
    }
}
ShowPlayerDialog(playerid, 5410, DIALOG_STYLE_LIST, "Lista de jogadores",string,"Ok","");
Essa й a lуgica de exibir os players online, aliбs, esse й o cуdigo pronto pra falar a verdade.

Agora basta modificar a condiзгo, verificando se o jogador i tem essa variбvel, e depois, armazenar o ID dele em uma variбvel secundбria, que pode ser obtida no DialogResponse.
Reply
#3

Quote:
Originally Posted by Dolby
Посмотреть сообщение
pawn Код:
new string[400];
for(new i = 0; i < MAX_PLAYERS; i++)
{
    if(IsPlayerConnected(i) {
        new nome[24];
        GetPlayerName(i, nome, 24);
        strcat(string, nome);
        strcat(string, "\n");
    }
}
ShowPlayerDialog(playerid, 5410, DIALOG_STYLE_LIST, "Lista de jogadores",string,"Ok","");
Essa й a lуgica de exibir os players online, aliбs, esse й o cуdigo pronto pra falar a verdade.

Agora basta modificar a condiзгo, verificando se o jogador i tem essa variбvel, e depois, armazenar o ID dele em uma variбvel secundбria, que pode ser obtida no DialogResponse.
Isso eu consegui, o que eu nгo sei й o que eu tenho que colocar no DialogResponse...
faz pra exibir uma mensagem quando clicar no jogador, sу pra eu ter uma noзгo
Reply
#4

pawn Код:
new nListitem[MAX_PLAYERS]; //Global


new string[400];
new nLista;
for(new i = 0; i < MAX_PLAYERS; i++)
{
    if(IsPlayerConnected(i) {
       
        new nome[24];
        nListitem[nLista++] = i;
        GetPlayerName(i, nome, 24);
        strcat(string, nome);
        strcat(string, "\n");
    }
}
ShowPlayerDialog(playerid, 5410, DIALOG_STYLE_LIST, "Lista de jogadores",string,"Ok","");

//Dialog Response:

if(dialogid == 5410)
{
    new sText[100];
    format(sText, 100, "Vocк clicou no player de ID: %d", nListitem[listitem]);
    SendClientMessage(playerid, -1, sText);
}
Nгo se esqueзa de declarar nListitem como variбvel global.
Reply
#5

Seguindo a lуgica do que foi feito pelo Dolby, a lista de jogadores exibida no dialog serб feita em ordem crescente de ID, sendo:

Primeiro jogador (listitem = 0) = ID 0 (caso conectado)
Segundo jogador (listitem = 1) = ID 1 (caso conectado)

Pode ocorrer o seguinte problema:
IDs conectado no server: 1, 2, 3, 5, 6 e 7, ou seja, temos players de ID 1 a 7 conectados, exceto o ID 4 e 0
Logo, o listitem vai mudar.

Para facilitar a sua vida, eu recomendo usar o OnPlayerClickPlayer, assim vocк escolhe o jogador pelo TAB para fazer a ligaзгo. Caso queira usar essa maneira, recomendo alterar a maneira de criar o dialog.

Uma das maneiras seria: listar os IDs conectador, ficando mais ou menos assim o DIALOG:
Quote:

ID Nick
0 jovinon
1 Neefas
2 "DESCONECTADO"
3 Admin
4 "DESCONECTADO"

Ficaria mais ou menos assim:

PHP код:
new string[400];
for(new 
0MAX_PLAYERSi++)
{
    if(
IsPlayerConnected(i
    {
        new 
nome[24], estring[40];
        
GetPlayerName(inome24);
        
format(estringsizeof(estring), "ID: %i\t\tNick: %s"inome);
        
strcat(stringestring);
        
strcat(string"\n");
    }
    else
    {
        
strcat(string"{FF0000}DESCONECTADO");
        
strcat(string"\n");
    }

Reply
#6

@jovinon: no cуdigo que fiz, ele tambйm 'pula' ID's desconectados, nгo havendo a necessidade de exibi-los no dialog.

Para isto servem as variбveis nListitem e nLista
Reply
#7

Obrigado, consegui aqui.
Abs, agradeci aos 2 pela ajuda!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)