Bem, neste tutorial irei explicar passo a passo como criar uma variбvel e como elas podem ser ъteis .
Considero este um tema muito importante na linguagem Pawn, por isso, leiam com atenзгo:
1 - O que sгo variбveis ?
Variбveis sгo sнmbolos criados para assumir algum valor, elas podem variar (daн o nome variбvel) dependendo de onde e de como estamos usando-as .
Em uma questгo de Matemбtica por exemplo, se ela diz que X = 2, entгo sabemos que quando o X aparecer em algum lugar da conta que fizermos, poderemos substituн-lo por 2.
Essa questгo de Matemбtica, como voce resolveria se a questгo dissesse que Y = 10 e voce tivesse que achar o valor de X ?
Considero este um tema muito importante na linguagem Pawn, por isso, leiam com atenзгo:
1 - O que sгo variбveis ?
Variбveis sгo sнmbolos criados para assumir algum valor, elas podem variar (daн o nome variбvel) dependendo de onde e de como estamos usando-as .
Em uma questгo de Matemбtica por exemplo, se ela diz que X = 2, entгo sabemos que quando o X aparecer em algum lugar da conta que fizermos, poderemos substituн-lo por 2.
Essa questгo de Matemбtica, como voce resolveria se a questгo dissesse que Y = 10 e voce tivesse que achar o valor de X ?
X = 3 + Y
E aн ? Quanto valeria o X ?
Resposta: X valeria 13, pois:
Resposta: X valeria 13, pois:
X = 3 + Y
Й igual б:
X = 3 + 10
que й igual б:
X = 13
Nгo entendeu ? Leia de novo .
2 - Variбveis na linguagem Pawn:
No Pawn, as variбveis sгo usadas em quase tudo .
Como exemplo, vamos restringir um comando chamado /pum, sу usando vбriavйis :
- Primeiro criamos uma variбvel:
- Código:
new Futebol;//Ao criarmos a variбvel, ela automaticamente ganha o valor 0.
- Agora vamos fazer com que ela ganhe um valor (4, por exemplo), ao usar qualquer comando (no caso, o comando /ei):
- Código:
if(strcmp("/ei",cmdtext,true,3)==0)
{
Futebol = 4;//Ao usar o comando /ei, a variбvel ganha valor igual б 4
return 1;
}
E finalmente, o comando /pum que querнamos restringir:
- Código:
if(strcmp("/pum",cmdtext,true,4)==0)
{
if(Futebol == 4)//Isso checarб se a variбvel "Futebol" й igual б 4, sу se for igual б 4, acontecerб o que tem dentro das chaves do if, ou seja, o print("PUMMM!");
{
print("PUMMM!");
}
return 1;
}
Agora vamos pensar..., a linha if(Futebol == 4) checou se variбvel й igual б 4 certo ?
Mas, tem um porйm aн, A VARIБVEL SУ SERБ 4 SE O CARA TIVER USADO O COMANDO /ei ANTES, POIS ELA SУ VIRA 4 QUANDO ESSE COMANDO Й USADO, LEMBRA ?
Viu ? , agora o comando /pum sу pode ser ativado se o comando /ei for usado antes, em outras palavras, ele estб restrito agora .
3 - Tipos de variбveis I (Locais e Globais) :
* Variбveis Locais.
Uma variбvel local sу pode ser usada em um ъnico lugar, por exemplo:
- Código:
if(strcmp("/afff",cmdtext,true,5)==0)
{
new TENSO; //A variбvel TENSO foi criada dentro do comando /afff
return 1;
}//A variбvel TENSO й destruнda quando esta chave й lida apуs o processamento do comando.
Se a variбvel foi criada dentro do comando /afff e destruнda quando a chave foi lida, entгo nem podemos pensar em usar a TENSO em outro comando, pois ela sу й criada dentro do comando /afff e destruнda no final dele.
Por isso chamados esse tipo de variбvel de Variбvel Local, pois sу podemos usб-la em um local do GM/FS (no caso acima, sу poderнamos usar a variбvel dentro do comando, e antes do final dele ).
* Variбveis Globais.
As globais normalmente sгo criadas no Topo do GM ou FS, um lugar que й livre de chaves que possam destruir essas variбveis.
Se criamos uma variбvel no Topo do GM, por exemplo:
- Código:
new PQP;
Como ela estб no topo do GM e nгo foi destruнda por nenhuma chave, entгo podemos usa-lб em qualquer lugar do GM/FS que seja, sem precisar criб-la de novo pois ela jб existe no Topo do GM.
Se й assim, poderнamos usб-la em um comando:
- Código:
if(strcmp("/xiu",cmdtext,true,4)==0)
{
PQP = 3; //A variбvel jб foi criada no Topo do GM, por isso vamos igualб-la aqui no comando.
return 1;
}
Obs: Variбveis Globais nгo podem ser destruнdas por chaves de nenhuma public, comando etc.
4 - Tipos de variбveis II (new, static e const) :
* New
Mйtodo de criaзгo de uma variбvel comum, bastando colocar new + nome da variбvel + ponto e vнrgula :
Exemplo:
- Código:
new Eita; //variбvel criada.
* Static
Mйtodo de criaзгo de uma variбvel com uma caracterнstica especial: quando local ela nгo й destruнda :
Exemplo:
- Código:
if(strcmp("/noob",cmdtext,true,5)==0)
{
for(new x = 0; x < 5; x++)
{
static LOL;//Variбvel LOL й criada
LOL = 3;
}//Mesmo sendo local ela nгo й destruнda aqui. Por essa razгo, no prуximo giro do loop ela nгo й criada novamente e contйm o mesmo valor que tinha antes do momento no qual era para ser apagada.
return 1;
}
* Const
Mйtodo de criaзгo de uma constante, ou seja, uma variбvel que sempre terб o mesmo valor:
- Código:
const Pickup = 2;//Sempre terб o valor 2
Se depois for usado algo como:
- Código:
Pickup = 26;
O pawno gerarб um error pois nгo й possнvel mudar o valor de uma constante.
5 - Tags e Arrays :
*Tags
As Tags sгo formas de classificar uma variбvel com uma caracterista especial, elas normalmente aparecem na variбvel na forma de um complemento no comeзo do nome da mesma .
Float e bool sгo tags padrхes do Pawn.
Exemplo de uso de Float:
- Código:
new Float:Exemplo = 1.222; //Caracterista especial: conseguem se igualar б nъmeros fracionбrios.
Exemplo de uso de bool:
- Código:
new bool:Exemplo = true; //Caracterista especial: sу podem se igualar б dois valores, true e false.
*Arrays
Sгo multi-variбveis, com variбveis arrays й possнvel criar vбrias variбveis de uma vez sу .
Exemplo:
Ao invйs de usar:
- Código:
new Sanduiche1;
new Sanduiche2;
new Sanduiche3;
Pode se fazer com variбvel array :
- Código:
new Sanduiche[3];
Daн a igualaзгo seria assim:
- Código:
Sanduiche[0] = 1;
Sanduiche[1] = 1;
Sanduiche[2] = 1;
Ops, mas por que serб que nгo coloquei ali Sanduiche[3] = 1; ?
Por que nunca deve-se igualar uma variбvel no seu mбximo de cells permitidas, ou seja, como criamos assim:
- Código:
new Sanduiche[3];
Nгo poderemos usar:
- Código:
Sanduiche[3] = 1;
Apenas valores dentro dos colchetes [ ], que forem menores do que 3, pois a cell da array quando a criamos era 3 .
Mas mesmo assim, 3 valores da array foram igualados assim como seriam se tivessem sido criadas 3 variбveis comuns para cada valor.
Tambйm hб casos como:
Criamos uma variбvel array:
- Código:
new Sorriso[MAX_PLAYERS]; //Mesma coisa que VariavelArray[500];, pois MAX_PLAYERS estб definido assim no a_samp.inc
E a usamos como:
- Código:
Sorriso[playerid] = 1;
Ou seja, para cada ID diferente a variбvel vai ter um valor, por exemplo, se o playerid (ou ID no jogo) de um jogador й 5, entгo a variбvel ficaria assim quando fosse lida na execuзгo do jogo:
- Código:
Sorriso[5] = 1;
Pois, playerid = 5, no caso de um jogador, se fosse outro jogador de ID 9, entгo seria playerid = 9, entre outros.
Variбveis arrays tambйm sгo as ъnicas que podem armazenar texto, como por exemplo:
Variбveis arrays tambйm sгo as ъnicas que podem armazenar texto, como por exemplo:
- Código:
new Jornal[10] = "й nуis";
Lembrando que o total de caracteres do texto deve ser menor do que a cell da array, no caso, menor que 10.
FIM, e este foi meu tutorial sobre variбveis
Espero ter ajudado
Creditos: Rjj