TERNARY OPERATOR

Započeo Jovan Spasic, Novembar 29, 2021, 14:51:01 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 2 gostiju pregledaju ovu temu.

Problem(error/warning): TERNARY OPERATOR
Deo skripte: odradio sam Ternary operator na /winter komandi i sad sve mi je okej al nije mi jasno kako da igracu setam objekat npr evo ovde gde pokusavam da napravim zelim da setam kapicu kada je na Ukljuceno a zelim maknuti kapicu kada je na Iskljuceno
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): [pawn]Moj pokusaj winterkapica = (!winterkapica) ? true : false;
            winterkapica = ? "RemovePlayerAttachedObject(playerid,1);" : "SetPlayerAttachedObject(playerid, 1, 19065, 2, 0.120000, 0.040000, -0.003500, 0, 100, 100, 1.4, 1.4, 1.4);");[/pawn]
Slika/video ingame problema(obavezno ako je ingame problem): link slike
Poslednja Izmena: Decembar 01, 2021, 00:09:52 PRE PODNE od мυмα

U ovom slucaju ne mozes da koristis ternary operator

Citat: V01D poslato Novembar 29, 2021, 16:14:13 POSLE PODNE
U ovom slucaju ne mozes da koristis ternary operator
A jbg bila bi fora da dodaju ne bi bilo lose

" " u ternary koristiš samo ako je string u pitanju tipa "Winter", "123", a za funkcije ne treba, a u ovom slučaju i ne može (da ja znam)
Ako je isti naziv funkcije onda može npr

[pawn]SetPlayerColor(playerid, ((admin > 0) ? 0x000000FF : 0xFFFFFFFF));[/pawn]

Ternary operator sluzi za evaluaciju, ne da potpuno zamijeni if/else statement.
Ono sto ti hoces da uradis moze se postici pravljenjem custom macro-a koji bi kao krajnji rezultat imao

new rupabezdna = winterkapica ? SetPlayerAttachedObject(...) : RemovePlayerAttachedObject(...);
#pragma unused rupabezdna

Ali nemas nikakve benefite od toga.


if ((winterkapica = !winterkapica)) SetPlayerAttachedObject(...);
else RemovePlayerAttachedObject(...);

SendClientMessage(playerid, -1, winterkapica ? "Metnuo si kapicu" : "Skino si kapicu");

Citat: // xunder poslato Novembar 29, 2021, 18:18:16 POSLE PODNE
Ternary operator sluzi za evaluaciju, ne da potpuno zamijeni if/else statement.
Ono sto ti hoces da uradis moze se postici pravljenjem custom macro-a koji bi kao krajnji rezultat imao

new rupabezdna = winterkapica ? SetPlayerAttachedObject(...) : RemovePlayerAttachedObject(...);
#pragma unused rupabezdna

Ali nemas nikakve benefite od toga.


if ((winterkapica = !winterkapica)) SetPlayerAttachedObject(...);
else RemovePlayerAttachedObject(...);

SendClientMessage(playerid, -1, winterkapica ? "Metnuo si kapicu" : "Skino si kapicu");

Fala bato ziv bio