Beiträge von Whice

    Gibt aktuell einige von diesen kurzen Videos:

    Externer Inhalt twitter.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Externer Inhalt twitter.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Externer Inhalt twitter.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    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:


    1. Kommentare entfernen oder erneuern
      1. 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.
    2. Code-Duplizierung umgehen
      1. 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:

    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.

    Grundsätzlich kannst du ein Dialog deiner Wahl nehmen und nur das hinzufügen, was du möchtest.

    Wichtig ist, dass du den String immer weiter ergänzt, bis du alles abgefragt hast.

    Als Konzept Beispiel:


    Code
    new dialogInventarString[128], donuts = pInfo[playerid][pDonuts], milkshake = pInfo[playerid][pMilkshake];
    if(donuts > 0) format(dialogInventarString, sizeof(dialogInventarString), "Donuts - %d\n", donuts);
    if(milkshake > 0) format(dialogInventarString, sizeof(dialogInventarString), "%sMilkshake - %d\n", dialogInventarString, milkshake);
    if(...
    ShowPlayerDialog(playerid, dialogid, style, caption, dialogInventarString, button1, button2);


    //EDIT


    Und wenn dein "dynamisch" darauf bezogen war, dass sich die Werte in der Zeit, wo du die Dialoge offen hast, ändern können, kann ich dir folgendes empfehlen:

    Ich vermute (kenne deine Struktur ja nicht) das du Paragraf als VARCHAR abgespeichert hast. Danach willst du aber Zahlen sortieren (die Paragrafennummern).

    Das kannst du ganz einfach mit deinem cast oder mit 'VARCHAR + 0' erreichen. Dazu muss allerdings noch das '$' zeichen entfernt werden. Dies kannst du einfach mit '' REPLACEN.


    Somit würde ich dir folgendes Vorschlagen:

    SELECT * FROM `laws` WHERE `Law` = 'StGB' AND `Paragraph` IS NOT NULL ORDER BY (REPLACE(`Paragraph`, '§', '') + 0) ASC


    So bin ich zu folgendem Ergebnis gekommen:

    pasted-from-clipboard.png


    Falls deine Struktur doch anders aufgebaut ist, schreib sie gern nochmal hier rein.