Ampeln richtig entfernen

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Ampeln richtig entfernen

      Herzlich Willkommen zu diesem Tutorial, ich möchte euch zeigen, wie ihr alle Ampeln richtig entfernt.
      SAMP hat einen Limit bei 1000 Zeilen vom RemoveBuildingForPlayer.
      Wenn wir alle Ampeln einzelt entfernen, hängt sich der Server nach einem GMX auf.

      Schritt 1:
      Wir brauchen jede ID einer Ampel aus ganz San Andreas.
      Diese ID's sind:
      Spoiler anzeigen

      1283
      1284
      1315
      1350
      1351
      1352
      1373
      1374
      3516


      Schritt 2:
      Wir brauchen jeweils eine Funktion pro Ampel ID.
      Diese Funktion sieht so aus:

      PAWN-Quellcode

      1. RemoveBuildingForPlayer(playerid,Objekt ID, X, Y, Z, Radius);

      Die Funktion ist sehr leicht zu verstehen:
      Playerid erklärt sich von selbst
      Objekt ID -> Die ID vom Objekt
      X -> X Koordinate
      Y -> Y Koordinate
      Z -> Z Koordinate
      Radius -> Radius in welchem die Objekte gelöscht werden sollen.

      Schritt 3:
      Diese Funktion müssen wir unter dem Callback OnPlayerConnect einfügen, damit es funktioniert.

      PAWN-Quellcode

      1. public OnPlayerConnect(playerid)
      2. {
      3. RemoveBuildingForPlayer(playerid, 1283, 0.0, 0.0, 0.0, 8000.0); //Alle Ampeln mit der ID 1283
      4. RemoveBuildingForPlayer(playerid, 1284, 0.0, 0.0, 0.0, 8000.0); //Alle Ampeln mit der ID 1284
      5. RemoveBuildingForPlayer(playerid, 1315, 0.0, 0.0, 0.0, 8000.0); //Alle Ampeln mit der ID 1315
      6. RemoveBuildingForPlayer(playerid, 1350, 0.0, 0.0, 0.0, 8000.0); //Alle Ampeln mit der ID 1350
      7. RemoveBuildingForPlayer(playerid, 1351, 0.0, 0.0, 0.0, 8000.0); //Alle Ampeln mit der ID 1351
      8. RemoveBuildingForPlayer(playerid, 1352, 0.0, 0.0, 0.0, 8000.0); //Alle Ampeln mit der ID 1352
      9. RemoveBuildingForPlayer(playerid, 1373, 0.0, 0.0, 0.0, 8000.0); //Alle Ampeln mit der ID 1373
      10. RemoveBuildingForPlayer(playerid, 1374, 0.0, 0.0, 0.0, 8000.0); //Alle Ampeln mit der ID 1374
      11. RemoveBuildingForPlayer(playerid, 3516, 0.0, 0.0, 0.0, 8000.0); //Alle Ampeln mit der ID 3516
      12. return 1;
      13. }
      Alles anzeigen


      Ich hoffe ihr habt diese Anleitung gut verstanden, das ist nämlich mein erstes Tutorial, welches ich geschrieben habe.
      Wer Rechtschreibfehler findet darf sie gerne behalten.

      Mit freundlichen Grüßen, Morimoto.

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Morimoto ()

    • Morimoto schrieb:

      SAMP hat einen Limit bei 1000 Zeilen vom RemoveBuildingForPlayer.

      Das ist nicht ganz richtig, es gibt ein Problem damit, wenn man den Spieler mit den Zeilen zuscheißt.

      Dann blockiert der Client irgendwann die Anfragen.
      Macht man das aber in geregelten Abständen dann funktioniert das Problemlos.

      BTW: Du hast nicht alle Ampeln entfernt.
      In Las Venturas stehen noch welche mit der ID 3516
      Das sind die die über die Schnellstraßen gehen.
      "Bevor ich mir Informationen aus der "Bild" hole,
      werde ich anfangen, Wahlergebnisse danach vorauszusagen,
      neben welchen Busch unsere Katze gepinkelt hat."
      Margarete Stokowski
    • BlackAce schrieb:

      Morimoto schrieb:

      SAMP hat einen Limit bei 1000 Zeilen vom RemoveBuildingForPlayer.

      Das ist nicht ganz richtig, es gibt ein Problem damit, wenn man den Spieler mit den Zeilen zuscheißt.

      Dann blockiert der Client irgendwann die Anfragen.
      Macht man das aber in geregelten Abständen dann funktioniert das Problemlos.

      BTW: Du hast nicht alle Ampeln entfernt.
      In Las Venturas stehen noch welche mit der ID 3516
      Das sind die die über die Schnellstraßen gehen.
      Ach okay. Ich füg das eben noch hinzu. Danke für die Erweiterung :).
    • Gibt es keine Möglichkeit die Objekte dauerhaft zu entfernen sobald der Server gestartet ist?
      Ich meine wenn man über 200 Spieler hat und über 200 mal die Objecte entfernt werden, müsste doch auf dauer anstrengend werden.
      Dazu kommt ja auch das disconnecten und reconnecten oder ist das schon die effizienteste Lösung?

      lg
      <3 Tanya The Evil <3 | Ich liebe Sie von allen Anime Girls am meisten! <3
    • ExTaZZe schrieb:

      Mal eine kurze Frage, die limitierung auf 1000 Zeilen der Removes zählt soweit ich mich erinnern kann nicht, wenn man es per FS macht und falls doch kann man ja pro FS einfach 1000 Removes rein hauen oder ? Habe schon lange nicht mehr gescriptet würde mich deshalb interessieren.

      B2T:
      Sehr simples und gut erklärtes TUT :)
      1000 Removes insgesamt, ich glaube 1000 pro FS wird nicht funktionieren.
      world-of-revolution.de
      Closed BETA !! :D


    • Jeff_Hardy schrieb:

      ExTaZZe schrieb:

      Mal eine kurze Frage, die limitierung auf 1000 Zeilen der Removes zählt soweit ich mich erinnern kann nicht, wenn man es per FS macht und falls doch kann man ja pro FS einfach 1000 Removes rein hauen oder ? Habe schon lange nicht mehr gescriptet würde mich deshalb interessieren.

      B2T:
      Sehr simples und gut erklärtes TUT :)
      1000 Removes insgesamt, ich glaube 1000 pro FS wird nicht funktionieren.
      Alles klar gut danke für die Aufklärung :)
      -> Pulse-Network <- Im Aufbau

    • ExTaZZe schrieb:

      Mal eine kurze Frage, die limitierung auf 1000 Zeilen der Removes zählt soweit ich mich erinnern kann nicht, wenn man es per FS macht und falls doch kann man ja pro FS einfach 1000 Removes rein hauen oder ? Habe schon lange nicht mehr gescriptet würde mich deshalb interessieren.

      B2T:
      Sehr simples und gut erklärtes TUT :)
      Es gibt an sich keine Limitierung, jedoch wenn du alles auf einmal an den Clienten sendest kann es passieren das der Client einen crash kassiert. Kannst die ganze Map sogar entfernen bloß musst du den Code etwas verteilen damit nicht alles auf einmal entfernt bzw. ausgeführt wird.
    • Das ganze lässt sich in 4 Zeilen Regeln. Wenn du dich als Scripter bezeichnen willst dann hier die Tipps.

      RemoveBulding umfasst eine Floatangabe welche die entsprechende ObjektID in einem gesamten Radius entfernt.

      Die SAMP Map ist 20.000 x 20.000 Groß.

    • das ändert aber nicht die größe der SA Map.
      Aus welchem Grund sollte man den Clienten mit etwas belasten, was gar nicht nötig ist.
      Es wäre mir neu, dass sich außerhalb von SA sich Ampeln o.ä befinden.
      "Bevor ich mir Informationen aus der "Bild" hole,
      werde ich anfangen, Wahlergebnisse danach vorauszusagen,
      neben welchen Busch unsere Katze gepinkelt hat."
      Margarete Stokowski