SA-MP Forums Archive
[Ajuda] O que й isso? - 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: [Ajuda] O que й isso? (/showthread.php?tid=640585)



O que й isso? - fxckshzt - 04.09.2017

Namoral, o que significa esse bool atrбs de uma variбvel?
Jб li o tуpico de bool da Wiki-Samp, mas mesmo assim continuo sem entender a real funзгo dela.
exemplo:

PHP Code:
new bool:vida[MAX_PLAYERS]; 



Re: O que й isso? - IlanZ - 04.09.2017

Variavel que so tem 2 valores.

true
false



Re: O que й isso? - fxckshzt - 04.09.2017

Quote:
Originally Posted by IlanZ
View Post
Variavel que so tem 2 valores.

true
false
Agora entendi, valeu!!!


Re: O que й isso? - NathanT - 04.09.2017

A tag bool serve para identificar o tipo de dado booleano, este tipo de dado aceita apenas dois valores: true (verdadeiro) e false (falso). Ele nгo aceita valores inteiros, apenas booleanos (true e false < os 2 ъnicos valores booleanos).
Criar uma variбvel booleana no Pawn nгo hб vantagens importantes, pois o peso delas na memуria й similar а uma variбvel do tipo inteiro, se nгo me engano pesam 4 bytes. Geralmente eu uso este tipo de dado em variбveis que apenas indicarгo uma verdade ou mentira, por exemplo:
Code:
new bool:usoucmd[MAX_PLAYERS];

CMD:comando(playerid)
{
    if(usoucmd[playerid] == true) // se ele usou o comando
    {
        SendClientMessage(playerid, -1, "Vocк jб usou o comando.");
    }
    else if(usoucmd[playerid] == false) // se ele nгo usou o comando
    {
        usoucmd[playerid] = true; // ele usou, entгo assume o valor verdadeiro
        SendClientMessage(playerid, -1, "Vocк usou agora o comando.");
    }
    return 1;
}
Quando criadas, por padrгo elas assumem o valor falso (false) e sу mudarгo caso seu valor for alterado no script.
Claro que hб como simplificar este cуdigo acima, mas fiz assim para que nгo pareзa confuso.

Vocк tambйm pode usa-las para especificar o tipo de retorno booleano em funзхes:
Code:
bool:Motorista(playerid)
{
	if(GetPlayerVehicleSeat(playerid) == 0)
	{
	    return true;
	}
	return false;
}
// O mesmo cуdigo tambйm poderia ser feito de modo mais simples assim:
bool:Motorista(playerid)
{
	return (GetPlayerVehicleSeat(playerid) == 0);
}
Й simples, o tipo de dado booleano apenas informa se algo й verdade (true) ou mentira (false). Nada mais, portanto, vocк nгo pode fazer:
Code:
new bool:variavel1 = 1;
new bool:variavel2 = 0;
new bool:variavel3 = 3;
O compilador lhe informarб um erro, pois o tipo de dado booleano sу aceita os valores true e false.
Espero que ajude.


Re: O que й isso? - fxckshzt - 04.09.2017

Quote:
Originally Posted by NathanT
View Post
A tag bool serve para identificar o tipo de dado booleano, este tipo de dado aceita apenas dois valores: true (verdadeiro) e false (falso). Ele nгo aceita valores inteiros, apenas booleanos (true e false < os 2 ъnicos valores booleanos).
Criar uma variбvel booleana no Pawn nгo hб vantagens importantes, pois o peso delas na memуria й similar а uma variбvel do tipo inteiro, se nгo me engano pesam 4 bytes. Geralmente eu uso este tipo de dado em variбveis que apenas indicarгo uma verdade ou mentira, por exemplo:
Code:
new bool:usoucmd[MAX_PLAYERS];

CMD:comando(playerid)
{
    if(usoucmd[playerid] == true) // se ele usou o comando
    {
        SendClientMessage(playerid, -1, "Vocк jб usou o comando.");
    }
    else if(usoucmd[playerid] == false) // se ele nгo usou o comando
    {
        usoucmd[playerid] = true; // ele usou, entгo assume o valor verdadeiro
        SendClientMessage(playerid, -1, "Vocк usou agora o comando.");
    }
    return 1;
}
Quando criadas, por padrгo elas assumem o valor falso (false) e sу mudarгo caso seu valor for alterado no script.
Claro que hб como simplificar este cуdigo acima, mas fiz assim para que nгo pareзa confuso.

Vocк tambйm pode usa-las para especificar o tipo de retorno booleano em funзхes:
Code:
bool:Motorista(playerid)
{
	if(GetPlayerVehicleSeat(playerid) == 0)
	{
	    return true;
	}
	return false;
}
// O mesmo cуdigo tambйm poderia ser feito de modo mais simples assim:
bool:Motorista(playerid)
{
	return (GetPlayerVehicleSeat(playerid) == 0);
}
Й simples, o tipo de dado booleano apenas informa se algo й verdade (true) ou mentira (false). Nada mais, portanto, vocк nгo pode fazer:
Code:
new bool:variavel1 = 1;
new bool:variavel2 = 0;
new bool:variavel3 = 3;
O compilador lhe informarб um erro, pois o tipo de dado booleano sу aceita os valores true e false.
Espero que ajude.
C A R A C A M E R M Г O
Consegui compreender. vou atй salvar em txt teu tutorial ae!
Valeu mesmo!


Re: O que й isso? - Bruno13 - 04.09.2017

Quote:
Originally Posted by NathanT
View Post
Criar uma variбvel booleana no Pawn nгo hб vantagens importantes, pois o peso delas na memуria й similar а uma variбvel do tipo inteiro...
E й exatamente por isso que й de grande importвncia compactar strings do tipo bool declarando-as como char-arrays, que aceitam somente valores de 0 a 255, assim vocк acaba por economizar 75,000 bytes, aprox. 73 kb.

PHP Code:
new bool:variable[MAX_PLAYERS char]; 
E sempre que for acessar essas variбveis, vocк precisa utilizar os brackets ao invйs dos colchetes.

PHP Code:
variable{playerid} = true
Char-arrays tambйm й vбlido para variбveis inteiras que utilizarб valores entre 0 e 255.


Re: O que й isso? - fxckshzt - 04.09.2017

Quote:
Originally Posted by Bruno13
View Post
E й exatamente por isso que й de grande importвncia compactar strings do tipo bool declarando-as como char-arrays, que aceitam somente valores de 0 a 255, assim vocк acaba por economizar 75,000 bytes, aprox. 73 kb.

PHP Code:
new bool:variable[MAX_PLAYERS char]; 
E sempre que for acessar essas variбveis, vocк precisa utilizar os brackets ao invйs dos colchetes.

PHP Code:
variable{playerid} = true
Char-arrays tambйm й vбlido para variбveis inteiras que utilizarб valores entre 0 e 255.
Vou levar um tempo pra desenvolver tudo isso, mas vou ir praticando!
Obrigado!!!