y_bit

Započeo Osamu Dazai, Avgust 20, 2019, 09:29:08 PRE PODNE

prethodna tema - sledeća tema

0 članova i 3 gostiju pregledaju ovu temu.

- YSI_Data\y_bit -


Å ta je y_bit?
y_bit omguć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 :)

[pawn]//new BitArray:name<size>;
new BitArray:playerSpawned<MAX_PLAYERS>;

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("[tutorial] playerSpawned za playerid-a je sada %d", Bit_Get(playerSpawned, playerid));
   // out: [tutorial] 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: [tutorial] playerSpawned za playerid-a je sada 1 (0 : false | 1 : true)
   return 1;
}[/pawn]


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.
[pawn]//new BitArray:name<size>;
new BitArray:playerSpawned<MAX_PLAYERS>;

public OnPlayerConnect(playerid)
{
   Bit_Vet(playerSpawned, playerid); // Bit_Vet postavlja playerSpawned na slotu playerid na false
   printf("[tutorial] playerSpawned za playerid-a je sada %d", Bit_Get(playerSpawned, playerid));
   // out: [tutorial] 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("[tutorial] playerSpawned za playerid-a je sada %d", Bit_Get(playerSpawned, playerid));
   // out: [tutorial] playerSpawned za playerid-a je sada 1 (0 : false | 1 : true)
   return 1;
}[/pawn]


Korištenje u if uslovu
[pawn]public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid, bodypart)
{
   if(Bit_Get(playerSpawned, playerid) == false)
      printf("[omg] Igrac %d koji nije spawnovan je zadao Å¡tetu!!!", playerid);
}[/pawn]


Bit_SetAll
Bit_SetAll(name, true/false); - postavlja sve u datom BitArray-u na true/false.
Poslednja Izmena: Avgust 20, 2019, 11:28:12 PRE PODNE od Vasic
My tutorials: y_inline & y_dialog, Ternary Operator, y_flooding, y_bit, samp-logger, Pawn Plus I Deo ( Dynamic Strings ), Map Zones, TextDraw Buttons, y_iterate, easyDialog, samp-plugin-timerfix
My includes: TextDraw Buttons


Respect: Bunta, Vedran, Ivan Bagarić, Itz.Yansi, Rade Ćurić (ni ja ne verujem)
Biggest respect goes to: ADRFranklin


Citat: Vodka PlayObožavam te "skriptere" koji probleme rešavaju tako što menjaju mod svaka 2 dana, tako će sigurno naučiti.
Neko im nacrta u temi Å¡ta treba uraditi, al' ne vredi nisu svi za skriptanje.

@Vasic ako možeš samo da izmeniš MAXD_PLAYERS u MAX_PLAYERS, sorry na DP :)
My tutorials: y_inline & y_dialog, Ternary Operator, y_flooding, y_bit, samp-logger, Pawn Plus I Deo ( Dynamic Strings ), Map Zones, TextDraw Buttons, y_iterate, easyDialog, samp-plugin-timerfix
My includes: TextDraw Buttons


Respect: Bunta, Vedran, Ivan Bagarić, Itz.Yansi, Rade Ćurić (ni ja ne verujem)
Biggest respect goes to: ADRFranklin


Citat: Vodka PlayObožavam te "skriptere" koji probleme rešavaju tako što menjaju mod svaka 2 dana, tako će sigurno naučiti.
Neko im nacrta u temi Å¡ta treba uraditi, al' ne vredi nisu svi za skriptanje.

Veoma korisno :)

Mnogo imaš ti još da jedeš kačamak.
skrr
Moj tutorijali: Bazilion indent warninga
WORK? : Smart Project 1.2 , Leskovacki Detmec, Rodjendanski  server


Penzionisani balkanski samp kripter


Citat: ʙᴜɴᴛᴀ ꜰᴜᴊɪᴡᴀʀᴀ poslato Avgust 20, 2019, 10:36:18 PRE PODNE
Veoma korisno :)
Pa jedan bool za 100 igraca (32bitni) zauzme 400 bytes a ovako sa y_bit samo 20
My tutorials: y_inline & y_dialog, Ternary Operator, y_flooding, y_bit, samp-logger, Pawn Plus I Deo ( Dynamic Strings ), Map Zones, TextDraw Buttons, y_iterate, easyDialog, samp-plugin-timerfix
My includes: TextDraw Buttons


Respect: Bunta, Vedran, Ivan Bagarić, Itz.Yansi, Rade Ćurić (ni ja ne verujem)
Biggest respect goes to: ADRFranklin


Citat: Vodka PlayObožavam te "skriptere" koji probleme rešavaju tako što menjaju mod svaka 2 dana, tako će sigurno naučiti.
Neko im nacrta u temi Å¡ta treba uraditi, al' ne vredi nisu svi za skriptanje.

Citat: Osamu Dazai poslato Avgust 20, 2019, 09:35:16 PRE PODNE
@Vasic ako možeš samo da izmeniš MAXD_PLAYERS u MAX_PLAYERS, sorry na DP :)
sredjeno
• Website: www.vasic.dev
Web Development & Cyber Security

