[Dev-Blog] New Deathmatch | 1 Hit Kill

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link

  • Hallöle!
    Da ich nun schon seit ca. 1,5 Monaten an meinem eigenen Script arbeite habe ich mich dazu entschieden hier einen kleinen Dev Blog zu starten um die neusten Änderungen/Neuerungen zu veröffentlichen.



    Credits:
    Das Original Script ist NICHT von mir! Der originale Gamemode ist von X.K. und TopShooter, ich habe diesen Gamemode aber sehr stark verändert, es sind nur wenige Befehle vom Original behalten und ich selbst habe mindestens 30+ Befehle hinzugefügt.


    Original Scripter: X.K. und TopShooter
    Editiert von: LeonMrBonnie
    Sponsor für den Testserver: @JohnsonC
    Betatester: Mein Bruder und ich :P




    Was ist 1 Hit Kill?


    1 Hit Kill ist ein Gamemode in diesem es wie der Name schon sagt 1 Hit Kill ist, nach einem Schuss ist man tot. Der Spielmodus ist Team Deathmatch(TDM).
    Man kann mit Erfolgen neue Waffen freischalten und als VIP hat man schon einige Waffen freigeschaltet und ein bisschen Rüstung.
    Der Spielmodus hat 2 verschiedene Teams, Team Rot und Team Blau. Das Team dass nach dem Ablauf der 7 Minuten pro Runde die meisten Kills hat, hat gewonnen.
    Danach wird ein Scoreboard mit den besten Spielern angezeigt. Dazu kann man den Mapnamen und Ersteller der nächsten Map sehen.
    Das Script ist sehr modular und kann ganz einfach verändert werden, wenn einem das Prinzip von 1 Hit Kill nicht gefällt kann man es einfach auf normales TDM ändern.
    Das Adminsystem in dem Script ist komplett von mir gescriptet und beinhaltet alles was man brauch, die Regeln können mit /rules angezeigt werden.
    Das Adminsystem ist in 4 Ränge unterteilt, Rang 1 ist Supporter, Rang 2 ist Sr. Supporter, Rang 3 ist Administrator, und Rang 4 ist Serverleiter.
    Diese Ränge haben verschiedene Befehle, welche mit /acmds einzusehen sind.



    Genutze Includes:
    sscanf
    zcmd
    dini
    strlib
    foreach
    progress2
    streamer
    fly
    Anti-Pause



    Letztes Update:


    13. März 2017 | v0.8.1:


    - Befehl /playerlist hinzugefügt.
    - Whitelist Funktion wurde verbessert.
    - Der Chat ist nun nichtmehr verbuggt.
    - Mehrere Strings die zu klein waren wurden vergrößert.
    - Der Statistiken Textdraw hat jetzt mehrere Farben.
    - Befehl /givescore hinzugefügt.
    - Eine unbenutzte Zeile wurde aus der Datenbank entfernt.
    - Mehrere kleine Buggfixes.
    - Mehrere Textdraws leicht verbessert/verschönert.



    Momentane Features:


    - SQLite Datenbank
    - Umfangreiches Adminsystem (Befehle können mit /acmds angezeigt werden)
    - Automatischer Mapwechsel mit Scoreboard
    - InGame Maperstellung möglich mit /makemap (ID)
    - Ein paar kleine aber feine Spieler Befehle (Können angezeigt werden mit /cmds)
    - Errungenschaften System
    - VIP System mit Rüstung und Waffen für VIPs
    - Waffenauswahl Textdraw mit /guns
    - Statistiken Textdraw
    - Alles wird geloggt
    - Simples aber funktionales AntiCheat
    - Team- und Adminchat
    - Whitelist System mit hinzufügen/entfernen über Ingame Menü
    - Teammitglieder im Dienst können die Map verlassen um nicht gestört zu werden
    - Headshot System



    Geplante Features:


    - CP Jail von JustMe.77 updaten
    - Verlosungs System (Punkte, VIP und temporäre Boni)



    Macht mir weitere Vorschläge!



    Testserver IP:
    5.230.135.90:7824 [ONLINE]


    (Testserver wurde jetzt richtig eingestellt, funktioniert jetzt alles und manche Befehle wurden deaktiviert.)
    (Die Befehle sollten nun wieder funktionieren, Accounts sollten jetzt auch gespeichert werden.)


    (Einfach "/setlevel (ID) 4")




    Danke fürs Lesen meines Dev Blogs, falls ihr im Script Fehler/Buggs findet bitte schreibt mir eine PN oder antwortet unter diesem Thread.


  • Schöne Vorstellung eigentlich, nur mir gefällt der Gedanke hinter "1 Hit Kill" nicht wirklich. Ich probiers mal aus.

    Das mit dem 1 Hit Kill kann schnell geändert werden, ich lass es erstmal so.


    /EDIT:
    Es wurden nun neue Infos zu der Beschreibung des Scriptes hinzugefügt.


    /EDIT2:
    Neue Infos zum letzten Update hinzugefügt.
    Vergesst nicht mir Vorschläge was als nächstes kommen soll zu geben! :)


    /EDIT3:
    Das Script läuft nun offiziell als Teil der Puls Community auf einem Deathmatch Server, schaut mal vorbei!
    IP ist im Startbeitrag.


    /EDIT4:
    Neues Update, v.0.8.1 ist draußen.


    /EDIT5:
    Der Server läuft nun wieder als Teil der Puls Community als Deathmatch Server. IP ist immernoch im Startbeitrag. :D
    Vergesst nicht mir Feedback zu geben und/oder Vorschläge zu geben! :P


    /EDIT6:
    Neue geplante Features hinzugefügt.

  • Finde es sehr interessant und schaue vielleicht mal vorbei (mache ich selten irgendwo^^). Bin nämlich gespannt, wie du das mit dem Maperstellen und den Textdraws (Aussehen, Performance, Funktionalität) umgesetzt hast.


    Mich interessiert aber auch, was es mit der Rüstung und dem Headshotsystem auf sich hat, wenn man eh bei einem Schuss tot ist? :D

  • Finde es sehr interessant und schaue vielleicht mal vorbei (mache ich selten irgendwo^^). Bin nämlich gespannt, wie du das mit dem Maperstellen und den Textdraws (Aussehen, Performance, Funktionalität) umgesetzt hast.


    Mich interessiert aber auch, was es mit der Rüstung und dem Headshotsystem auf sich hat, wenn man eh bei einem Schuss tot ist? :D

    Danke fürs Interesse. Ich nutze eher wenige Textdraws und der jetzige Stats Textdraws ist auch nur temporär und wird noch verschönert.
    Man spawnt mit 20hp welches ein 1 Hit mit der Deagle ist. Da man nicht nur Waffen hat wie die Deagle (und auch neue freischalten kann) helfen einem die 25 Rüstung gegen eine z.B. M4. Da ich aber das Balancing nicht wirklich testen könnte wird die Rüstung eventuell verringert.
    Die Maperstellung ist mit einer einfachen dini Umsetzung welche alle wichtigen Daten die man einstellt in eine Datei einträgt, die dann geladen werden kann. Man kann eine Zone einstellen in der man sich bewegen darf (wenn man die Verlässt erhält man pro Sekunde 5 Schaden und es erscheint ein Gametext), 3 Spawns für jeweils Team rot und Team Blau (Koordinaten der Spawns werden gespeichert), und natürlich noch eine Einstellung für den Namen der Map und dem Autor.


    Ich würde dir empfehlen erst um ca. 15 Uhr auf den Server zu kommen, dann ist auch das neuste Update drauf.


    EDIT:
    Der Server ist nun auf der neusten Version. Der automatische Kick vom AntiCheat sollte nun auch wieder klappen.


    EDIT:
    Hinzu kommen jetzt zahlreiche Einstellungsmöglichkeiten mit welchen man auch ohne Scripting Erfahrung und viel durchwühlen des Scripts einige Änderungen durchführen kann.
    Diese wären:

    Falls weitere Einstellungsmöglichkeiten gewünscht sind bitte ich euch mich anzuschreiben.


    lg

  • Warum die ganzen Einstellungsmöglichkeiten nicht über MySQL verwalten? So könnte man diese während der Server läuft (oder ohne update halt später) immerhin auch ausm Web oder direkt vom Server aus, verändern. Besser, als das ganze Script neu hochzuladen.

  • Warum die ganzen Einstellungsmöglichkeiten nicht über MySQL verwalten? So könnte man diese während der Server läuft (oder ohne update halt später) immerhin auch ausm Web oder direkt vom Server aus, verändern. Besser, als das ganze Script neu hochzuladen.

    Weil das Script mit SQLite arbeitet. Und nein ich werde nicht umsteigen auf MySQL.

  • Ich will jetzt nicht sagen, dass es ein und dasselbe ist, aber wenn du so pingelig sein willst erneut die Frage:


    Warum die ganzen Einstellungsmöglichkeiten nicht über SQLLite verwalten? So könnte man diese während der Server läuft (oder ohne update halt später) immerhin auch direkt vom Server aus verändern. Besser, als das ganze Script neu hochzuladen.


    Falls dein Script einigermaßen komplex und dynamisch aufgebaut ist, werden sich sinnvolle Dinge dafür finden. Rangnamen bspw., falls man diese ändern will (Fraktionsintern oder aus dem Adminteam). Das wäre sogar etwas, was du als Konstante oben im Screenshot definiert hast.
    Aber sinnvoller würde ich bspw. das ändern der TS IP finden. Ich kenne es aus dem Freundeskreis, dass der TS mal alle paar Wochen wechselt vom neuen zum alten bis hin wieder zum neuen.


    PS: Ist nur ne Frage. Und auf ne Frage wäre ne einigermaßen nachvollziehbare Abtwort gut. Wenn du es nicht willst, einfach ein Grund, warum nicht. Man lernt nie aus. Also vielleicht lerne auch ich durch einen ausgefuchsten Grund dazu ;)

  • Na da gibts doch mehrere Möglichkeiten.
    Die Optimalste: du lädst die Variable beim Start in eine globale Variable und änderst diese globale Variable, wenn du bspw: "/changeTS "127.0.0.1" machst sowie updatest die Datenbank. So muss man das Script nicht ständig neu hochladen und die TS IP ist dynamisch.


    So wäre halt das generelle performance optimierte Vorgehen bei Umweltvariablen und anderen. Ist halt auch nen Vorschlag für künftige Dinge, die du einstellbar machen willst ^^

  • Ich werd es Mal in Betracht ziehen und morgen gucke wie oder ob überhaupt ich es umsetze. Danke für die Idee.


    Da ich an dem Gamemode nichtmehr weiterarbeite, veröffentliche ich hier den Source Code: Pastebin
    Stolz kann ich darauf zwar nicht wirklich sein, aber da es das erste war, was ich mit Pawn gemacht habe, veröffentliche ich es trotzdem mal.
    Ihr könnt damit machen was ihr wollt, Credits rausnehmen etc, ist mir egal.