PARTNERI:
-UPOZORENJE-

Samo registrovani članovi mogu da vide/koriste forum u celini.
Prijavite se ili registrujte nalog na Balkan SA-MP forumu.


Autor Tema: [Tutorial] y_bit  (Pročitano 1181 puta)

0 članova i 1 gost pregledaju ovu temu.

Van mreže Osamu Dazai

y_bit
« poslato: Avgust 20, 2019, 09:29:08 pre podne »
- 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 :)

Pawno Code: [Izaberi]
//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;
}

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.
Pawno Code: [Izaberi]
//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;
}

Korištenje u if uslovu
Pawno Code: [Izaberi]
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);
}

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 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 Play
Obož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.
 
Korisnici koji su se zahvalili: M U M I X Z Λ

Van mreže Osamu Dazai

Odg: y_bit
« Odgovor #1 poslato: Avgust 20, 2019, 09:35:16 pre podne »
@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 Play
Obož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.
 

Na mreži bunta

Odg: y_bit
« Odgovor #2 poslato: Avgust 20, 2019, 10:36:18 pre podne »
Veoma korisno :)
Mnogo imaš¡ ti još¡ da jedeš¡ kačamak. (Ja sam GEJ, Makenzi rekao)
skrr

Moj tutorijali: Bazilion indent warninga
WORK? : Smart Project 1.2 , Leskovacki Detmec, Rodjendanski  server



 
Korisnici koji su se zahvalili: Osamu Dazai

Van mreže Osamu Dazai

Odg: y_bit
« Odgovor #3 poslato: Avgust 20, 2019, 11:04:30 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 Play
Obož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.
 

Van mreže Vasic

Odg: y_bit
« Odgovor #4 poslato: Avgust 20, 2019, 11:28:32 pre podne »
@Vasic ako možeš samo da izmeniš MAXD_PLAYERS u MAX_PLAYERS, sorry na DP :)
sredjeno

Van mreže M U M I X Z Λ

  • Ne treba vjerovati ljudima s kojima smo se tek sprijateljili, a koji pokazuju da smo im draži od njihovih starih prijatelja – tako će se ponaÅ¡ati i s nama kada steknu nove prijatelje.
  • Godfather
  • *
  • Poruke: 10190
  • Broj zahvalnica: 900
Odg: y_bit
« Odgovor #5 poslato: Avgust 20, 2019, 12:40:25 posle podne »
veri najs, haj fajv♥
 
Korisnici koji su se zahvalili: Osamu Dazai

Van mreže Osamu Dazai

Odg: y_bit
« Odgovor #6 poslato: Avgust 20, 2019, 12:53:01 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 Play
Obož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.
 

Van mreže //>> Vedran

Odg: y_bit
« Odgovor #7 poslato: Avgust 20, 2019, 15:57:28 posle podne »
Dobarrr
Kao vi da budem ne bih dozvolio nikada.


One of my most productive days was throwing away 1000 lines of code...
 
Korisnici koji su se zahvalili: Osamu Dazai

Van mreže Osamu Dazai

Odg: y_bit
« Odgovor #8 poslato: Avgust 20, 2019, 15:59:18 posle podne »
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 Play
Obož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.
 

Na mreži Fqris

Odg: y_bit
« Odgovor #9 poslato: Avgust 20, 2019, 16:53:29 posle podne »
veoma korisno  ???
TIIIIIRRRRRRUUUUUU RIIIIIIIIIIIIIIIII RUUUUUUUUUUUUU
 
Korisnici koji su se zahvalili: Osamu Dazai

Van mreže Osamu Dazai

Odg: y_bit
« Odgovor #10 poslato: Avgust 20, 2019, 17:12:28 posle podne »
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 Play
Obož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.
 

Van mreže 6cadilab9

  • Balkan Underground Owner
  • Super Moderator
  • Godfather
  • *
  • Poruke: 2585
  • Broj zahvalnica: 138
  • Pol: Muškarac
  • Just a nigga tryna help
Odg: y_bit
« Odgovor #11 poslato: Avgust 20, 2019, 22:06:03 posle podne »
Nisam radio sa y_bit al sam siguran da se moze koristiti

Pawno Code: [Izaberi]
if(!Bit_Get(val, playerid))
umjesto

Pawno Code: [Izaberi]
if(Bit_Get(val, playerid) == false)
xD
 

Na mreži bunta

Odg: y_bit
« Odgovor #12 poslato: Avgust 20, 2019, 22:07:20 posle podne »
Nisam radio sa y_bit al sam siguran da se moze koristiti

Pawno Code: [Izaberi]
if(!Bit_Get(val, playerid))
umjesto

Pawno Code: [Izaberi]
if(Bit_Get(val, playerid) == false)
xD
Tako je ;)
Mnogo imaš¡ ti još¡ da jedeš¡ kačamak. (Ja sam GEJ, Makenzi rekao)
skrr

Moj tutorijali: Bazilion indent warninga
WORK? : Smart Project 1.2 , Leskovacki Detmec, Rodjendanski  server



 

Van mreže // xunder

Odg: y_bit
« Odgovor #13 poslato: Avgust 20, 2019, 22:13:54 posle podne »
Nisam radio sa y_bit al sam siguran da se moze koristiti

Pawno Code: [Izaberi]
if(!Bit_Get(val, playerid))
umjesto

Pawno Code: [Izaberi]
if(Bit_Get(val, playerid) == false)
xD

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

Van mreže Osamu Dazai

Odg: y_bit
« Odgovor #14 poslato: Avgust 20, 2019, 23:30:38 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 Play
Obož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.