SA-MP Forums Archive
[Off] Pawn - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Off] Pawn (/showthread.php?tid=490503)



Pawn - IGp - 26.01.2014

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!


Re: Pawn - zSuYaNw - 26.01.2014

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


Re: Pawn - rjjj - 26.01.2014

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 .


Re: Pawn - bruxo00 - 26.01.2014

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


Re: Pawn - WLSF - 26.01.2014

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.