Bool ili int

Započeo Shaw Salcedo, Februar 11, 2020, 12:46:13 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Problem(error/warning): Sta je bolje int ili bool? UlogovanProvera[playerid]==1 ili ==true
Dio skripte:
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log):
Slika/video ingame problema(obavezno ako je ingame problem):
GAD SAM JA

Nema neke razlike u PAWN jeziku jer iirc isto imaju bitova (kec/true) (nula/false)
Svakako koristi bool za 0/1 vrednosti

Edit, evo sada cu videti asm kodove, samo da jedem
Poslednja Izmena: Februar 11, 2020, 12:49:51 POSLE PODNE od malitoni

Okej, samo me je ovo zanima.
GAD SAM JA

Ovo sam dobio za bool:

CODE 0 ; 0
;program exit point
halt 0


DATA 4 ; 0
dump 37030

DATA 0 ; 4
dump 1

CODE 0 ; 8
proc ; main
; line 6
break ; c
; line 7
break ; 10
load.pri 4
const.alt 1
eq
jzer 1c
;$exp
l.1c ; 30
zero.pri
retn


STKSIZE 1000

...a ovo za int

CODE 0 ; 0
;program exit point
halt 0


DATA 4 ; 0
dump 37030

DATA 0 ; 4
dump 1

CODE 0 ; 8
proc ; main
; line 6
break ; c
; line 7
break ; 10
load.pri 4
const.alt 1
eq
jzer 1c
;$exp
l.1c ; 30
zero.pri
retn


STKSIZE 1000

Znaci potpuno je isti koliko mogu videti :)


Ovo sam koristio za test:
[pawn]#include <a_samp>

new a = 1;

main()
{
   if (a == 1)
   {
      //code
   }
}[/pawn]
[pawn]#include <a_samp>

new bool:a = true;

main()
{
   if (a == true)
   {
      //code
   }
}[/pawn]

EDIT: I da, bila je ugasena optimizacija koda u compileru tako da nema greske
Poslednja Izmena: Februar 11, 2020, 12:59:26 POSLE PODNE od malitoni



PS. Verovatno compajler pretvara bool u int ili tako nesto
GAD SAM JA

Samo nemoj da koristis UlogovanProvera molim te.

Dao sam kao primer, i kao da je bitno sta koristis
GAD SAM JA

Citat: // impact poslato Februar 11, 2020, 13:02:09 POSLE PODNE
Samo nemoj da koristis UlogovanProvera molim te.
To je samo ime funkcije, najbolje je primenjivati ENGLESKA imena za sve u modu (kao sto ja radim) ali svakako mu je potrebno i ovo za neke stvari :) (ne u svakoj komandi kao sto obicno rade haha)

[pawn]public OnPlayerCommandReceived(playerid, cmdtext[])
{
    if(IgracUlogovan[playerid] == 0)
   {
        SCM(playerid, COLOR_GREY, "Niste se prijavili, te ne mozete koristiti komande!");
      return 0;
   }
      return 1;
}[/pawn]
GAD SAM JA

y_bit

[pawn]
new
    BitArray:UlogovanProvera<MAX_PLAYERS>;

public OnPlayerConnect(playerid) {
    Bit_Vet(UlogovanProvera, playerid); // Bit_Vet postavlja na false (0)
    return 1;
}

public OnPlayerSpawn(playerid) {
    Bit_Let(UlogovanProvera, playerid); // Bit_Let postavlja na true (1)
    return 1;
}

// Ali nemas potrebe da koristis to 'UlogovanProvera' ja sam ti dao primer samo kako da koristis y_bit..
[/pawn]

Citat: YumikoJR poslato Februar 11, 2020, 13:08:57 POSLE PODNE
y_bit

[pawn]
new
    BitArray:UlogovanProvera<MAX_PLAYERS>;

public OnPlayerConnect(playerid) {
    Bit_Vet(UlogovanProvera, playerid); // Bit_Vet postavlja na false (0)
    return 1;
}

public OnPlayerSpawn(playerid) {
    Bit_Let(UlogovanProvera, playerid); // Bit_Let postavlja na true (1)
    return 1;
}

// Ali nemas potrebe da koristis to 'UlogovanProvera' ja sam ti dao primer samo kako da koristis y_bit..
[/pawn]
Ne koristi se za to y_bit :)


Citat: Kriso poslato Februar 11, 2020, 13:01:15 POSLE PODNE
PS. Verovatno compajler pretvara bool u int ili tako nesto
Edit: Ovu msg nisam video, ne, pawn je retardiran i ta dva imaju isto bitova (bool ima istu vrednost kao int koji ima vrednost 2mil+ (cellmax).., isto je ugl)