- YSI_Data\y_bit -
Å ta je y_bit?
y_bit omgucÌava jednostavno skladiÅ¡tnje true / false boolean vrednosti. Jedna ćelija ima 32 bita, ali se ona Äesto (...ako ne i uvek) koristi za skladiÅ¡tenje jednog bool-a Å¡to nam prouzrokuje baÄenih 31 mesta ( jer je bit single cell, a u PAWN jeziku bool: tag "iskoristi" sve 32 ćelije ). ( u prevodu y_bit Å¡tedi 97% viÅ¡e memorije tj vi bacate 97% memorije na svaki 32 bitni bool )
Kako se koristi?
Kao i uvek, najbolje je da vam objasnim kroz primere, tako se najbolje shvati 🙂
//new BitArray:name;
new BitArray:playerSpawned;
public OnPlayerConnect(playerid)
{
//Bit_Set(BitArray:array<>, slot, bool:set);
Bit_Set(playerSpawned, playerid, false); // Postoji i Bit_(V/L)et funkcija koju ja koristim ali o tome cemo posle :)
// Postavili smo playerSpawned bit na slotu playerid na false.
printf(" playerSpawned za playerid-a je sada %d", Bit_Get(playerSpawned, playerid));
// out: playerSpawned za playerid-a je sada 0 (0 : false | 1 : true)
return 1;
}
public OnPlayerSpawn(playerid)
{
Bit_Set(playerSpawned, playerid, true); // Postavalja playerSpawned na slotu playerid na true
// out: playerSpawned za playerid-a je sada 1 (0 : false | 1 : true)
return 1;
} Bit_Set
Bit_Set funkcija zapravo poziva Bit_(V/L)et funkciju, brže Vam je odmah da pozovete ove dve funkcije nego da koristite Bit_Set.
//new BitArray:name;
new BitArray:playerSpawned;
public OnPlayerConnect(playerid)
{
Bit_Vet(playerSpawned, playerid); // Bit_Vet postavlja playerSpawned na slotu playerid na false
printf(" playerSpawned za playerid-a je sada %d", Bit_Get(playerSpawned, playerid));
// out: playerSpawned za playerid-a je sada 0 (0 : false | 1 : true)
return 1;
}
public OnPlayerSpawn(playerid)
{
Bit_Let(playerSpawned, playerid); // Bit_Let postavlja playerSpawned na slotu playerid na true
printf(" playerSpawned za playerid-a je sada %d", Bit_Get(playerSpawned, playerid));
// out: playerSpawned za playerid-a je sada 1 (0 : false | 1 : true)
return 1;
} Korištenje u if uslovu
public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid, bodypart)
{
if(Bit_Get(playerSpawned, playerid) == false)
printf(" Igrac %d koji nije spawnovan je zadao štetu!!!", playerid);
}Bit_SetAll
Bit_SetAll(name, true/false); - postavlja sve u datom BitArray-u na true/false.



