SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Português/Portuguese

Reply
 
Thread Tools Display Modes
Old 07/05/2019, 08:21 PM   #1
Felipe1241421
Big Clucker
 
Join Date: Jul 2016
Posts: 117
Reputation: 1
Default Setar nome em dialog

Bem, o seguinte: Eu estou tendo um problema em um determinado dialog. Eu não estou conseguindo getar o nome do player (Quando alguém digita um comando, exemplo: /Nome [Nome/ID], assim sendo, depois que ele digitar o comando, aparecer o nick que ele digitou no dialog).
__________________
Sei lá, bro...
Felipe1241421 is offline   Reply With Quote
Old 07/05/2019, 08:27 PM   #2
iAplle
Big Clucker
 
iAplle's Avatar
 
Join Date: Jul 2018
Location: São Paulo
Posts: 69
Reputation: 4
Default Re: Setar nome em dialog

Cade o código?
__________________
Code:
[GameMode] Gamemode BASE/RPG
iAplle is offline   Reply With Quote
Old 07/05/2019, 08:39 PM   #3
Felipe1241421
Big Clucker
 
Join Date: Jul 2016
Posts: 117
Reputation: 1
Default Re: Setar nome em dialog

Não tem um código, creio que não precise. Tipo, só estou com dúvida nisso. Se ele digitar o comando dito acima, o nome que ele digitou aparecera no dialog.
__________________
Sei lá, bro...
Felipe1241421 is offline   Reply With Quote
Old 07/05/2019, 08:57 PM   #4
MultiKill
High-roller
 
Join Date: Apr 2014
Posts: 1,685
Reputation: 110
Default Re: Setar nome em dialog

Se estiver usando sscanf, basta pegar o id retornado e verificar se está online.

Caso esteja use a função GetPlayerName para pegar o nome do jogador pelo id informado, formatar uma mensagem ou usar direto no diálogo.Usando a função ShowPlayerDialog.

Caso queira ainda formatar a mensagem basta usar format.


Caso não esteja usando sscanf e esteja usando strtok ou outra coisa, você deverá verificar se foi informado um id (verificando se é um número) ou um nome. Caso for nome deverá fazer um loop e verificar se existe algum jogador com este nome.

Exemplos:
PHP Code:
#define ID_DO_DIALOGO 0
ShowPlayerDialog(playeridID_DO_DIALOGODIALOG_STYLE_MSGBOX"Titulo""Bem-vindo""Fechar"""); 
PHP Code:
new nome[MAX_PLAYER_NOME];
GetPlayerName(playeridnomesizeof nome);

new 
st[50];
format(stsizeof st"Olá %s"nome);
SendClientMessage(playerid, -1st); 
Não entendi muito bem se é nessa parte que está sua dúvida.
MultiKill is offline   Reply With Quote
Old 07/05/2019, 10:12 PM   #5
Felipe1241421
Big Clucker
 
Join Date: Jul 2016
Posts: 117
Reputation: 1
Default Re: Setar nome em dialog

Como posso dizer ;-;
Vou colocar um exemplo:
Code:
if(dialogid == 1213)
	{
		if(response)
		{
			new templayer = 0, msg[120], Jogador[24], string[128];
			for(new i = 0; i < MAX_PLAYERS; i++)
			{
			    format(msg,sizeof(msg), "%s [ID %d]\n", Jogador, i);
				strcat(string, msg, sizeof(string));
				templayer++;
			}
			if(templayer == 0)
			{
				ShowPlayerDialog(playerid, 1213, DIALOG_STYLE_MSGBOX, "Jogadores colocados na Lista", "Nenhum jogador na lista!", "Fechar", "");
			}
			else
			{
				ShowPlayerDialog(playerid, 1213, DIALOG_STYLE_MSGBOX, "Jogadores colocados na Lista", string, "Fechar", "");
			}
		}
	}
// Comando
CMD:player(playerid)
{
// AQUI
	ShowPlayerDialog(playerid, 1213, DIALOG_STYLE_MSGBOX, "Jogadores colocados na Lista", "Nenhum jogador na lista!", "Fechar", "");
	return true;
}
Se ele digitar o comando '/player [ID/Nome]', aparecerá no dialog o ID ou Nome que ele colocou. Conseguiu me entender?!
__________________
Sei lá, bro...
Felipe1241421 is offline   Reply With Quote
Old 07/05/2019, 10:33 PM   #6
MultiKill
High-roller
 
Join Date: Apr 2014
Posts: 1,685
Reputation: 110
Default Re: Setar nome em dialog

Nesse caso você precisará usar uma array para ir acrescentando os nomes.

Você irá precisar de uma array com 3 dimensões, exemplo:
PHP Code:
new Lista[MAX_PLAYERS][MAXIMO_DE_NICKS][MAX_PLAYER_NAME]; 
No caso se for por exemplo salvar essa lista, mas claro deseje que seja só com jogadores online só irá precisar armazenar o id.

Exemplo:
PHP Code:
strcat(Lista[playerid][0], "Player_01"sizeof(Lista[][]));

//para verificar se esta vazio:
if(Lista[playerid][0][0] == '\0'){
    
//esta vazia
}

//para remover
Lista[playerid][0][0] = '\0'

É apenas um exemplo, para isso você vai precisar rodar um loop verificar se tem algum slot vazio para armazenar o nome, e usar strcat para armazenar.

E para pegar os nomes, só fazer um loop pelos slots verificar se não esta vazio e caso não esteja colocar no diálogo para mostrar.

Se for só com jogadores online (caso o jogador desconecte do servidor saia da lista) só usar uma array e indo armazenado os ids ao invés do nome.

Vou mostrar a lógica:
PHP Code:
/*
No comando{
    loop{
        //verifica se esta vazio
        array[playerid][variavel_loop][0] == '\0'{
             adiciona nesse slot
             para o loop
        }
    }
}
*/

Para mostrar a parir da array:

string_maior[];
string_menor[]

loop{
    
//verifica se não esta vazio
    
array[playerid][variavel_loop][0] != '\0'{
        
formata(string_menor"%s\n", array[playerid][variavel_loop]);
        
concatena(string_maiorstring_menor)
    }
}
Mostra_dialogo(string_maior
Essa é a lógica para armazenar os nomes em uma array e mostrar no diálogo.
MultiKill is offline   Reply With Quote
Old 08/05/2019, 12:55 AM   #7
Felipe1241421
Big Clucker
 
Join Date: Jul 2016
Posts: 117
Reputation: 1
Default Re: Setar nome em dialog

Acho que é isto, vou tentar aqui. Obrigado, +rep.
__________________
Sei lá, bro...
Felipe1241421 is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Ajuda] É possível setar uma string no dialog? sKYFallout Português/Portuguese 5 11/11/2016 09:40 AM
[Pedido] Dialog Para Setar em skin shadauer Português/Portuguese 2 18/02/2015 04:34 PM
[AJUDA]Setar nome do arquivo PGD Detonador Português/Portuguese 10 30/04/2012 04:30 PM
[Tutorial] Como fazer comando /Skin trocando o nome pelo o numero ou nome que deseja setar a skin ViCtOr_Mc Lançamentos/Releases 23 19/09/2011 07:34 PM


All times are GMT. The time now is 08:30 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.