[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:




    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 :)

    5 Mal editiert, zuletzt von JustMe.77 () 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...

    CEO vom Team Verbale Vergewaltigung - Wir ficken auch trocken

    LeonMrBonnie.de


    Scripting

    Ich helfe zu allen Fragen bezüglich PAWN Scripting gerne weiter.

    Auch im Bereich JavaScript und dort der RageMP API helfe ich gern.


    Kontakt

    Konversation: Konversation starten

    Oder eine der Kontaktmöglichkeiten auf leonmrbonnie.de

    Einmal editiert, zuletzt von LeonMrBonnie ()

  • 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.

    CEO vom Team Verbale Vergewaltigung - Wir ficken auch trocken

    LeonMrBonnie.de


    Scripting

    Ich helfe zu allen Fragen bezüglich PAWN Scripting gerne weiter.

    Auch im Bereich JavaScript und dort der RageMP API helfe ich gern.


    Kontakt

    Konversation: Konversation starten

    Oder eine der Kontaktmöglichkeiten auf leonmrbonnie.de

  • 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 ^^ )

    Einmal editiert, zuletzt von JustMe.77 ()

  • 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:

    CMD:prisonlist(playerid)
    {
    new cQuery[1024];
    if(Player[playerid][Level] < 1) return SendErrorMessage(playerid,"Du musst ein Supporter sein um diesen Befehl zu benutzen.");
    foreach(new i: Player)
    {
    if(pJailed[i] == true)
    {
    format(cQuery, sizeof(cQuery),"{FFFF00}%s {FFFFFF}|| Verbleibende CP's: {FFFF00}%d\n", GetName(i), MaxCheckPoints[i]-CheckPointCounter[i]);
    ShowPlayerDialog(playerid, D_PRISONLIST, DIALOG_STYLE_MSGBOX, "Spieler im CP Prison", cQuery, "Schliessen", "");
    }
    }
    if(strlen(cQuery) < 1) ShowPlayerDialog(playerid,D_PRISONLIST,DIALOG_STYLE_MSGBOX,"{FFFF00}Spieler im CP Prison", "Es ist niemand im CP Prison.","Schliessen","");



    return 1;
    }

    CEO vom Team Verbale Vergewaltigung - Wir ficken auch trocken

    LeonMrBonnie.de


    Scripting

    Ich helfe zu allen Fragen bezüglich PAWN Scripting gerne weiter.

    Auch im Bereich JavaScript und dort der RageMP API helfe ich gern.


    Kontakt

    Konversation: Konversation starten

    Oder eine der Kontaktmöglichkeiten auf leonmrbonnie.de

    2 Mal editiert, zuletzt von LeonMrBonnie ()

  • Hast du /prisonlist auch mal mit mehr als 1 Spieler im Prison ausprobiert? Wird nämlich nicht korrekt funktionieren.

    Mit meiner Methode funktionierts.

    CEO vom Team Verbale Vergewaltigung - Wir ficken auch trocken

    LeonMrBonnie.de


    Scripting

    Ich helfe zu allen Fragen bezüglich PAWN Scripting gerne weiter.

    Auch im Bereich JavaScript und dort der RageMP API helfe ich gern.


    Kontakt

    Konversation: Konversation starten

    Oder eine der Kontaktmöglichkeiten auf leonmrbonnie.de


  • Hast du /prisonlist auch mal mit mehr als 1 Spieler im Prison ausprobiert? Wird nämlich nicht korrekt funktionieren.

    Er hätte das ShowPlayerDialog außerhalb der Schleife packen sollen, allerdings klappt es, da der Dialog sich dann immer aktualisiert ^^

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • 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
    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.

    Einmal 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 :)

    2 Mal editiert, zuletzt von JustMe.77 ()

  • 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:



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


    Bei /cpjail oben:
    new world = randomEx(5, 2147483647);


    SetVirtualWorld bei /cpjail zu:
    SetPlayerVirtualWorld(target, world);

    CEO vom Team Verbale Vergewaltigung - Wir ficken auch trocken

    LeonMrBonnie.de


    Scripting

    Ich helfe zu allen Fragen bezüglich PAWN Scripting gerne weiter.

    Auch im Bereich JavaScript und dort der RageMP API helfe ich gern.


    Kontakt

    Konversation: Konversation starten

    Oder eine der Kontaktmöglichkeiten auf leonmrbonnie.de

  • 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:


    http://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 :)

  • Man kann sich auch mit Fäusten zu Tode boxxen oder nicht? Ich glaube ab 20-30 Spielern aufeinmal im CP Prison wirds dann ziemlich eng und man läuft sich nurnoch gegenseitig an.

    CEO vom Team Verbale Vergewaltigung - Wir ficken auch trocken

    LeonMrBonnie.de


    Scripting

    Ich helfe zu allen Fragen bezüglich PAWN Scripting gerne weiter.

    Auch im Bereich JavaScript und dort der RageMP API helfe ich gern.


    Kontakt

    Konversation: Konversation starten

    Oder eine der Kontaktmöglichkeiten auf leonmrbonnie.de

  • Okay, man kann sich aktuell noch schlagen, das wird im nächsten Update dann behoben sein.


    Wenn du 20-30 Spieler im CP-Jail hast, läuft irgendwas falsch :p

    Wenn man nen großen Server hat kann das passieren. ^^

    CEO vom Team Verbale Vergewaltigung - Wir ficken auch trocken

    LeonMrBonnie.de


    Scripting

    Ich helfe zu allen Fragen bezüglich PAWN Scripting gerne weiter.

    Auch im Bereich JavaScript und dort der RageMP API helfe ich gern.


    Kontakt

    Konversation: Konversation starten

    Oder eine der Kontaktmöglichkeiten auf leonmrbonnie.de

  • warum nicht in eine Random virtuelle Welt teleportieren?

    Warum nicht sicher gehen, dass der Spieler eindeutig in eine Welt kommt, in der kein anderer ist? ^^


    Zum Beispiel mit:


    SetPlayerVirtualWorld(playerid, playerid+1);

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S