Dialog com players -
ChrisRock - 04.03.2014
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
Re: Dialog com players -
Dolby - 04.03.2014
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.
Re: Dialog com players -
ChrisRock - 04.03.2014
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
Re: Dialog com players -
Dolby - 04.03.2014
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.
Re: Dialog com players -
jovinon - 04.03.2014
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 i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i)
{
new nome[24], estring[40];
GetPlayerName(i, nome, 24);
format(estring, sizeof(estring), "ID: %i\t\tNick: %s", i, nome);
strcat(string, estring);
strcat(string, "\n");
}
else
{
strcat(string, "{FF0000}DESCONECTADO");
strcat(string, "\n");
}
}
Re: Dialog com players -
Dolby - 04.03.2014
@
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
Re: Dialog com players -
ChrisRock - 04.03.2014
Obrigado, consegui aqui.
Abs, agradeci aos 2 pela ajuda!