[Off] Pawn
#1

Bom dia a todos!
Tenho uma dъvida sobre a linguagem pawn.
O que significam;
- static;
- new[MAX_PLAYERS];
- new;
- return true;
- return false;

Sobre o new, queria saber a diferenзa de [MAX_PLAYERS] para o normal.
Jб os return's, queria saber a lуgica de :
- Vou retornar a true.
- Vou retornar a false.

N tem muito sentido essas coisas, mas fico meio confuso, e agradeзo quem ajudar!
Reply
#2

https://sampforum.blast.hk/showthread.php?pid=2249016#pid2249016
Reply
#3

Aqui estгo as respostas, respectivamente :



1 - Significa que o dado declarado serб estбtico na memуria. Ele sу seria removido com o tйrmino da execuзгo do arquivo .amx.


2 - Significa que uma array, uma estrutura de dados, estб sendo declarada com um total de dados igual a MAX_PLAYERS e de acordo com o new .


3 - Significa que o dado declarado serб automбtico, isto й, ficarб temporariamente na memуria durante o processamento do arquivo .amx. Isso sу vale para dados de escopo local, pois os de escopo global sгo sempre estбticos.


4 - Significa basicamente que o valor da funзгo serб 1.


5 - Significa basicamente que o valor da funзгo serб 0.



Sobre as ъltimas dъvidas, uma array de MAX_PLAYERS й utilizada para armazenar valores que correspondem a IDs de jogadores. Retornar true ou false em funзхes й ъtil para fazer funзхes de verificaзгo, como uma que, em um if, verificasse se um veнculo estб ocupado ou nгo.



Espero ter ajudado .
Reply
#4

Static й o inverso de variбvel (constante), cria uma e durante todo o script ela й igual e nгo pode ser alterada.

Ex:

PHP Code:
#define     SouUmaConstante    1 
MAX_PLAYERS define uma variбvel que й diferente de jogador para jogador. Cada playerid pode assumir um valor diferente.

Ex:

PHP Code:
new Arroz[MAX_PLAYERS];
main()
{
    
Arroz[0] = 1// O playerid 0 vai ter o valor 1
    
Arroz[1] = 2// O playerid 1 vai ter o valor 2

new cria uma variбvel "normal", sу pode assumir um valor de cada vez.

return na maioria dos casos tanto faz ser true/false mas o que faz й "pбra" a funзгo e retorna-a ao princнpio.

Ex:

PHP Code:
public OnPlayerConnect(playerid)
{
    if(
playerid == 25) return 1// Se o playerid for igual a 25 o cуdigo pбra aqui
    
    
GivePlayerMoney(playerid1000);
    return 
1;

Acho que nгo falei nenhuma besteira
Reply
#5

Ken, vocк poderia usar de uma maneira mais simplificada pra explicar, tem coisas que vocк fala pra parecer bonito que eu mesmo nгo entendo as vezes, quem dirб um novato.


Quote:
Originally Posted by bruxo00
View Post
Static й o inverso de variбvel (constante), cria uma e durante todo o script ela й igual e nгo pode ser alterada.

Ex:

PHP Code:
#define     SouUmaConstante    1 
MAX_PLAYERS define uma variбvel que й diferente de jogador para jogador. Cada playerid pode assumir um valor diferente.

Ex:

PHP Code:
new Arroz[MAX_PLAYERS];
main()
{
    
Arroz[0] = 1// O playerid 0 vai ter o valor 1
    
Arroz[1] = 2// O playerid 1 vai ter o valor 2

new cria uma variбvel "normal", sу pode assumir um valor de cada vez.

return na maioria dos casos tanto faz ser true/false mas o que faz й "pбra" a funзгo e retorna-a ao princнpio.

Ex:

PHP Code:
public OnPlayerConnect(playerid)
{
    if(
playerid == 25) return 1// Se o playerid for igual a 25 o cуdigo pбra aqui
    
    
GivePlayerMoney(playerid1000);
    return 
1;

Acho que nгo falei nenhuma besteira
Static: Tб errado, a static pode ser alterada sim.

MAX_PLAYERS: Tб errado, isso que vocк explicou й um pedaзo da lуgica onde ela й usada, mas na verdade ela й apenas uma definiзгo para '500' ou pode ter aumentado agora, quando usada em uma variбvel, vocк indica que a matriz/vetor terб 500 espaзos.

a variбvel new й semelhante a static e vice-versa, porйm ela nгo й armazenada da mesma forma, logo se ela for local perde o valor quando o escopo do cуdigo se encerrar.

e a questгo do return vai do uso que vocк pretende fazer da funзгo, sу recomendo usar return nas funзхes criadas quando ela tiver um propуsito de uso em condicionais (if/else).

e em funзхes nativas ela pode trazer algumas diferenзas, como por exemplo no OnPlayerCommandText, ela retorna 'Unknown Command' ao jogador, caso a nativa retorne 0. (Para mais informaзхes sobre isso, pesquisa no WIKI sobre cada nativa)


Bruxoo, bom vocк rever alguns conceitos seus, pois estes ai estгo alguns errados e nгo estгo completos.

Abraзos.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)