Für Serverbetreiber

Metin2 GM-Rechte vergeben: Rechtestufen und sichere Nutzung

Metin2 GM-Rechte vergeben: Rechtestufen und sichere Nutzung

GM-Rechte auf deinem Metin2 Server zu vergeben, ist eine Sache von ein paar Zeilen in der Datenbank; schwierig ist, die Rechte der richtigen Person auf der richtigen Stufe zu geben und Missbrauch zu verhindern. In diesem Guide erklären wir, wo GM-Rechte festgelegt werden, welche Rechtestufen es gibt, wie du Rechte vergibst und wieder entziehst und welche Sicherheitsmaßnahmen sinnvoll sind. Die Angaben stützen sich auf den öffentlich verfügbaren Metin2-Serverquellcode und die SQL-Dateien; je nach Version der Serverfiles und vorgenommenen Änderungen können Details abweichen.

Wo werden GM-Rechte festgelegt?

Die Rechte stehen in der Tabelle gmlist der Datenbank common. Der DB-Core liest diese Tabelle und schickt sie an die Game-Cores; die Rechtestufe eines Charakters wird beim Laden des Charakters anhand dieser Liste festgelegt.

Spalte Bedeutung
mAccount Benutzername des Spielaccounts des GMs
mName Name des Charakters, der die Rechte bekommt
mContactIP Erlaubte Verbindungs-IP (siehe Hinweis unten)
mServerIP Game-Server, für den der Eintrag gilt; ALL bedeutet alle
mAuthority Rechtestufe

Die Rechte hängen am Charakter; ein anderer Charakter auf demselben Account wird nicht zum GM. In den Locale-Einstellungen für die Türkei und Europa vergleicht der Quellcode auch den Accountnamen: Selbst wenn der GM-Charakter gelöscht und sein Name auf einem anderen Account neu vergeben wird, bekommt dieser Account keine Rechte.

Rechtestufen

Im Quellcode sind die Stufen von niedrig nach hoch geordnet, und jede Stufe kann auch die Befehle der darunterliegenden nutzen:

Stufe Beispielbefehle, die in der Standard-Befehlstabelle hinzukommen
LOW_WIZARD /warp, /goto, /transfer, /dc, /invisible, /notice_map
WIZARD /purge, /respawn
HIGH_WIZARD /notice, /mob, /kill, /eventflag, /shutdown
GOD /item, /advance
IMPLEMENTOR /reload, /set, /who

In manchen SQL-Dateien fehlt WIZARD unter den Optionen der Spalte mAuthority; auch wenn der Code den Wert kennt, kannst du diese Stufe nicht vergeben, solange die Spalte sie nicht zulässt. Die Erklärungen zu den Befehlen findest du in unserer Liste der GM-Befehle.

GM-Rechte vergeben: Schritt für Schritt

  1. Eigenen Account anlegen: Erstelle für den GM einen Spielaccount und Charakter, getrennt von deinem eigenen Spieleraccount.

  2. In die Liste eintragen: Führe in der Datenbank common diese Abfrage aus und passe die Werte an:

    INSERT INTO gmlist (mAccount, mName, mContactIP, mServerIP, mAuthority)
    VALUES ('gmkonto', 'GMCharakter', '', 'ALL', 'LOW_WIZARD');
    
  3. Liste neu laden: Gib mit einem Charakter der Stufe IMPLEMENTOR im Spiel /reload a ein oder starte den Server neu. Laut Quellcode wirkt das Neuladen sofort auch für Charaktere, die auf der Liste stehen und gerade online sind.

  4. Testen: Logg dich mit dem GM-Charakter ein und führe einen harmlosen Befehl seiner Stufe aus, zum Beispiel /state.

Rechte wieder entziehen

Lösch die Zeile des GMs, dessen Aufgabe beendet ist, und lade die Liste neu:

DELETE FROM gmlist WHERE mName = 'GMCharakter';

Gib danach /reload a ein. Wichtig: Laut Quellcode senkt das Neuladen nicht die Stufe eines Charakters, der von der Liste gestrichen wurde, aber gerade online ist; die Rechte bleiben, bis der Charakter neu geladen wird. Trenne deshalb mit /dc die Verbindung der Person und ändere das Passwort des GM-Accounts.

