11.11.2011, 21:28
Strings how to...
IntroduзгoBem hoje vim fazer um simples tutorial de como usar bem a string, lembrando que й mais a minha maneira, como eu aprendi, estarei ensinando as coisas detalhadamente para que vocкs entendem o que й uma string e como usar, entгo vamos lб.
O que й uma string?
Strings sгo variбveis que podem armazenar palavras e letras em si, como por exemplo, sistema de save de senhas, nomes de jogadores, frases, etc...
Como usar uma string?
Bem primeiro vocк terб que defenir ela, vocк tem 2 Opзхes, 1є Vocк pode defenir a string como uma variavel global, ou seja, ele pode ser usada em varios locais, 2є Vocк pode defenir a string para usar sу naquele local, agora vocк pensa, Como? Simples, para defenir global basta criar uma varriavel (array) no topo do GM.
pawn Код:
new mystring[128];
pawn Код:
CMD:my_nick(playerid,params[])
{
new myname[36];
GetPlayerName(playerid,myname,sizeof(myname);
format(myname,sizeof(myname),"Seu nome й: %s",myname);
SendClientMessage(playerid,-1,myname);
return true;
}
Como criar uma string?
Para criar a string vocк deverб comeзar por criar uma variavel normal, com o nome que desejar, de preferivel pequeno, depois vocк terб que adicionar o numero de celulas, ou seja, cada celula corrusponde a um caracter, veja um exemplo.
pawn Код:
new myname[36];
GetPlayerName(playerid,myname,sizeof(myname);
format(myname,sizeof(myname),"Seu nome й: %s",myname);
SendClientMessage(playerid,-1,myname);
A string tem 36 Celulas, vocк pensa, porque nгo usar 256? Porque vocк vai usar sу 36, eu usei a string para fazer duas coisas, pegar o nome, e formatar a mensagem, 1є Coisa, pelo que dizem o "MAX_PLAYER_NAME" й igual a 24 celulas, entгo eu coloquei 24, depois contei quantos caracters tem a mensagem (Contando com os espaзos, pois eles sгo considerados caracteres) e reparei que tem 12 (O %s й a string, e neste caso serб o nome do player que й 24 caracteres no maximo), entгo fiz a soma de 24+12 e deu me 36, entгo ao fazer esta string, sei que irei usar todas as celulas, logo depois adicionei a funзгo para pegar o nome do player, e gastei 24 celulas jб, depois formatei a mensagem e gastei + 12 celulas, por fim, mandei uma mensagem formatada para o player.
Vejamos outros tipos de exemplos
pawn Код:
new my_string[6] = "BlueX"
public OnFilterScriptInit()
{
printf("%s",my_string);
}
Agora vamos para algo mais avanзado.
pawn Код:
CMD:aan(playerid,params[])
{
new my_name[164];
GetPlayerName(playerid,my_name,24)
if(params[0] == 1)
return SendClientMessage(playerid,-1,"USE: /aan [texto]");
if(!IsPlayerAdmin(playerid))
return SendClientMessage(playerid,-1,"Vocк nгo й admin");
format(my_name,sizeof(my_name),"<Admin %s>: %s",my_name,params);
return SendClientMessageToAll(-1,my_name),true;
}
Conculsгo
Vocк pode criar dois tipos de strings (Global ou "privada") ao criar vocк deve ter em nota o valor para com que nenhuma celula seja desperdiзada, sendo assim vocк deverб contar os caracteres para que tenha um valor exato.
Espero que tenha gostado deste tutorial.