TrackMania² Automated Server Controller (TMASECO) - Controller inklusive Manialinkpage-Support in AutoIt!

  • Hallihallo,

    heute möchte ich euch ein kleines Projekt vorstellen an das ich mich Ende letzten Jahres gesetzt hatte. Leider werde ich es aufgrund von Zeitmangel (und anderen Projekten) nicht vollständig fertigstellen können, da das einfach sonst ein gigantisches Programm werden würde inklusive Plugins und sonst noch allem.

    Deshalb gibt es hier einen Build, der eigentlich gut funktioniert wenn die Datenbank erstmal erstellt worden ist, vom Controller der vollständig in AutoIt programmiert wurde.

    Lediglich die Speicherung der Daten wird in SQLite vorgenommen, da hier SQL-Queries einfach gold wert sind um Informationen zu extrahieren.

    Das tolle daran ist, man braucht höchstens AutoIt3 zu installieren (ein Kompilat mit dynamischen Plugins ist geplant gewesen) und sonst nichts, da SQLite schon mitgeliefert wird.

    Andere Controller erfordern Python, xampp, php, mysql, helper-skripte und vieles mehr - TMASECO nicht.

    Wie dem auch sei, fangen wir mal an:

    TMASECO ist ein Automated Server Controller für Nadeos TrackMania²: Stadium (es funktionieren theoretisch alle Maniaplanet Spiele aber ich habe es bisher für TMStadium hardgecoded).

    Der Name ist nichts besonderes und orientiert sich an bestehenden Controllern.

    Mit dem Controller ist es möglich den ManiaPlanetServer zu steuern und Manialinks an Clients zu senden und so das Spielerlebnis deutlich zu verbessern.

    Der Controller selbst hat ein Plugininterface, da der Controller nur das Grundgerüst bietet und die Plugins die eigentliche Funktionalität darstellen.

    Ich habe schon ein paar Plugins vorprogrammiert:

    • Help - kleines Hilfe-Plugin zum Anzeigen von Befehlen
    • Jukebox - Strecken in eine Warteschleife juken um sie nach dem Mapwechsel direkt zu fahren
    • KarmaKarma - Votes für Strecken abgeben um zu sehen wie sie ankommen (--, -, o, +, ++)
    • ManiaExchange - Download von (auch zufälligen) Strecken von tm.mania-exchange.com
    • Permissions - Zugriffsberechtigungen verwalten (Abfragen stecken aber in den jeweiligen Plugins)
    • Records - Speichert und verwaltet lokale Bestzeiten

    Dabei habe ich den Controller auf eine besondere Art strukturiert, denn es gibt drei Controller innerhalb von TMASECO:

    • ChatController - erlaubt es Plugins sich für Chatnachrichten einzutragen (bspw. für /befehle)
    • ServerState - beinhaltet Kerninformationen zu aktuell verbundenen Spielern und Mapinformationen
    • ManialinkPageController - hier können Plugins ihre Frames und Scripte setzen die den Spielern angezeigt werden sollen

    Da nicht sehr viele Leute dieses Spiel spielen, und ich ehrlich gesagt dazu kaum Feedback erwarte gibt es hier wenigstens ein paar Screenshots damit ihr euch was drunter vorstellen könnt.

    Screenshots (einfach auf die Bilder klicken)

    Controller.au3 wenn der Server läuft und er sich verbinden konnte:


    Ansicht im Spiel (Controller.au3 wurde gerade gestartet):

    Nach dem Click auf "Click4Help" öffnet sich ein Hilfemenu (die Einträge sind anklickbar!):

    Nach dem Click auf das Ordnericon rechts (Maplist):

    Durchs Ziel gefahren und die Zeit verbessert und direkt gevoted. Feedback im Chat!:


    Sogar Willkommensnachrichten wenn man auf den Server joint!:


    Es war auf jeden Fall sehr viel Arbeit aber es hat viel Spaß gemacht.

    Wer es ausprobieren möchte (eine Schritt-für-Schritt-Anleitung liegt bei) kann es sich runterladen.

    Sollte es mal Abstürzen, einfach neustarten! :D

    Wenn ihr Fragen zur Installation oder anderen Themen habt könnt ihr mich natürlich gerne Fragen.

    Bis dahin~