[FILTERSCRIPT] Checkpoint Jail System

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

    • [FILTERSCRIPT] Checkpoint Jail System

      Hallo, heute mal ein ganz simples System von mir.
      Habe ein Thema entdeckt wo jemand nach solch ein System gefragt hat, worauf ich dann losgelegt habe :)

      Informationen

      Es handelt sich um ein Filterscript womit man Spieler bestrafen kann in Form von "Checkpoints ablaufen".
      Dafür habe ich ebenfalls kleine TextDraws erstellt die anzeigen wie viele Checkpoints noch abgelaufen werden müssen.
      Nachdem man die Checkpoints abgelaufen hat, wird man zur ursprünglichen Position mit den alten Werten gesetzt.
      Habe jetzt nicht wirklich versucht alles perfekt zu schreiben, gibt mir einfach bescheid wenn's etwas zu verbessern gibt.
      Ideen können mir ebenfalls vorgeschlagen werden.

      Screenshots




      Befehle

      • /cpjail <Name/ID> <Grund> <Checkpoint Anzahl> - Steckt den Spieler ins CP Prison.
      • /cpunjail <Name/ID< - Holt den Spieler aus dem CP Prison raus.
      • /prisonlist - Zeigt ein Dialog mit allen Spielern die sich im CP Prison + die Anzahl an Checkpoints die noch abgelaufen werden müssen.


      Credits / Erforderliche Includes / Plugins

      Updates / Bugs


      v-1.0.2


      Added: Nachricht erscheint nachdem man /prisonlist benutzt und sich niemand darin befindet.
      Changed: Zahlen werden höchgezählt anstatt runtergezählt.
      Fixed: Checkpoint nicht betretbar wenn man ein Relog gemacht hat während man im CP Prison war.

      v-1.0.3

      Changed: TextDraws werden erst erstellt wenn ein Spieler ins Jail landet
      Fixed: Spieler muss zu gespawnt sein um ins Prison gesteckt werden zu können
      Fixed: Textdraws beim reloaden vom FS
      Fixed: Bug bei Server Restart

      v-2.0.0

      Das Script speichert & lädt jetzt Informationen via SQLite. Folgende Sachen werden gespeichert & geladen

      • Spieler
      • Checkpoint Anzahl
      • Alte Position
      • Alte Virtuelle Welt
      • Alte Interior
      • Alte Waffen


      Diese werden gespeichert wenn ein Spieler sich vom Server trennt und geladen wenn er sich wieder mit dem Server verbindet.

      Außerdem gibt's nun mehrere kleine Einstellungsmöglichkeiten, darunter auch die optinale Einstellung Spieler in verschiedene Welten zu setzen @LeonMrBonnie
      Siehe selbst:

      Quellcode

      1. //Settings
      2. // 0 = Einstellung ausschalten
      3. // 1 = Einstellung einschalten
      4. #define PUNISH_DELAY 10 // Zeit in Sekunden um ein Spieler zu bestrafen nachdem er gespawnt ist (wenn er im CP Jail war und sich erneut mit dem Server verbindet)
      5. #define MIN_CPS 5 // Niedrigste mögliche Wert mit dem man ein Spieler bestrafen kann (empfohlen)
      6. #define MAX_CPS 99 // Höhste mögliche Wert mit dem man ein Spieler bestrafen kann (empfohlen)
      7. #define SAVE_WEAPONS 1 // Option: An/Ausschalten von Spieler Waffen speichern & laden
      8. #define DIFFERENT_WORLD 0 // Option: An/Ausschalten der Einstellung das Spieler sich in verschiedenen Welten befinden (um "Chaos" zu verhindern)
      9. #define PRO_PUNISHMENT 0 // Option: An/Ausschalten der Einstellung das ein Spieler die "cuffed" Animation macht (angeschaltet = sehr nervtötend)
      10. #define SHOW_RULES 1 // Option: An/Ausschalten der Möglichkeit Regeln für den Spieler anzuzeigen sobald er ein Checkpoint betretet
      Alles anzeigen



      Testserver

      server.lndsquad.com:2222

      Download

      Version 2.0.0- KLICK MICH

      Ende

      Das war alles. Ich hatte wenig Zeit um das System auszutesten, es könnte sein das Bugs auftreten.
      Meldet diese einfach unter diesem Thema und ich werde sie beheben :)

      Mit freundlichen Grüßen
      M760Li 8)

      Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von M760Li () aus folgendem Grund: Updates angepasst

    • Bei /cpunjail steht wenn man es falsch benutzt hat "Use: /cpjail <Name/ID>" sonst habe ich noch keinen Fehler gefunden.

      EDIT:
      Ich weiß nicht ob das nur bei mir so ist aber bei mir steht wenn ich im CP Prison bin "05/05 Checkpoints abgelaufen" und wenn ich in einen Checkpoint reingehe wird daraus "04/05 Checkpoints abgelaufen" Also statt es hochzuzählen zählt es runter...
      Ihr wurdet gewarnt.


      DIE LISTE:
      @Parad0x0n
      @Parad0x0n

      @Parad0x0n
      @Parad0x0n

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von LeonMrBonnie ()

    • LeonMrBonnie schrieb:

      Achso ok aber das ist trotzdem ziemlich komisch... könntest du eventuell den Code posten damit es höher wird? Ich selbst habe davon keine Ahnung.

      Hast recht! Ist nun abgeändert :)

      Edit:

      Testserver ist wieder verfügbar, Befehle funktionieren jetzt auch ohne RCON Admin zu sein (da es ja manche Vollidioten gibt die meinen es ausnutzen zu müssen ^^ )

      Mit freundlichen Grüßen
      M760Li 8)

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von M760Li ()

    • Benutze das Script jetzt auch auf meinem Server, funktioniert wirklich gut, danke!

      EDIT:
      Ich hätte noch eine Idee fürs Script, undzwar wenn niemand im CP Prison ist und man /prisonlist eingibt passiert nichts, wie wäre es wenn man da eine Nachricht im Chat kriegt dass niemand im CP Prison ist?

      EDIT2:
      Hier mal ne Idee wie man das umsetzen könnte:

      PAWN-Quellcode

      1. CMD:prisonlist(playerid)
      2. {
      3. new cQuery[1024];
      4. if(Player[playerid][Level] < 1) return SendErrorMessage(playerid,"Du musst ein Supporter sein um diesen Befehl zu benutzen.");
      5. foreach(new i: Player)
      6. {
      7. if(pJailed[i] == true)
      8. {
      9. format(cQuery, sizeof(cQuery),"{FFFF00}%s {FFFFFF}|| Verbleibende CP's: {FFFF00}%d\n", GetName(i), MaxCheckPoints[i]-CheckPointCounter[i]);
      10. ShowPlayerDialog(playerid, D_PRISONLIST, DIALOG_STYLE_MSGBOX, "Spieler im CP Prison", cQuery, "Schliessen", "");
      11. }
      12. }
      13. if(strlen(cQuery) < 1) ShowPlayerDialog(playerid,D_PRISONLIST,DIALOG_STYLE_MSGBOX,"{FFFF00}Spieler im CP Prison", "Es ist niemand im CP Prison.","Schliessen","");
      14. return 1;
      15. }
      Alles anzeigen
      Ihr wurdet gewarnt.


      DIE LISTE:
      @Parad0x0n
      @Parad0x0n

      @Parad0x0n
      @Parad0x0n

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von LeonMrBonnie ()


    • Ehrlich gesagt ist es jetzt auch nicht so viel besser.
      Jetzt wird versucht den Dialog immer anzuzeigen. Was allerdings nicht unbedingt immer passiert, da ggf der Text leer ist. Der Funktionsaufruf findet aber trotzdem statt.
      Ich würde das ShowPlayerDialog nur aufrufen, wenn pCount > 0 ist bzw wenn cQuery nicht leer ist. Das pCount kann man sich sowieso sparen.

      //Edit

      PAWN-Quellcode

      1. format(str, sizeof(str),"%02d", MaxCheckPoints[playerid]);

      mit %02d wird der Zahlenwert mit 0 aufgefüllt, bis die Zahl zweistellig (2) ist. Bedeutet:
      1 -> 01
      8 -> 08
      10 -> 10
      234 -> 234
      Würde dir helfen bei Zeile 349 bis 370.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Goldkiller ()

    • Die Variable benötige ich für ein Update das bald auf euch zu kommt, jetzt wird's nur angezeigt wenn pCount höher als 0 ist.
      Das mit den Zahlenwert habe ich nicht gewusst, danke! Ist nun auch abgeändert :)

      Push :)

      Mit freundlichen Grüßen
      M760Li 8)

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von M760Li ()

    • Wenn ich das richtig sehe wird momentan jeder in die gleiche virtuelle Welt teleportiert, ich denke mal das könnte Probleme bereiten bei vielen Spielern deswegen warum nicht in eine Random virtuelle Welt teleportieren?
      Beispiel:

      PAWN-Quellcode

      1. stock randomEx(min, max)
      2. {
      3. //Credits to y_less
      4. new rand = random(max-min)+min;
      5. return rand;
      6. }
      Das hinzufügen.

      Bei /cpjail oben:

      PAWN-Quellcode

      1. new world = randomEx(5, 2147483647);


      SetVirtualWorld bei /cpjail zu:

      PAWN-Quellcode

      1. SetPlayerVirtualWorld(target, world);
      Ihr wurdet gewarnt.


      DIE LISTE:
      @Parad0x0n
      @Parad0x0n

      @Parad0x0n
      @Parad0x0n
    • Wieso sollte es denn Probleme bereiten, kannst du irgendwelche Beispiele machen?
      Finde es besser wenn man alle in einem Überblick hat, kann aber auch bei Bedarf eine Einstellung hinzufügen mit der man zwischen beiden Möglichkeiten wählen kann.

      Da ich schon gerade dabei bin eine Antwort zu verfassen:

      Das FS ist nun auch auf Englisch verfügbar, hier das Thema dazu:

      forum.sa-mp.com/showthread.php?t=629838


      Am nächsten Freitag wird's ein neues Update geben. Es ist bereits fertig, muss aber noch ordentlich ausgetestet werden und kleine Dinge fehlen ebenfalls. Das neue Update enthält viele Verbesserungen und einige Erneuerungen, seid gespannt :)

      Mit freundlichen Grüßen
      M760Li 8)