veri najs, haj fajv♥

Citat: mumitza. poslato Avgust 20, 2019, 12:40:25 POSLE PODNE
veri najs, haj fajv♥
Hvala pajdo <3
My tutorials: y_inline & y_dialog, Ternary Operator, y_flooding, y_bit, samp-logger, Pawn Plus I Deo ( Dynamic Strings ), Map Zones, TextDraw Buttons, y_iterate, easyDialog, samp-plugin-timerfix
My includes: TextDraw Buttons


Respect: Bunta, Vedran, Ivan Bagarić, Itz.Yansi, Rade Ćurić (ni ja ne verujem)
Biggest respect goes to: ADRFranklin


Citat: Vodka PlayObožavam te "skriptere" koji probleme rešavaju tako što menjaju mod svaka 2 dana, tako će sigurno naučiti.
Neko im nacrta u temi Å¡ta treba uraditi, al' ne vredi nisu svi za skriptanje.


My tutorials: y_inline & y_dialog, Ternary Operator, y_flooding, y_bit, samp-logger, Pawn Plus I Deo ( Dynamic Strings ), Map Zones, TextDraw Buttons, y_iterate, easyDialog, samp-plugin-timerfix
My includes: TextDraw Buttons


Respect: Bunta, Vedran, Ivan Bagarić, Itz.Yansi, Rade Ćurić (ni ja ne verujem)
Biggest respect goes to: ADRFranklin


Citat: Vodka PlayObožavam te "skriptere" koji probleme rešavaju tako što menjaju mod svaka 2 dana, tako će sigurno naučiti.
Neko im nacrta u temi Å¡ta treba uraditi, al' ne vredi nisu svi za skriptanje.

veoma korisno  ???

TIIIIIRRRRRRUUUUUU RIIIIIIIIIIIIIIIII RUUUUUUUUUUUUU

My tutorials: y_inline & y_dialog, Ternary Operator, y_flooding, y_bit, samp-logger, Pawn Plus I Deo ( Dynamic Strings ), Map Zones, TextDraw Buttons, y_iterate, easyDialog, samp-plugin-timerfix
My includes: TextDraw Buttons


Respect: Bunta, Vedran, Ivan Bagarić, Itz.Yansi, Rade Ćurić (ni ja ne verujem)
Biggest respect goes to: ADRFranklin


Citat: Vodka PlayObožavam te "skriptere" koji probleme rešavaju tako što menjaju mod svaka 2 dana, tako će sigurno naučiti.
Neko im nacrta u temi Å¡ta treba uraditi, al' ne vredi nisu svi za skriptanje.

Nisam radio sa y_bit al sam siguran da se moze koristiti

[pawn]if(!Bit_Get(val, playerid))[/pawn]

umjesto

[pawn]if(Bit_Get(val, playerid) == false)[/pawn]

xD

Citat: 6cadilab9 poslato Avgust 20, 2019, 22:06:03 POSLE PODNE
Nisam radio sa y_bit al sam siguran da se moze koristiti

[pawn]if(!Bit_Get(val, playerid))[/pawn]

umjesto

[pawn]if(Bit_Get(val, playerid) == false)[/pawn]

xD
Tako je ;)

Mnogo imaš ti još da jedeš kačamak.
skrr
Moj tutorijali: Bazilion indent warninga
WORK? : Smart Project 1.2 , Leskovacki Detmec, Rodjendanski  server


Penzionisani balkanski samp kripter


Citat: 6cadilab9 poslato Avgust 20, 2019, 22:06:03 POSLE PODNE
Nisam radio sa y_bit al sam siguran da se moze koristiti

[pawn]if(!Bit_Get(val, playerid))[/pawn]

umjesto

[pawn]if(Bit_Get(val, playerid) == false)[/pawn]

xD

Pravilno je

if ((!Bit_Get(...)) == !(false)) ...

Citat: // xunder poslato Avgust 20, 2019, 22:13:54 POSLE PODNE
Pravilno je

if ((!Bit_Get(...)) == !(false)) ...

Navikao sam tako, ne znači ništa po performansi bar
My tutorials: y_inline & y_dialog, Ternary Operator, y_flooding, y_bit, samp-logger, Pawn Plus I Deo ( Dynamic Strings ), Map Zones, TextDraw Buttons, y_iterate, easyDialog, samp-plugin-timerfix
My includes: TextDraw Buttons


Respect: Bunta, Vedran, Ivan Bagarić, Itz.Yansi, Rade Ćurić (ni ja ne verujem)
Biggest respect goes to: ADRFranklin


Citat: Vodka PlayObožavam te "skriptere" koji probleme rešavaju tako što menjaju mod svaka 2 dana, tako će sigurno naučiti.
Neko im nacrta u temi Å¡ta treba uraditi, al' ne vredi nisu svi za skriptanje.