Kann ich Code Grundsätzlich so lassen wenn er funktioniert oder ist das Müll?
Grundsätzlich ist es so, dass du (und dein Team) deinen Code verstehen musst und damit klarkommen musst.
Wenn dies für dich übersichtlich ist, dann top.
Persönlich würde ich allerdings etwas ändern. Mir wäre das zu viel in einer Zeile und zu viel Code Duplizierung.
Was ich also machen würde, wäre:
- Kommentare entfernen oder erneuern
- Du hast durch deine Variablen Benennung ja bereits klar definiert, welches Pickup denn eigentlich ist. Somit wäre für mich klar, in welchen If-Block ich muss, um etwas zu finden.
- Code-Duplizierung umgehen
- Du machst in den beiden (und vermutlich später noch mehr) Fällen dasselbe, somit schreibe ich lieber eine Funktion und rufe nur diese auf.
Also machen wir das:
public OnPlayerPickUpPickup(playerid, pickupid){
if(pickupid == stadthalleenter) SetPlayerPosEx(playerid, 383.3442, 173.8718, 1008.3828, 3);
if(pickupid == stadthalleexit) SetPlayerPosEx(playerid, 1481.1390, -1766.0382, 18.7958);
return 1;
}
stock SetPlayerPosEx(playerid, Float:x, Float:y, Float:z, interior = 0, virtualworld = 0) {
SetPlayerPos(playerid, x, y, z);
SetPlayerInterior(playerid, interior);
SetPlayerVirtualWorld(playerid, virtualworld);
return 1;
}
Alles anzeigen
Durch die Funktion würde es nun den Vorteil geben, dass das interior und die virtuelle Welt einen Standardwert hat, also man diesen beim Aufrufen auslassen kann.
Weiterhin kannst du so schnell Änderungen vornehmen, wie das setzten der Kamera hinter den Spieler SetCameraBehindPlayer(playerid); nachdem er teleportiert wurde. Dies ist jetzt eine Zeile, statt es überall zu ändern.
- Doch jetzt könnte man den Prozess noch erweitern. Wenn du irgendwann viele Pickups hast, kostet es Leistung diese zu laden. Es macht also irgendwann Sinn, eine Reichweite der Pickups einzustellen. Dies kann man mit einem Streamer Plugin erreichen: https://github.com/samp-incogn…gin/wiki/Natives-(Pickups)
Du merkst so jedoch schnell, es geht immer weiter, es geht immer anders. Die Frage ist, wofür du es brauchst. Klar kann man beim Coden auf 100% Effizienz achten und ein paar Sekunden schneller sein als jemand, der es zum Spaß und zum Lernen macht.
Doch wenn beide Codes compilen und du erstmal auf dem Server bist, machen sie doch das gleiche, sie bereiten hoffentlich Spaß und das sollte es meiner Meinung nach immer machen.