Kann man die Bools noch weiter kürzen? Will so wenig Ressourcen wie möglich verbrauchen und zeilensparend arbeiten.
Du könntest es so schreiben:
if(!IsPlayerInRangeOfPoint(playerid, 10.0, 1260.3502, -1698.7749, 13.2889)) return SendClientMessage(playerid,dunkelrot,"Du bist zu weit entfernt!");
if(pInfo[playerid][Fraktion] != 1) return SendClientMessage(playerid,dunkelrot,"Du bist kein Polizist!");
lspdschranke = !lspdschranke;
MoveObject(LSPDSchranke,1260.3502+(8*_:lspdschranke), -1698.7749, 13.2889,4);
if(lspdschranke) SendClientMessage(playerid,dunkelgrün,"Schranke geöffnet!");
else SendClientMessage(playerid,dunkelrot,"Schranke geschlossen!");
Zeile 3 tauscht praktisch immer den Wert zum Gegenteil (wenn true, dann false und andersherum). MoveObject nimmt die +8 nur dann, wenn das bool true (1) ist. Das "_:" entfernt den "bool" Tag, damit true als 1 interpretiert wird, sonst gibt es einen Tag Mismatch.
Die Nachrichten sollten klar sein.
Performance-technisch ändert das aber nicht wirklich was, es wird eher schlechter, da bei MoveObject eine Rechenoperation dazu kommt.
Zeilen-mäßig hast du natürlich weniger.
Ganz übertrieben kannst du es auch so schreiben:
if(!IsPlayerInRangeOfPoint(playerid, 10.0, 1260.3502, -1698.7749, 13.2889)) return SendClientMessage(playerid,dunkelrot,"Du bist zu weit entfernt!");
if(pInfo[playerid][Fraktion] != 1) return SendClientMessage(playerid,dunkelrot,"Du bist kein Polizist!");
MoveObject(LSPDSchranke,1260.3502+(8*_:(lspdschranke = !lspdschranke)), -1698.7749, 13.2889,4);
SendClientMessage(playerid, (lspdschranke) ? (dunkelgrün) : (dunkelrot), (lspdschranke) ? ("Schranke geöffnet!") : ("Schranke geschlossen!"));
Das ist dann aber nicht mehr auf den ersten Blick lesbar.