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


  • Hallo


    Heute gibt es mal wieder eine Dev Version.


    Ich habe wie schon mehrmals angekündigt angefangen Funktionalitäten einzubauen um TPF Crash to Desktop besser einzugrenzen:


    Solltet Ihr einen stdout.txt Fehler mit
    btTriangleIndexVertexArray *__cdecl `anonymous-namespace'::CreateTriangleMeshsehen, so könnt Ihr unter Einstellungen -> Install CrashDebug eine neue Debug Modus einschalten.


    Wenn Ihr dann euer Savegame startet, werden alle Speicher Pointer zu allen Mod-Mesh Dateien ausgeben.
    Bei jedem Aufruf von CreateTriangleMesh wird erst ein Mesh Pointer ausgegeben, somit könnt Ihr euren Fehler eingrenzen.


    Vorsicht: Eure stdout.txt wird sich schnell füllen...


    Changelog:
    1.5.20190407-dev
    - fix Console not scrollable,
    - added Console autoscroll checkbox
    - fix Russian translation by nagor
    - fix CommonAPI Settings dialog missing translation ingame
    - added CrashDebug functionality (windows only)
    Shows memory locations of Mesh pointer and adds output to CreateTriangleMesh

  • Neue Version 20910421:


    Änderungen damit CommonAPI besser mit TPFMM funktioniert:
    Die SetupLUA Funktion produziert keine Fehlerausgabe mehr.


    CrashDebug gibt nun auch alle per io stream geöffneten Dateien im Log aus.
    Damit sollte man Mod Fehler noch besser einzugrenzen sein.


    Beachtet aber das TPF erstmal ne ganze Menge Dateien lädt und dann nochmals die Daten abarbeitet. D.h. die letzte Datei muss nicht zwangsläufig ein Problem darstellen.
    Sind direkte Fehler beim Laden eines Meshes oder einer Textur vorhanden sein, sollte das aber die letzte Datei darstellen. (MidMap Probleme oder ähnliches)


    Da ich persönlich keine großen Crashes habe (oder ich bin selber Schuld). Bitte ich euch das mal zu testen.
    Solltet Ihr damit einen Fehler finden, so gibt mir auch ne Nachricht oder erwähnt mich im Beitrag. Ich möchte da Test Mods finden für eine Art Gruselkabinett.


    CrashDebug für die Windows Version kann man über CommonAPI -> Einstellungen -> Install Crashdebug aktivieren.
    Danach einfach ein Savegame starten ...

  • Ich habe aktuell ein Problem, wo mir das Crash Debug Log etwas sagt, dass schon beim Laden was schief geht, die Symptome, weshalb den Debug Log überhaupt angeworfen habe, aber ein anderer ist.
    Das Symptom war, dass ich die Gleis- und Straßen Toolbox nicht mehr nutzen konnte, sobald ich die Damm einstellungen ändern wollte, crashte TPF.
    Mit dem Crash Debug Log bin ich aber dem Problem nicht zu 100% auf die Spur gekommen. Zumal er schon beim Laden des Saves sofort wieder crasht.


    Die stdout hab ich angehängt.

    Dateien

    • stdout.zip

      (787,41 kB, 168 Mal heruntergeladen, zuletzt: )

    AMD Ryzen 3700X
    32GB RAM
    KFA² Geforce1080Ti HOF

  • Hmm, schon wieder ein Cargo Crash. Das ist aber sehr komisch.


    Hat jemand vielleicht das Problem mit sehr wenigen Mods?


    -edit-
    Cargo Problem kann ich scheinbar mit der Steam Windows Version nachstellen...


    Das hilft aber nicht beim Damm Problem.
    In letzter Zeit irgendwelche Mods geändert? Sprich irgendwelche Strassen oder Gleise entfernt?

  • Windows Steam Version.


    Straßen entfernt?
    Ich habe in dem Save Autobahn 2.5 gegen 3.0 ersetzt. Ich hatte bis dato aber keine Autobahnen gebaut und daher da eigentlich keine Probleme erwartet.


    Auch ein Rücktausch gegeneinander hat nicht geholfen.


    Tante Edit sagt:
    Ich hab einen älteren Save geladen, mit 51 Mods und aktivem Crash Debug Log, auch er crashte mit beim Cargo.

    Dateien

    • stdout.zip

      (173,72 kB, 193 Mal heruntergeladen, zuletzt: )

    AMD Ryzen 3700X
    32GB RAM
    KFA² Geforce1080Ti HOF

    Einmal editiert, zuletzt von Iifrit () aus folgendem Grund: Save mit 51 Mods und Cargo Crash

  • Es scheint einen Crash mit der common API unter Linux in Verbindung mit TPFMM (Linux Version) zu geben. Von der aktuellen TPFMM Version gibt es keinen Linux built, falls ich die dafür nötigen Veränderungen für Linux geportet bekomme, würde ich ein auslesen der mod.lua der common API verhindern - ansonsten kannst Du da evtl mal draufschauen @eis_os

  • @Xanos Könntest Du vielleicht eine simple globale Variable oder Funktion in deine LUA Version einbauen damit ich TPFMM erkennen kann?


    Dann könnte ich einfach nach TPFMM ~= nil abfragen und das Laden der CommonAPI so und dll direkt verhindern.
    Das ist stabiler und deine Nutzer können dann auch die mod.lua Version Strings sehen. (Zu dem Zeitpunkt wo ich die Dll in TPF lade, gibt es leider keine Anhaltspunkte das es TPF ist)


    Unter Linux habe ich den Code für die Speichersuche nie mit TPFMM getestet. Werde das mir mal anschauen.


    Zurzeit bastele ich an CrashDebug und will in den nächsten Tagen sowieso wieder mal ne Testversion heraus hauen... Dann würde ich das mit der globalen TPFMM Abfrage schon mal einbauen.

  • Hallo. Ich habe das Problem das beim Erstellen einer neuen Karte das Spiel bei 41% (Initialisiere Städte) abstürzt. Aber ohne Fehlermeldung. Ich habe die Common API Mod auf aktuellster Version, aber es hilft nix.

  • Hallo


    Es gibt mal wieder eine neue Testversion:


    Fix: CrashDebug sollte nun keine Cargo Fehler verursachen.
    Es gibt nun einen Ringbuffer, somit werden die letzten 20 Dateien bei einem Crash ausgegeben. (Das verkürzt das Log enorm)


    Für vehicle_cargo_util::MakeVehicleCargoInfo Crashes:
    Der Eintrag "Last seen ecs::TransportVehicleSystem::EntityAdded" via CrashDebug sollte sehr hilfreich sein:


    CommonAPI ermittelt nun mit CrashDebug bei Eintritt der Funktion den Transport Vehicle Namen, da ich mittlerweile zumindest in der Windows Version eine guten Überblick habe, wie das ganze ecs::Entity Geraffel funktioniert und wo ich einen Hebel ansetzen kann. In dieser Funktion wird dann später vehicle_cargo_util::MakeVehicleCargoInfo aufgerufen.
    Ich kann so einen Crash reproduzieren, wenn ich in der .mdl Datei die Cargo Capacities ändere. Das sollte jetzt also richtig funktionieren. *


    Technisch gesehen könnte ich das bestimmt noch für andere Fehlerarten einbauen. Wobei dann die Frage wäre, welcher Art von Fehler speziell am lukrativsten wäre...



    Um Probleme mit TPFMM nun endlich für immer auszuschließen, wird in Zukunft die Initialisierung der CommonAPI nicht mehr unter TPFMM von @Xanos erfolgen.
    Dafür wird ein Update des TPFMM benötigt, Xanos wird das dann wohl sicher in seiner Änderungsliste aufführen.




    * Vielleicht kann ich UG via @tomdotio überzeugen, das so eine Art Funktion für TPF2 schon ab Werk eingebaut wird. Das TPF2 das ohne Crash hinbekommt wäre natürlich mir noch lieber :love:

  • Ich kann so einen Crash reproduzieren, wenn ich in der .mdl Datei die Cargo Capacities ändere. Das sollte jetzt also richtig funktionieren.

    Siehst du da evtl. eine Möglichkeit das Spiel davon zu "überzeugen" das Ändern der Capacities gescheit zu verarbeiten und eben keinen Crash zu verursachen?

    Auch ein alter Fuchs schaut gern ein Huhn, selbst wenn er's nicht mehr Reißen kann. ^^

    163393-cpuz-ryzen9-5900-png

  • Technisch gesehen wäre es bestimmt möglich die Daten im TransportVehicle zu ändern.
    Das hat aber bestimmt weitreichende Folgen. was passiert zum Beispiel mit einem Passagier der dort aus der Bahn gesetzt wird.
    Ergo müsste ich die SimPerson irgendwie nach Hause schicken, damit dieser dann nicht irgendwelche anderen Probleme verursacht oder nur noch als Geist oder Zombie im Spiel verbleibt.


    Natürlich könnte ich Doktor Savegame spielen und versuchen Savegames wieder zu reparieren. Aber egal welch ein Fehler dann im Spiel Auftritt bin ich der Böse der alles Kaputt gemacht hat.


    Deswegen möchte da eher nur eine Hilfestellung in Richtung anbieten, welches Fahrzeugs, Station oder Industrie einen Fehler verursacht.


    Ich möchte UG auch nicht zu sehr auf die Füße treten, sonst müsste ich mich womöglich mit einem anderen Spiel beschäftigen...

  • Moin moin @eis_os,


    also ich finde deine commonAPI großartig auch wenn ich wahrscheinlich erst einen Bruchteil der Funktionen kenne oder verstehe. Und da ist der
    Knackpunkt: Ich würde zum Beispiel gerne auch deine Straßentyp-Liste bei meiner Mod mit einbinden, aber ich weiß nicht wie. Ich habe versucht die mitgelieferte Dokumentation zu Hilfe zu nehmen, aber ich als Programmieranfänger gucke da wie ein Schwein ins Uhrwerk. Nur dass mir nicht die Programmiersprache große Probleme macht, sondern eher die Schnittstellen zwischen Mod, Spiel und commonAPI.
    Bei meinem Straßenproblem frag ich mich zum Beispiel wie ich auf die Straßenliste zugreifen kann, oder muss ich die erst erstellen (eigentlich ja nicht, da ich sie ja in deinem UI einsehen kann oder?)?
    Das nächste Problem wäre wo ich die entsprechenden Befehle einfügen muss. Ich habs mit dem StreetSelector in params={} versucht, aber da schmiert mir das Spiel schneller ab als ich gucken kann.
    Weiterhin muss ich zwingend auf die Breite der zu verwendeten Straße zugreifen, da ich ja damit rechnen muss. Mit zum Beispiel var=loadfile("old_medium.lua") bekomme ich nicht das gewünschte Ergebnis, oder besser gar kein Ergebnis. Oder hat UG da irgendwie eine Sperre eingebaut?
    Kurzgefasst würde ich mir wünschen das die Dokumentation etwas anfängergeeigneter wird, ähnlich wie dein Lexikoneintrag über die Einbindung der commonAPI mit Beispielen und Erklärungen.
    Ich bin davon überzeugt das viele Hobby-Modder davon profitieren könnten, und du hast weniger Mails mit dummen Fragen wie die die Anfrage von mir :D

  • Das liegt daran das ich nie Zeit finde, das alles sehr gut aufzuschreiben bzw. auch selbst in einem Mod zu nutzen.


    Im Gegensatz zu Gleisen gibt es leider keine einfache Möglichkeit Strassen Selektoren zu bauen.


    Eine Variable im Modul / bzw. Con (Du brauchst das selbe Objekt für die UI Parameter und in der updateFn)
    local streetSelectorObj = commonapi.uiparameter.createStreet({ key = name, caption = "" })


    Wenn man die Liste filtern möchte:
    streetSelectorObj:addFilter(filterfn)


    Fügt einer Liste mit UI Buttons (params) dieses Objekt hinzu:
    streetSelectorObj:createUIParams(params)



    In der updateFn kann man dann dieses Objekt abfragen:


    local userSelectedStreet = streetSelectorObj:getSelection(params)


    Ein Objekt::getSelection gibt ein commonapi.repos.repoentry zurück, d.h. Du kannst dann auch die Daten der config auslesen:


    userSelectedStreet.filename für den Dateinamen
    userSelectedStreet.data beinhaltet die Daten.


    Es gibt von UG dafür keine Funktionen, daher muss die CommonAPI auch alle Dateien bei Spielbeginn preloaden...



    Ich möchte noch irgendwann mal einen Modularen Beispielbahnhof bauen, der das alles Live zeigt. Ich habe aber die Befürchtung, dass dann schon TPF2 draußen ist ;(

  • Irgendwie krieg ich das nicht gebacken.
    Ich glaube ich hab " local streetSelectorObj = commonapi.uiparameter.createStreet({ key = name, caption = "" }) " an der
    falschen Stelle und das was ich in den Klammern stehen habe ist vermutlich grundlegend falsch.
    Bei dem Rest glaube ich es richtig eingesetzt zu haben.


    Ich pack ma den Code hier rein, und die stdouts hab ich auch angehängt. Die eine mit commonAPI 20190331, da meckert das Spiel das 'params' leer ist und die zweite mit commonAPI 20190522-dev, da wird gemeckert das 'commonapi' leer ist. Anscheinend bin ich doch zu blöd für das ganze :/


    Dateien

    • stdout.txt

      (3,13 kB, 304 Mal heruntergeladen, zuletzt: )
    • stdout.txt

      (3,28 kB, 355 Mal heruntergeladen, zuletzt: )
  • Hallo,


    ich hab mal angefangen Beispiele zu bauen, die hoffentlich verständlich machen, wie man meine CommonAPI nutzt.


    Bis jetzt ist leider nur ein komplettes Depot mit variablen Strassentypen, mit Code Kommentaren und auch so geschrieben, das es auch ohne CommonAPI funktioniert.


    Das hat leider mehr Zeit verbraten als gedacht, deswegen gibt es noch keine Filter und ist recht ungetestet.


    Ich habe da natürlich aber auch gezeigt, wie man eine X beliebige Straße mit ein Modell verbindet ohne vorher die Straßenbreite zu wissen...


    -edit-
    params = paramfn
    ({
    streetSelectorObj:createUIParams(params)
    }),


    Das geht so nicht, Du kannst nicht die Liste definieren und gleichzeitig darauf zugreifen. Schau mal in das Depot Beispiel...

  • Wenn ich meine MOdliste Exportiere und dann ein neues Spiel auswähle, die Modliste Importiere, nimmt die API nur ein bruchteil der Mods, warum ist das so ?


    Was mich noch irritiert, wenn ich die Settingslua die Reihenfolge änder, der Mods, wird es nicht übernommen sondern wieder zurück gesetzt, dabei macht man doch ingame im Modmanager nichts anderes...

    &thumbnail=1


    Einmal editiert, zuletzt von Angry_CJ ()

  • Was verstehst Du unter Bruchteil? Leider kann ich nur echte TPF Mods aktivieren, d.h. alles was nicht als TPF Mod erkannt wird, (alte TF Mods) kann ich auch nicht aktivieren (sonst gibt es einen Crash, das hatten wird ja in den ersten Versionen) Sonst müsste ich tomdotio wieder belästigen. Technisch müsste das export Limit bei so ca. 16000 Mods liegen...


    Settings.lua? Die Reihenfolge sollte dem des Savegames entsprechen oder was meinst Du?



    Ich habe mal @tomdotio ne Nachricht gesendet, vielleicht gibt es ja mehr Informationen und kann das nochmals überarbeiten...

  • Ich hab etwas mehr als 600 mods aktiv. Teilweise übernimmt dann die api nur 16 mods oder 133, es varririert. Mit dem tf mods, okay. Wie gesagt, da gibt es keine feste Zahl also.


    Das mit dee settings.lia ist so gemeint: mods a, B und C sind in Reihenfolge 3.1.2,sollen aber durch crash Verhinderung in Position 1.2.3 geladen werden. Tpf speichert aber nicht die richtige Reihenfolge, sondern die Reihenfolge der Aktivierung. Dies wollte ich, per settings.lua ändern, da es schneller geht als wie im tpf mod Manager. Aber tpf übernimmt nicht die manuellen Änderungen in der settings.lua. Heißt tpf müssten sich das ganze noch wo anders merken.

BlueBrixx