Theme Support

Unordered List

Recent Posts

Tecnologia do Blogger.

quinta-feira, 28 de janeiro de 2016

[TUTORIAL] Variáveis - Definição, uso e tipos.

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 ? 


Code:
X = 3 + Y

E aí  ? Quanto valeria o X ?


Resposta: X valeria 13, pois:


Code:
X = 3 + Y

É igual á:


Code:
X = 3 + 10

que é igual á:


Code:
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:

Code:
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):


Code:
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:


Code:
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 4QUANDO 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:



Code:
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 aTENSO 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:


Code:
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:


Code:
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:

Code:
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:

Code:
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:


Code:
const Pickup = 2;//Sempre terá o valor 2


Se depois for usado algo como:


Code:
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:

Code:
new Float:Exemplo = 1.222; //Caracterista especial: conseguem se igualar á números fracionários.

Exemplo de uso de bool:

Code:
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:

Code:
new Sanduiche1;
new Sanduiche2;
new Sanduiche3;


Pode se fazer com variável array :

Code:
new Sanduiche[3];


Daí a igualação seria assim:

Code:
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:


Code:
new Sanduiche[3];

Não poderemos usar:
Code:
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:

Code:
new Sorriso[MAX_PLAYERS]; //Mesma coisa que VariavelArray[500];, pois MAX_PLAYERS está definido assim no a_samp.inc

E a usamos como:

Code:
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:

Code:
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:

Code:
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.

Fonte: Fórum SA-MP

FIM, e este foi meu tutorial sobre variáveis 


Espero ter ajudado 
←  Anterior Proxima  → Inicio

0 comentários:

Postar um comentário

Midias Sociais

Seguidores

Total de Visualizações