Započeo Osamu Dazai
•20. Avg. 2019.y_bit
5,459
pregleda
27
postova
Made Man
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
355
Postovi:
20
Teme:
Pridružio se:Avg. 2019
20. Avg. 2019.
- 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.
Made Man
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
355
Postovi:
20
Teme:
Pridružio se:Avg. 2019
Made Man
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
355
Postovi:
20
Teme:
Pridružio se:Avg. 2019
20. Avg. 2019.
ʙᴜɴᴛᴀ ꜰᴜᴊɪᴡᴀʀᴀ wrote on August 20, 2019, 8:36 am:
Veoma korisno 🙂
Pa jedan bool za 100 igraca (32bitni) zauzme 400 bytes a ovako sa y_bit samo 20
OG Legend
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP Doprinos2
Aktivan Član
106 / 250 XP
Početnik(2)
3,781
Postovi:
192
Teme:
Pridružio se:Jan. 2017
Made Man
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
355
Postovi:
20
Teme:
Pridružio se:Avg. 2019
20. Avg. 2019.
mumitza. wrote on August 20, 2019, 10:40 am:
veri najs, haj fajv♥
Hvala pajdo <3
Godfather
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
240 / 250 XP
Početnik(0)
1,514
Postovi:
58
Teme:
Pridružio se:Nov. 2016
Made Man
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
355
Postovi:
20
Teme:
Pridružio se:Avg. 2019
Made Man
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
355
Postovi:
20
Teme:
Pridružio se:Avg. 2019
Kingpin
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosAktivan Član
2 / 250 XP
Početnik(1)
1,147
Postovi:
38
Teme:
Pridružio se:Feb. 2010
20. Avg. 2019.
6cadilab9 wrote on August 20, 2019, 8:06 pm:
Nisam radio sa y_bit al sam siguran da se moze koristiti
umjesto
xD
if(!Bit_Get(val, playerid))umjesto
if(Bit_Get(val, playerid) == false)xD
Tako je 😉
Godfather
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosAktivan Član
9 / 250 XP
Početnik(1)
2,044
Postovi:
55
Teme:
Pridružio se:Sep. 2013
20. Avg. 2019.
6cadilab9 wrote on August 20, 2019, 8:06 pm:
Nisam radio sa y_bit al sam siguran da se moze koristiti
umjesto
xD
if(!Bit_Get(val, playerid))umjesto
if(Bit_Get(val, playerid) == false)xD
Pravilno je
if ((!Bit_Get(...)) == !(false)) ...Made Man
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
355
Postovi:
20
Teme:
Pridružio se:Avg. 2019
20. Avg. 2019.
// xunder wrote on August 20, 2019, 8:13 pm:
Pravilno je
if ((!Bit_Get(...)) == !(false)) ...Navikao sam tako, ne znaÄi niÅ¡ta po performansi bar
Morate biti prijavljeni da biste odgovorili na ovu temu.
Prijava