Befehlsstufen mit der CMD-Datei einschränken

Mit der CMD-Datei im Ordner des Game-Cores kannst du ändern, welche Stufe ein Befehl verlangt. In jede Zeile kommen ein Befehl und eine Stufe; DISABLE sperrt den Befehl für alle:

item IMPLEMENTOR
shutdown IMPLEMENTOR
full_set DISABLE

In der Standardtabelle hat selbst LOW_WIZARD, die niedrigste Stufe, Zugriff auf Testbefehle wie /full_set und /all_skill_master, die dem eigenen Charakter des GMs komplette Ausrüstung, Boni und Fertigkeiten geben; halte die niedrigste Stufe also nicht für harmlos. Da laut Quellcode eine fehlerhafte Zeile den Start des Cores verhindert, teste jede Änderung zuerst auf einem Testserver.

Empfehlungen für den sicheren Einsatz

  • Minimale Rechte: Gib jedem GM die niedrigste Stufe, die für seine Arbeit reicht; für das Support-Team genügt meist LOW_WIZARD.
  • Starkes, einzigartiges Passwort: Das Passwort eines GM-Accounts darf nirgendwo sonst verwendet und auch im Team nicht geteilt werden.
  • IP-Beschränkung: Es gibt zwar die Spalte mContactIP, doch im von uns untersuchten Quellcode wird in den Locale-Einstellungen für die Türkei und Europa die IP nicht geprüft, sondern nur der Accountname. Willst du eine IP-Beschränkung, lass sie von deinem Entwickler in den Serverfiles umsetzen oder setz sie beim Verwaltungszugang zu Datenbank, SSH und Panel ein.
  • Testmodus aus: Ist in der CONFIG-Datei des Game-Cores die Einstellung TEST_SERVER aktiv, bekommt laut Quellcode jeder die Stufe IMPLEMENTOR. Prüf den Wert dieser Zeile in den CONFIG-Dateien, die mit fertigen Serverdateien kommen; stell sicher, dass sie auf dem Live-Server aus ist.
  • Logs prüfen: Laut Quellcode werden GM-Logins und mit /item erzeugte Items in die Log-Datenbank geschrieben; bei den Einstellungen für die Türkei und Europa landen GM-Befehle zusätzlich in der Tabelle command_log. Sieh sie dir einmal pro Woche an.
  • Regelmäßig aufräumen: Lösch die Einträge von GMs, die das Team verlassen haben oder nicht mehr aktiv sind, zeitnah.

Sind Team und Files bereit, kannst du deinen Server kostenlos eintragen; für den Austausch mit anderen Serverbetreibern steht dir unser Forum offen.

Häufig gestellte Fragen

Ich habe GM-Rechte vergeben, aber die Befehle funktionieren nicht. Warum?

Hast du die Liste nicht mit /reload a neu geladen oder den Server nicht neu gestartet, greifen die Rechte nicht. Prüf auch, ob Account- und Charaktername exakt mit der Zeile in gmlist übereinstimmen und ob die Stufe für den Befehl reicht.

Kann ich einem GM Rechte auf mehreren Charakteren geben?

Ja, dafür brauchst du für jeden Charakter eine eigene Zeile. Trotzdem bedeutet jeder zusätzliche Charakter ein neues Risiko; bleib, wenn möglich, bei einem Charakter.

Warum ist auf dem Testserver jeder GM?

Laut Quellcode bekommt bei aktivem TEST_SERVER jeder Charakter die höchste Stufe. Dieses Verhalten ist für Testumgebungen gedacht; lass die Einstellung auf dem Live-Server niemals aktiv.

Kann man GM-Rechte im Spiel vergeben?

Im unveränderten Quellcode gibt es dafür keinen Befehl im Spiel; die Rechte werden über die Tabelle gmlist vergeben und mit /reload a neu geladen. Manche Serverfiles bringen dafür zusätzliche Werkzeuge mit.

0 Likes

Weitere Beiträge

Kommentare 0

Noch keine Kommentare vorhanden.