GetPlayerName -
Brasil0wna - 02.11.2015
Bom eu tava estudando aqui e vi um tutorial que citava [MAX_PLAYER_NAME] e ai resolvi procurar no ******, e acabei parando na SA-MP Wiki e achei esse cуdigo lб:
PHP код:
new name[MAX_PLAYER_NAME], string[24+MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), "%s entrou no servidor.", name);
SendClientMessageToAll(-1, string);
E eu nгo entendi umas coisas ai e queria que alguйm me ajudasse a interpretar, primeiro, se cria algo ali que esqueci o nome (por favor me digam o nome) para que aquele [MAX_PLAYER_NAME]? e depois string[24+MAX_PLAYER_NAME] nгo entendi essa parte, pra que 24+? e depois no GetPlayerName, os dois names que aparecem sгo os criados ali em cima ou um jб й parвmetro nativo dele? e pra que o sizeof(name)? E depois em baixo, nгo entendi a linha format. Por favor poderiam me ajudar, comecei a estudar programaзгo do zero, sem saber nada e decidi comeзar pelo pawn.
Re: GetPlayerName -
ipsLuan - 02.11.2015
Sizeof(string) - Determina que a cйlula terб a mesma quantidade que a variбvel string.
[24+MAX_PLAYER_NAME] - Determina que a cйlula terб 48 caracteres. (24 + 24).
Qualquer dъvida pode me perguntar.
Cumprimentos,
Luan Argolo.
Re: GetPlayerName -
Brasil0wna - 02.11.2015
Quote:
Originally Posted by ipsLuan
Sizeof(string) - Determina que a cйlula terб a mesma quantidade que a variбvel string.
[24+MAX_PLAYER_NAME] - Determina que a cйlula terб 48 caracteres. (24 + 24).
Qualquer dъvida pode me perguntar.
Cumprimentos,
Luan Argolo.
|
Obrigado, mas porque ele definiu 48 caracteres? 24 sгo do nick do player e os outros 24 da mensagem?
Re: GetPlayerName -
ipsLuan - 02.11.2015
Correto.
Re: GetPlayerName -
Brasil0wna - 02.11.2015
Quote:
Originally Posted by ipsLuan
Correto.
|
Obrigado pela ajuda.
Re: GetPlayerName -
s0nny - 02.11.2015
Esse cуdigo poderia ser mais poupбvel por redefiniзгo, nгo seria necessбrio criar duas variбveis pra isso:
Код:
static str[48];
GetPlayerName(playerid, str, 24);
format(str, 48, "%s entrou no servidor", str);
SendClientMessagetoall(-1, str);
Mas no fim das contas dб praticamente no mesmo, й uma boa alternativa quando for criar grandes strings, ao invйs de ter que criar duas grandes crie apenas uma e poupe heap size
Re: GetPlayerName -
Brasil0wna - 02.11.2015
Quote:
Originally Posted by s0nny
Esse cуdigo poderia ser mais poupбvel por redefiniзгo, nгo seria necessбrio criar duas variбveis pra isso:
Код:
static str[48];
GetPlayerName(playerid, str, 24);
format(str, 48, "%s entrou no servidor", str);
SendClientMessagetoall(-1, str);
Mas no fim das contas dб praticamente no mesmo, й uma boa alternativa quando for criar grandes strings, ao invйs de ter que criar duas grandes crie apenas uma e poupe heap size 
|
Porque vocк usou str 4 vezes? E pra que tem que colocar no comeзo e no fim do format? E qual a diferenзa da static pra normal string?
Re: GetPlayerName -
s0nny - 02.11.2015
Quote:
Originally Posted by Brasil0wna
Porque vocк usou str 4 vezes? E pra que tem que colocar no comeзo e no fim do format? E qual a diferenзa da static pra normal string?
|
Usei o str 4 vezes pois reutilizei o mesmo em todos os casos, siga a linha de raciocнnio:
1-variavel str й criada
2-variavel str recebe o nome do player (GetPlayerName)
3-variavel str й formatada para receber um novo valor (no inicio do format, mas seu conteъdo anterior nгo й apagado atй o format ser totalmente concluнdo).
4-variavel str й passada como parвmetro no final do format (pois seu valor anterior ainda nгo tinha sido apagado, portanto str ainda era o nome do player)
5-format concluido, o valor de str mudou para a a mensagem final, portanto sу resta enviar a mensagem com o conteъdo para todos