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:
#include <a_samp>

new a = 1;

main()
{
	if (a == 1)
	{
		//code
	}
}

#include <a_samp>

new bool:a = true;

main()
{
	if (a == true)
	{
		//code
	}
}


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)

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

y_bit

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..

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

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..

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)