Gilde 2 Engine Erweiterung (GEE)

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Gilde 2 Engine Erweiterung (GEE)

      Ich habe mich neulich mit der Mod Programmierung von Gilde 2 beschäftigt und war sehr schnell enttäuscht, dass die meisten standard LUA Funktionen gar nicht verfügbar sind. Da ich schnell überall an Grenzen gestoßen bin und schnell frustriert war, habe ich die GuildII.exe (Steam-Version) angepasst und mit features ergänzt.

      Daher ist diese Modifikation nicht an Spieler gerichtet, sondern eher an Modder, die daraus Nutzen ziehen möchten.

      Damit das Ganze einfacher zu Updaten ist, habe ich die Features in eine Guild2EngineEx.dll verpackt, die von der gepatchten GuildII.exe geladen wird.

      Bisher habe ich nur die LUA type() und length() Funktion nachgebaut - aufzurufen als GeeType() und GeeLength(). Es sind globale LUA Funktionen, die direkt aufgerufen werden können, so wie GetID(). ipairs() hatte ich auch schon nachgebaut, allerdings ergibt sich da kaum Vorteil(abgesehen von Performance) gegenüber der pure LUA Lösung, die wohl Fajeth schon programmiert hatte.

      Beispiel Anwendungsfall
      Serialisierung einer Tabelle zu einem String. GeeType() ermöglicht generisch jede beliebige Tabelle zu serialisieren und komfortabel mit SetProperty(Was eine Tabelle normalerweise nicht unterstützt) zu speichern. Entsprechender Serialisierungscode vorausgesetzt(Hab ich schon probiert).

      Wie installieren? Das gesamte Projekt inklusive C++ Quellcode der Guild2EngineEx.dll ist hier zu sehen:
      github.com/zokradonh/Guild2EngineEx

      Installationsanleitung:
      - Entweder mit Visual Studio 2017 Community die im Quellcode herunterzuladene .sln öffnen und den Erstellvorgang auslösen und dadurch die selbst gebaute Guild2EngineEx.dll bekommen, oder die von mir schon erstellte unter https://github.com/zokradonh/Guild2EngineEx/releases herunterladen. (Was man macht ist letztlich eine Vertrauensfrage mir gegenüber)
      - Guild2EngineEx.dll in das Gilde2 Verzeichnis kopieren
      - Jetzt kommt der schwierige Teil: Ich biete nicht die von mir gepatchte GuildII.exe zum download an. Die nötigen Änderungen könnt ihr mit jedem HexEditor selbst machen. Die Datei 'gee.1337' auf der github.com Seite enthält alle Änderungen aufgelistet. Alternativ lässt sich die gee.1337 Datei auch mit x64dbg laden, sobald man die GuildII.exe geöffnet hat. Ich kann an dieser Stelle noch mal eine Schritt für Schritt Anleitung schreiben, falls es jemanden interessiert.

      Dann die Dateien GuildII.exe und Guild2EngineEx.dll der Mod-Zip hinzufügen. (Die meisten mods werden über simples ZIP angeboten, oder?)

      Was werde ich noch einbauen? Mal schauen welche Hürden mich noch nerven werden. Falls jemanden noch bestimmte hardcoded Dinge nerven, kann ich eventuell da auch noch was tun, wenn ich Glück habe und es leicht zu identifizieren ist.
      Oder wann immer ein LUA Code komplex wird und daher an der performance kratzt, kann ich das zugrunde liegende Problem vielleicht abstrahieren und eine schnelle Funktion dafür in C++ programmieren und in die nächste Version von Guild2EngineEx.dll einbinden.

      The post was edited 1 time, last by ZokRadonh ().