[size=32]Usando Arrays[/size]
Arrays Simples
Uma array й uma variбvel que possui "parвmetros" que ficam entre colchetes []. Й muito ъtil e fundamental em qualquer servidor, sem elas fica impossнvel organizar as variбveis para cada player, por exemplo, o dinheiro de cada um, sem arrays, й impossнvel imaginar e codar algo assim. Um exemplo de array e como ela pode ser utilizada usando apenas valores numйricos:
- Código:
new Array[10];
Array[0] = 106;
Array[7] = 54;
Nas definiзхes de uma array sempre colocamos a quntidade de cйlulas mбxima que ela poderб utilizar, sempre comeзando do 0 quando formos alterar o valor de cada possibilidade. Sim, possibilidade. No primeiro exemplo, temos 10 cйlulas de informaзгo.
Бrvore representando as possibilidades de uma array simples com 10 cйlulas Essa бrvore aumenta conforme o nъmero de cйlulas da array. NUNCA uma Array com 10 cйlulas terб a бrvore Array[10], porque essa seria a 11Є cйlula, e nosso espaзo й apenas 10.
Бrvore representando as possibilidades de uma array simples com 10 cйlulas Essa бrvore aumenta conforme o nъmero de cйlulas da array. NUNCA uma Array com 10 cйlulas terб a бrvore Array[10], porque essa seria a 11Є cйlula, e nosso espaзo й apenas 10.
Arrays 2D (Duas Dimensхes)
Pode se usar palavras para facilitar o uso. Nesse exemplo abaixo, vamos usar um enum juntamente com MAX_PLAYERS, que й uma variбvel global do SAMP para definir a capacidade mбxima de um servidor. A partir dela podemos usar [playerid] nas Arrays.
- Código:
enum Array2
{
Dinheiro,
Nick[100], // Sim, й possнvel criar uma Array dentro de uma Array
Float:PosX,
bool:Admin
}
new Array[MAX_PLAYERS][Array2];
No exemplo acima, podemos usar na segunda "casa" da array palavras, que de acordo com as palavras dб uma leitura melhor. Esse tipo de array tem um leque de possibilidades bem maior. Usando nъmeros teriamos uma бrvore assim:
pawn Код:- Código:
public OnPlayerConnect(playerid)
{
if (playerid == 1) //Esse if й so para poder fazer com que as arrays tenham a mesma funcao.
{
Array[playerid][Dinheiro] = 20000;
Array[1] = 20000;
return 1;
}
}
- Código:
CMD:dargrana(playerid, params[])
{
new Outro[MAX_PLAYER_NAME], Quania;
if (sscanf(params, "ud", Outro, Quantia))
return SendClientMessage(playerid, 0xFF0000FF, "Uso correto /dargrana [ID/Nick] [Quantia]");
if (!IsPlayerConnected(Outro))
return SendClientMessage(playerid, 0xFF0000FF, "ID/Nome nгo estб conectado");
Array[Outro][Dinheiro] += Quantia;
return 1;
}
Claro que isso tambйm pode ocorrer com booleanas, strings e float:
pawn Код:- Código:
CMD:tiraradmin(playerid, params[])
{
new Outro[MAX_PLAYER_NAME];
if (sscanf(params, "u", Outro))
return SendClientMessage(playerid, 0xFF0000FF, "Uso correto /tiraradmin [ID/Nome]");
if (!IsPlayerConnected(Outro))
return SendClientMessage(playerid, 0xFF0000FF, "O ID/Nome nгo estб conectado!");
Array[Outro][Admin] = false;
return 1;
}
- Código:
CMD:meux(playerid, params[])
{
SetPlayerPos(playerid, Array[playerid][PosX], 0.0, 5.0);
return 1;
}
public OnPlayerConnect(playerid)
{
new nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, nome, sizeof Nome);
format(Array[playerid][Nick], MAX_PLAYER_NAME, "%s", nome);
return 1;
}
OBS: Esse tutorial й voltado para iniciantes em PAWN, jб que pessoas com algum conhecimento devem saber como utilizar esse tipo de variбvel.
OBS: Os comandos nгo sгo cуdigo ъtil, tanto й que nгo apresentam restriзaгo nem nada, servem apenas para mostrar uma array em funcionamento.
OBS: Os comandos nгo sгo cуdigo ъtil, tanto й que nгo apresentam restriзaгo nem nada, servem apenas para mostrar uma array em funcionamento.
Creditos: Juniiro3