Willkommen in der Transport Fever Community

Wir begrüßen euch in der Fan-Community zu den Spielen Transport Fever und Train Fever, den Wirtschaftssimulatoren von Urban Games. Die Community steht euch kostenlos zur Verfügung damit ihr euch über das Spiel austauschen und informieren könnt. Wir pflegen hier einen freundlichen und sachlichen Umgang untereinander und unser Team steht euch in allen Fragen gerne beiseite.

 

Die Registrierung und Nutzung ist selbstverständlich kostenlos.

 

Wir wünschen euch viel Spaß und hoffen auf rege Beteiligung.

Das Team der Transport-Fever Community


  • Also bei grösseren Mods gibt es auch Modder die noch Unterverzeichnisse erstellen. Diese müssten auch gescheckt werden.

  • Die Dev Version kann ja nun auch Unterverzeichnisse (für Gleise, Strassen usw.), deswegen bitte ich ja auch um Feedback!


    Wir nehmen mal das "Schweizer Signal-Pack Typ L", das hat alleine schon mehr als 800 Modell Dateien. Auch wenn ich das in einer angemessenen Zeit laden kann, wie will man 800 Signalbilder in die UI bekommen?
    (Das im Verzeichnis u.a auch noch andere Modelle für Tunnel sind, mal außen vor)



    Ich kann mir da nur eine Positiv Liste per settings.lua vorstellen.
    Das wäre dann aber nicht mehr Plug&Play.


    Und ja, die Mail wegen per Runtime veränderbaren UI Listen hab ich schon vor einen halben Jahr an UG bzw. @tomdotio geschrieben, eine Antwort steht immer noch aus.


    Den Code extern per Hook am Kontruktionsfenster zu patchen ist extrem schwierig und würde dann ja auch erst mal nur die Windows Nutzer glücklich machen.
    Ich hab zwar da noch ne Brute Force Idee für meine DLL (so wie eine Art Steam Overlay) um den kompletten UG Code zu umgehen.
    Dies ist aber auch wieder eine Hausnummer, die neue UI wieder mit dem Spiel zu verheiraten. Außerdem würde ich dann bestimmt wieder X Benutzer aufbringen weil das ein Stilbruch im Spiel bedeutet.


    Keine Ahnung wie es an dieser Front weiter gehen soll ;(

  • Hallo


    Es gibt wieder mal etwas neues. Nun hat die DLL Datei ein eigenes UI.


    Für die Wagemutigen ist es nun möglich während des Spiels die technischen Daten von Gleisen zu manipulieren,
    so ist es zum Beispiel möglich die Geschwindigkeit zu ändern und dann eine Langsamfahrstelle zu bauen, oder ein Segment dahingehend updaten.
    Wenn Ihr Gleise mit dem selben Typ verbindet, werden diese von TPF "optimiert". Für die Oberleitung gilt dieses immer.
    Wäre schön wenn Ich ein paar Screenshots erhalte, was Ihr mit dem Tool alles schönes baut.



    Das neue Menü und TrackTypes Fenster:



    Changelog:


    Wie immer, dieses ist eine Development Version!


    Download:


    eis_os_commonapi_1_20180717-dev_c.zip

  • Warum sollte es nicht funktionieren? Ok. Es ist keine Triviale Sache


    Das größte Problem ist, genau die Funktionen und Speicherbereiche in TPF zu finden und zu verbiegen, das alles dann zusammenpasst.


    Und es so zu machen, das es mit verschiedenen TPF Versionen funktioniert, also GOG und Steam und möglichst auch mit allen neuen Versionen.


    Andere Spielen mit Sudoku, ich mit dem Speicherabbild und Assembler :)
    Das hat jetzt mehr als ein Jahr gedauert und ich konnte auch aus Erfahrung und Wissen von TrainFever schöpfen. - Für eine Linux Version müsste ich dann die Arbeit nochmalig wiederholen, daher verzeiht mir, das ich da jetzt keine sehr hohe Priorität rein stecke -


    Ich habe natürlich erst mal den leichteren Weg versucht, den Kontakt mit Urban Games gesucht, der war aber vergeblich.


    Der Quellcode ist nicht öffentlich. Ich sehe da auch jetzt keinen Bedarf mir das Leben mit Klonen wie bei Cities in Motion zu verkomplizieren. Man kann nur eine DLL so laden, wie ich das gerade mache.


    Der Code für die UI Bridge ist in C++ geschrieben und nutzt Dear Imgui, da ist kein Lua involviert. Der Code zum Patchen von Funktionen, ein kleiner Bytecode Interpreter in C.


    Ich habe einen LUA Interpreter der zu 98% Speicher kompatibel zum kompilierten TPF Lua Interpreter ist.
    D.h. ich kann neue Funktionen für TPF Lua anbieten (hier die Funktion zum Datei Suchen).


    Für die Zukunft plane ich ImGUI auch für Mods per LUA anzubieten. Dann kann man per LUA neue UI Fenster schreiben, dafür muss ich aber noch ein Daten Speichersystem für Savegames ausdenken.

  • Hallo


    ja, lange ist es her, nun gibt es mal wieder etwas aus meiner Werkstatt:





    Es ist wieder direkt eine Development Version von meiner Werkbank.


    StreetTrackToolbox ist ein neues Fenster damit man die Strassen / Schienen direkt beeinflussen kann.
    Für Gleise könnt Ihr die Geschwindigkeit eines neu gebauten Gleises einstellen, beachtet das TPF Gleise versucht zu verbinden und zu vereinfachen.
    D.h nicht den selben Gleistyp mit einer anderen oder der Standardgeschwindigkeit anbauen!


    Mit "Disable Curve Check" könnt Ihr wahnsinnige Gleiskrümmungen beim Verbinden von vorhanden Gleisen bauen.
    Baut das Gleis 1, dann Gleis 2, klickt auf "Disable Curve Check" und baut dann die Verbindung. Siehe Punkt 4.
    Dies sollte theoretisch fast alles ermöglichen wo TPF normalerweise mit zu viel Krümmung meckert. Viel Spaß beim Nebenbahn und Schmalspur Bau!



    Punkt 5 ermöglicht euch die Hanggeometrie zu beeinflussen. Im Extremsfall bis zu 3. Damit könnt Ihr einen wahnsinnigen Hang bauen.
    Diese Einstellung beeinflusst auch Strassen.


    Bei allen Einstellungen gilt: TPF übernimmt die Einstellung erst, wenn der Baucursor verändert wird. Einfach den Endpunkt beim bauen etwas verschieben.
    PS: Gewisse Einstellungen gelten auch für die Bau KI, also am besten im Pausemodus basteln.



    Ich freue mich auf Screenshots von wahnsinnigen Konstruktionen :)
    Das sollte alles Savegame kompatibel sein, d.h. auch ohne CommonAPI funktionieren, ich bitte hierbei auch um Tests...


    Wie immer ist die Dev Version hier als Anhang zu finden:

  • Erstmal einen riesen Dank, die Kurven werden bestimmt vor allem für eine Stadtbahn sehr nützlich sein und das embankment feature ist wohl eher speziell aber irgendwann wird man bestimmt eine Situation haben in der es nützlich ist.
    Ich werde wohl mal meinen PC anwerfen und ein wenig transportfevern.
    Um das hinzubekommen wühlst du vermutlich recht tief in den binaries herum, folglich ist eine Linux Version wegen dem Aufwand eher nicht zu erwarten, der irre ich mich da?

    Dieser Beitrag wurde bereits ∞ mal editiert, zuletzt von Freahk (Vor π Minuten)

  • Die Hangeinstellung ist innerstädtisch auch praktisch, damit kannst Du zum Beispiel eine Strasse unter einen Bahnhof legen (Tunnelrampe) ohne alle Häuser platt zu machen.


    Linux:
    Leider ja, ich kann gefundenen/analysierten Programmcode leider nicht übertragen.
    GCC und MSVC Code haben auf Maschinenebene kaum Gemeinsamkeiten, wo MSVC optimiert, macht GCC gar nix. Anderseits ist ein Haufen Inline oder mit jmp Tabellen verunstaltet.
    Ironie, mit die ersten Linux TF Version hab ich das Große und Ganze analysiert.


    Ich habe UG um einen Build mit Debugdaten (sprich mit Funktionsnamen) gebeten, dann wäre es nicht so schwer.


    Technisch gesehen wäre ein Linux Build möglich, aber schau mal, das ist mein Code um die Kurventabelle zu finden:

    Schon ein Compiler Switch würde das Fragment kaputt machen. MSVC ist zum Glück sehr konservativ und baut meist den selben Code :)
    Ich habe eine Linux Version auf meinem Radar und hoffe das trotzdem auf absehbarer Zeit zu unterstützen.


    Ich hoffe UG jetzt nicht gerade auf die Idee gekommen ist, Ihren Compiler zu wechseln. Ok, alles mit clang/gcc bauen wäre auch eine Möglichkeit, dann hätte ich gerne aber Debugdaten bitte! :saint:

  • Ja die riesigen Unterschiede im compilierten code sind mir wohl bewusst, deswegen dachte ich mir, dass wohl eher keine Linux Version zu erwarten ist.
    Wenn doch mal eine kommt freue ich mich um so mehr, dann kommt mein Laptop auch in den Genuss der mod.
    Hmm ja, Rampen in der Stadt wären ein Szenario wo es nützlich ist, wobei seit dem "neuen" terrain alignment und mit passender slopeLow/slopeHigh das auch ohne nochmal nachbessern zu müssen recht gut hinhaut.
    Aber ja, gibt bestimmt auch mal Situationen wo man über noch ein paar grad steilere Böschung froh ist.

    Dieser Beitrag wurde bereits ∞ mal editiert, zuletzt von Freahk (Vor π Minuten)

  • Moin...
    Könnte mir jemand mal kurz helfen, wollte mit der neuen Version etwas rumspielen aber, da passiert nix...
    Habe die Mods so installiert:

  • Benutzt du Windows? Es gibt zurzeit nur eine Windows Version der DLL.


    Beim starten des Spiels sollte die CommonAPI geladen werden, dann solltest Du ein CommonAPI Menü angezeigt bekommen.
    Wenn es nicht geht unter Windows benötige ich die üblichen verdächtigen, sprich stdout Datei...


    Hat dein Virenscanner die DLL Datei vielleicht blockiert?


    Warum hast du den Train Station Adapter zwei mal drin?

  • Hi @eis_os,


    ich glaube ich habe das selbe Problem, kein Com.API Menü, weder nach dem Start noch im geladenen Spiel


    Was mir noch aufgefallen ist, wenn ich auf Start oder Save laden drücke wechselt er bei mir auf den Desktop, wenn ich danach wieder ins Game wechsel läuft allerdings alles normal. Bis eben auf die Com. API

    Dateien

    • stdout.txt

      (8,69 kB, 205 Mal heruntergeladen, zuletzt: )

    149758-signatur-gif-gif

    172169-faq-logo-png

  • Jo..Windows...
    Beim Spielstart switch der PC immer auf den Desktop, egal ob Common API oder nicht...
    stdout.txt


    Avira weiss ich nicht, was wäre denn ein Indiz dafür?


    Weiss ich nicht...sind vermutlich verschiedene Versionen.

    Einmal editiert, zuletzt von Ketchup ()

  • Ist in eis_os_commonapi_1\bin eine CommonAPILua.dll vorhanden?


    Die DLL wird definitiv erst gar nicht geladen und somit nimmt es den Code der früher genutzt wurde.


    Habt Ihr die Windows eigene Zip Funktion zum entpacken genutzt?


    In der stdout.txt muss die Zeile "TPF Build 15501" auftauchen...



    -edit-


    In eis_os_commonapi_1\res\scripts\commonapi\init.lua: suchen:

    Code: init.lua
    local ok, dll = pcall(require, "CommonAPILua") 
    if not ok then


    Ändern in:

    Code: init.lua
    local ok, dll = pcall(require, "CommonAPILua") 
    	if not ok then
    		print("Can't load native code CommonAPILua: "..dll)

    Speichern und TPF starten, dann sollte es einen Grund in der stdout.txt geben, warum die DLL nicht geladen werden kann.

BlueBrixx