[Ajuda] GetPlayerName
#1

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(playeridnamesizeof(name));
    
format(stringsizeof(string), "%s entrou no servidor."name);
    
SendClientMessageToAll(-1string); 
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.
Reply
#2

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.
Reply
#3

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?
Reply
#4

Correto.
Reply
#5

Quote:
Originally Posted by ipsLuan
Посмотреть сообщение
Correto.
Obrigado pela ajuda.
Reply
#6

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
Reply
#7

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?
Reply
#8

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
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)