#undef MAX_PLAYERS
#define MAX_PLAYERS 100
new bool:Spawn[MAX_PLAYERS];
1-Bit | 2-Bit | 4-Bit | 8-Bit | 16-Bit | |
Limit | 1 ─ 0x1 | 3 ─ 0x3 | 15 ─ 0xF | 255 ─ 0xFF | 65535 ─ 0xFFFF |
#include <rBits>
new Bit1:Variavel1<MAX_PLAYERS>; // variбvel de 1bit (Suporta o tamanho de 0 e 1)
new Bit2:Variavel2<MAX_PLAYERS>; // variбvel de 2bit (Suporta o tamanho de atй 3)
new Bit4:Variavel3<MAX_PLAYERS>; // variбvel de 4bit (Suporta o tamanho de atй 15)
new Bit8:Variavel4<MAX_PLAYERS>; // variбvel de 8bit (Suporta o tamanho de atй 255)
new Bit16:Variavel5<MAX_PLAYERS>; // variбvel de 16bit (Suporta o tamanho de atй 65535)
// Para um tamanho maior, use a variбvel normalmente. Exemplo:
new oi;
// Variбvel comum
new Array[3]; // Declarei uma variбvel (padrгo: 32bit)
Array[0] = 1; // Alterou o valor do slot 0 da variбvel 'Array' para 1
Array[1] = 2; // Alterou o valor do slot 1 da variбvel 'Array' para 2
Array[2] = 3; // Alterou o valor do slot 2 da variбvel 'Array' para 3
// Variбvel do rBits
new Bit2:Array<3>; // Declarei uma variбvel de 3bit
Bit2_Set(Array, 0, 1); // Alterou o valor do slot 0 da variбvel 'Array' para 1
Bit2_Set(Array, 1, 2); // Alterou o valor do slot 1 da variбvel 'Array' para 2
Bit2_Set(Array, 2, 3); // Alterou o valor do slot 2 da variбvel 'Array' para 3
// Variбvel comum
new Array[3]; // Declarei uma variбvel (padrгo: 32bit)
Array[0] = 1; // Alterou o valor do slot 0 da variбvel 'Array' para 1
Array[1] = 2; // Alterou o valor do slot 1 da variбvel 'Array' para 2
Array[2] = 3; // Alterou o valor do slot 2 da variбvel 'Array' para 3
printf("%d", Array[0]); // Vai printar o valor 1 na tela
printf("%d", Array[1]); // Vai printar o valor 2 na tela
printf("%d", Array[2]); // Vai printar o valor 3 na tela
// Variбvel do rBits
new Bit2:Array<3>; // Declarei uma variбvel de 3bit
Bit2_Set(Array, 0, 1); // Alterou o valor do slot 0 da variбvel 'Array' para 1
Bit2_Set(Array, 1, 2); // Alterou o valor do slot 1 da variбvel 'Array' para 2
Bit2_Set(Array, 2, 3); // Alterou o valor do slot 2 da variбvel 'Array' para 3
printf("%d", Bit2_Get(Array, 0)); // Vai printar o valor 1 na tela
printf("%d", Bit2_Get(Array, 1)); // Vai printar o valor 2 na tela
printf("%d", Bit2_Get(Array, 2)); // Vai printar o valor 3 na tela
new Bit8:Array<1>;
Bit8_Set(Array, 0, 21);
// Normalmente (gastando mais memуria)
#include <a_samp>
new bool:Spawno[MAX_PLAYERS]; // Declarei a variбvel (padroгo 32bit)
public OnPlayerConnect(playerid)
{
Spawno[playerid] = 0; // Setei a variбvel do jogador para 0 (false) pq ele ainda nгo fez spawn
return 1;
}
public OnPlayerSpawn(playerid)
{
Spawno[playerid] = 1; // Setei a variбvel do jogador para 1 (true) pq ele fez o spawn
return 1;
}
// Com rBits (gastando menos memуria)
#include <a_samp>
#include <rBits>
new Bit1:Spawno<MAX_PLAYERS>; // Usei 1bit pq ele armazena apenas valores de 0 e 1. Sгo exatamente os valores que preciso;
public OnPlayerConnect(playerid)
{
Bit1_Set(Spawno, playerid, 0); // Setei a variбvel de para 0 (false) pq ele ainda nгo fez spawn
return 1;
}
public OnPlayerSpawn(playerid)
{
Bit1_Set(Spawno, playerid, 1); // Setei a variбvel de para 1 (true) pq ele fez o spawn
return 1;
}
// Normalmente (gastando mais memуria)
#include <a_samp>
new Veiculo[21];
public OnGameModeInit()
{
Veiculo[0] = CreateVehicle(596, 0.0, 0.0, 0.0, 0.0, 6, 6, 30000);
Veiculo[1] = CreateVehicle(596, 0.0, 0.0, 0.0, 0.0, 6, 6, 30000);
Veiculo[2] = CreateVehicle(596, 0.0, 0.0, 0.0, 0.0, 6, 6, 30000);
Veiculo[3] = CreateVehicle(596, 0.0, 0.0, 0.0, 0.0, 6, 6, 30000);
Veiculo[4] = CreateVehicle(596, 0.0, 0.0, 0.0, 0.0, 6, 6, 30000);
Veiculo[5] = CreateVehicle(596, 0.0, 0.0, 0.0, 0.0, 6, 6, 30000);
Veiculo[6] = CreateVehicle(596, 0.0, 0.0, 0.0, 0.0, 6, 6, 30000);
Veiculo[7] = CreateVehicle(596, 0.0, 0.0, 0.0, 0.0, 6, 6, 30000);
//...
Veiculo[20] = CreateVehicle(596, 0.0, 0.0, 0.0, 0.0, 6, 6, 30000);
return 1;
}
// Com rBits (gastando menos memуria)
#include <a_samp>
#include <rBits>
new Bit8:Veiculo<21>; // Declarei uma variбvel de 8bit pq й o valor minimo que suporta o nъmero 21
public OnGameModeInit()
{
Bit16_Set(Veiculo, 0, CreateVehicle(596, 0.0, 0.0, 0.0, 0.0, 6, 6, 30000));
Bit16_Set(Veiculo, 1, CreateVehicle(596, 0.0, 0.0, 0.0, 0.0, 6, 6, 30000));
Bit16_Set(Veiculo, 2, CreateVehicle(596, 0.0, 0.0, 0.0, 0.0, 6, 6, 30000));
Bit16_Set(Veiculo, 3, CreateVehicle(596, 0.0, 0.0, 0.0, 0.0, 6, 6, 30000));
Bit16_Set(Veiculo, 4, CreateVehicle(596, 0.0, 0.0, 0.0, 0.0, 6, 6, 30000));
Bit16_Set(Veiculo, 5, CreateVehicle(596, 0.0, 0.0, 0.0, 0.0, 6, 6, 30000));
Bit16_Set(Veiculo, 6, CreateVehicle(596, 0.0, 0.0, 0.0, 0.0, 6, 6, 30000));
Bit16_Set(Veiculo, 7, CreateVehicle(596, 0.0, 0.0, 0.0, 0.0, 6, 6, 30000));
//...
Bit16_Set(Veiculo, 20, CreateVehicle(596, 0.0, 0.0, 0.0, 0.0, 6, 6, 30000));
return 1;
}
Eu realmente nгo sei como tem gente que consegue ter problema de memуria no SA-MP mas ok
|
Fala para vocк RiqueP, vocк deve ler mente, sу pode!
Fez dois tutorias, no assunto que eu queria muito aprender e sua maneira simples de explicar me deixa confortбvel para aprender mais rбpido. Parabйns mano! |
Eu realmente nгo sei como tem gente que consegue ter problema de memуria no SA-MP mas ok
|
Pensei o mesmo.
Isso do y_bit, rbits, etc bits... Acho que so й bom em sistemas grandes que precisem mesmo de muita memoria... Se nao acho desnecessario no sa-mp... |