Beiträge von K3ks3

    Hi,


    Vor einiger Zeit habe ich mich mal recht intensiv mit der Administration von SWBF2-Servern auseinandergesetzt, dabei ist diese kleine Tool entstanden um die
    Verwaltung eines SWBF2-Dedicatedservers etwas zu erleichtern. Falls wer Interesse am Sourcecode hat: http://sourceforge.net/projects/swbf2adminhelper/.
    Die kompilierte Variante mit Config-Dateien und SQL-Skript zum Einrichten der Datenbank findet sich im Anhang.


    Kann folgendes:
    - vollständige Fernverwaltung über das Internet - das Tool muss nicht auf dem selben Rechner laufen wie der Gameserver.
    - Spielerliste kann bei Bedarf direkt aus dem RAM gelesen werden
    - Sperren des ingame-logins möglich (/admin /login) um Bruteforce-Attacken zu unterbinden
    - eigene Benutzergruppen mit individuellen Berechtigungen konfigurierbar
    - benutzerspezifische Berechtigungen konfigurierbar
    - einfache Ingame-Gruppenverwaltung
    - Autoannounce-Scheduler mit diversen Statusvariablen
    - komplett MySQL-basiertes Spieler-, Benutzer-, Berechtigungs- und Ban-Management
    - externes Bansystem, mit IP-, Keyhash- und Tempban Unterstützung (unbegrenzt viele Bans, bleiben auch nach einem Neustart erhalten)
    - eigene Willkommensnachrichten
    - vollständig konfigurierbare Templates
    - frei definierbare Befehle
    - lightweight, kein GUI


    Befehlsliste (ausgehend von der Standardkonfiguration):



    Eigene Befehle sind dynamisch definierbar.


    Die Konfiguration erfolgt über XML-Dateien, welche sich im Verzeichnis ./cfg relativ zur Anwendung befinden.
    Im Unterordner ./cfg/cmd befinden sich die Konfigurationsdateien für die einzelnen Befehle. Die
    Dateien sind entsprechend kommentiert und dürften einigermaßen verständlich sein.
    Sollte etwas unklar sein, enfach fragen.


    Wenn ein weiterer Servermanager genutzt wird, kann das "CommandPrefix" in core.xml
    z.B. von ! zu / geändert werden um zu verhindern, dass ein Befehl von mehreren Management-Tools erkannt wird.


    Vorkonfigurierte Gruppen / Rechte:



    Der Befehl !adminpls setzt die Gruppe des ersten Spielers, der diesen Befehl ausführt auf "Admin".
    Danach wird dieser Befehl deaktiviert. Er kann durch das Löschen der ai_users -Tabelle erneut freigegeben werden.
    (SQL: truncate `ai_users`). Dabei gehen jedoch alle Gruppenzuweisungen verloren.


    Grüße,
    Jan

    Hi,


    Die Serverregistrierung lief bei Gamespy über einen anderen Server ab, der dafür relevante Hostname
    steht in der exe als %s.master.gamespy.com. An der Stelle solltest du vielleicht nochmal überprüfen, dass
    da beim Editieren nichts schief gelaufen ist. Die Serverliste läuft unabhängig von diesem Hostname
    problemlos durch. Dieser Fehler tritt auf, wenn der Masterserver die Registrierung des Servers nicht innerhalb einer gewissen Zeit bestätigt.


    Taucht der Server denn auf der Webseite auf? (http://gameshare.co/servers/game/swbfront2pc)


    LeKeks

    Hi,


    Die Installation verläuft eigentlich genauso wie beim Spiel selber - die BattlefrontII.exe wird nur nicht in den Installationsordner des Spiels sondern den des Servers gezogen. Wenn du deinen Gameserver fertig installiert hast also einfach in das Verzeichnis wechseln (üblicherweise C:\Program Files (x86)\LucasArts\Star Wars Battlefront II PC Server) und die heruntergeladene BattlefrontII.exe reinziehen. Vorher kannst du die alte BattlefrontII.exe umbenennen, wenn du sie noch haben möchtest, ansonsten einfach überschreiben. Wichtig ist, dass die neue Datei auch wirklich BattlefrontII.exe heißt.


    LeKeks

    Auch bezahlte Server werden weiterhin unterstützt.
    Wenn dein Serveranbieter dir Zugriff auf die BattlefrontII.exe im Gameserverordner gewährt, kannst du
    diese mit der modifizierten Version ersetzen. Danach meldet sich der Server automatisch beim neuen Masterserver an und wird in die Liste aufgenommen.


    Ist dies nicht der Fall, können IP-Adresse und Port des Servers manuell eingetragen werden,
    viele Server wurden bereits auf diese Weise eingetragen und werden ebenfalls in der Serverliste
    angezeigt.

    Ich werde mich morgen mal auf die Jagd nach einem derartigen Bug begeben.
    Was genau gecrasht ist, kann ich nicht beurteilen, da muss Kalle auf dem Server nachsehen.
    Da es die Statistikseite offenbar auch mitgerissen hat, würde ich auch einen anderen Fehler erstmal
    nicht ausschließen.
    Stürzte der Masterserver denn unmittelbar ab, nachdem 8 Leute auf einem Server waren?


    Gruß,
    Keks / Jan

    Hi,


    Den Quelltext habe ich dir per PM zugesandt,
    ich hoffe dass ich morgen Zeit finde mal auf eurem Ts vorbeizuschauen.


    Kleines Update:
    - das Problem mit genanntem Paket sollte behoben sein
    - der Handshake zum Prüfen auf eine Firewall wird erfolgreich durchgeführt
    - XML-Konfiguration hinzugefügt


    Bei Servern hinter einer Firewall sendet der MS die letzten bekannten Daten vom Server,
    ansonsten nur die Adresse des Servers, von welcher sich der Client die Daten selber holt, da
    lag auch die Ursache, des "Ping-Problems".


    Gruß,
    Jan

    Hi,


    Die CD-Key-Verifizierung muss ich mir nochmal etwas genauer anschauen, da ich nicht genau weis, wie ein Gameserver reagiert, wenn er keine Antwort bekommt. Mein lokaler Testserver scheint die Clients trotzdem durchzulassen, allerdings sendet dieser offenbar kein entsprechendes Paket, daher werde ich da nochmal testen, ob irgendwas an die original Gamespy-Server geschickt wird. In ersten Tests schien alles durchaus spielbar. Die Pings scheinen noch nicht durchzukommen, ich vermute, dass das an den mangelnden Firewall-Test-Paketen liegt, wodurch die Gameserver davon ausgehen, dass sie hinter einer Firewall liegen und die natneg-Server von Gamespy nutzen müssen.


    Ich meinte jedoch ein Paket, was direkt nachdem ein neuer Gameserver verbunden hat an diesen geschickt wird.
    Dieser muss normalerweise mit dem korrekten Paket antworten um aufgenommen zu werden. Leider weigert sich der Gameserver gerade mir dieses Paket zu schicken, da scheint noch etwas mit meinem Request-Paket nicht so ganz zu stimmen. Für den Betrieb ist das Paket eigentlich nicht unbedingt notwendig, es würde es aber erschweren, den Masterserver mit Fakeservern zu bombardieren.


    Die derzeitige Version des Quelltextes habe ich euch per PM zugeschickt.


    Gruß,
    Jan


    Edit: Hab gerade gelesen, dass Gamespy einen eigenen Server für die Key-Authentifizierung verwendet, ich denke dann wird man den auf jeden Fall auch emulieren müssen.
    Edit 2: Gerade nochmal ohne Internetverbindung getestet. Der Server scheint die Clients trotzdem zu akzeptieren

    Hallo,
    Ich bin gerade auf diesen Thread gestoßen und dachte, ich kann vielleicht auch einen kleinen Beitrag leisten.
    In letzter Zeit habe ich mich vor dem Hintergrund der bevorstehenden Serverabschaltung etwas mit der Emulation eines Gamespy-Masterservers auseinandergesetzt und einen kleinen Prototypen geschrieben.


    Die Anwendung kann mittlerweile die Serverlist-Anfragen der SWBF2-Clients verarbeiten und eine entsprechende Liste zurückliefern.
    Die Gameserver können sich per UDP-Heartbeat am Server anmelden und werden entsprechend in die Liste aufgenommen.
    Was noch nicht ganz funktioniert ist die Authentifizierung der Gameserver (diese müssen auf Anfrage des Masterservers eigentlich eine bestimmte Zeichenkette, welche aus einer zuvor vom Masterserver übetragenen Challenge berechnet wird, senden), diese senden trotzdem ihre Heartbeats, der Masterserver verifiziert diese nur nicht ordnungsgemäß. Außerdem werden im Moment nur Server unterstützt, die nicht genatted sind.


    Das Ganze ist, wie gesagt, noch ein Prototyp und ist noch nicht fertig, ich habe mich auch noch nicht auf Jagt nach Bugs begeben. Wenn jemand Interesse am Quelltext etc. hat, würde ich den natürlich rausrücken. Geschrieben ist die Anwendung in Visual Basic .NET. "Normales C" kann ich leider nicht wirklich.


    Verwendet wurde der "vb.net-Port" von Luigi Auriemma's "enctype-X" zum Verschlüsseln der Serverlisten.
    (http://aluigi.altervista.org/papers.htm, eine wie ich finde sehr hilfreiche Seite bezüglich der Gamespy-Protokolle).


    So siehts bisher aus:
    http://janelo.net/htlnk/gsms/gsms1.png
    http://janelo.net/htlnk/gsms/gsms2.png


    Gruß,
    Jan


    Edit: Sourcecode bleibt aus Sicherheitsgründen bis auf weiteres Closed Source