CommonAPI2 Entwicklungsdiskussion, Fragen & Antworten

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


  • Moin,

    ich bin mit der neuen dev build gerade im Karteneditor unterwegs und da greift der LayerView Patch mit "2 = Weißes Layer nicht nutzen + UI" bei den Höhenlinien leider nicht.

    Irgendwie hatte ich das früher hinbekommen, dass auch bei den Höhenlinien kein weißes Layer war, sondern Stufen in Hellgrün bis Dunkelgrün.

    Da ich ein paar Wochen Auszeit hatte, bin ich jetzt nicht sicher, ob es an der Tpf2 build 35732 liegt oder an was anderem.

  • Habe die neue Version 1.8.20240303-dev der CommonAPI2 sowie die Version 1.60 des Straßenpakets (Rasengleis) installiert und erhalte nun während des Ladevorgangs meines Spielstandes bei 16% die Meldung "Internal error - An error just occured." :rolleyes:
    Keine andere Mod wurde aktualisiert oder zusätzlich "neu" aktiviert!

    Ist der Fehler irgendwie auszuloten?
    Ich hänge die stdout an.

    Vielen Dank im Voraus für eine Antwort ^^

    stdout.txt

  • Zwei Sachen: Bitte das Debug Level/verbosity auf 99 erhöhen, speichern, Spiel neu starten und crashen lassen. Diese stdout.txt anfügen, dann bitte mit der letzten normalen Version ausprobieren, ob es den selben Crash gibt.

  • Wieder bei 16%? Das sieht nach mehr aus.

    Lässt sich das Spiel ohne eingeschalteten FlexStreets in CommonAPI2 laden? (Ausschalten, Speichern, TPF2 neu starten)


    Noch kann ich das nicht weiter eingrenzen. Lässt sich ein neue Karte erstellen?


    GGf. mal die kleine .sav.lua deines Spielstandes anhängen...

  • Wieder bei 16%? Das sieht nach mehr aus.

    Ja, wieder bei 16% ...


    Lässt sich das Spiel ohne eingeschalteten FlexStreets in CommonAPI2 laden? (Ausschalten, Speichern, TPF2 neu starten)

    leider auch nein, wieder Absturz bei 16%


    Lässt sich ein neue Karte erstellen?

    Eine neue Map, in der nur CommonAPI2 und das Rasengleis als Mods aktiviert sind, lässt sich laden und läuft



    GGf. mal die kleine .sav.lua deines Spielstandes anhängen...

    Porta Saxonia.sav.lua

  • Bis jetzt hab ich nichts gefunden, da werde ich wohl das komplette Savegame brauchen.


    Da UG swisstransfer benutzt für so etwas, schlage ich das mal vor. Du kannst mir dann den Link in einer privaten Nachricht hier im Forum geben.

    -edit-

    Und bitte deine settings.lua der CommonAPI2

  • Ich hab da ne ganze Zeit an Debugging Zeit verheizt, schlauer bin ich nicht geworden, drum hier noch mal ein paar Informationen:

    • Ich bitte euch immer ein Backup euer Savegames anzulegen
    • Informationen zu geben ob Ihr auch eurer Spielversion geändert habt. Es ist ein Unterschied ob Ihr die TPF2 Build geändert habt!
    • Solltet Ihr einen Spielstand speichern und diesen nicht mehr beim
      nächsten mal laden können, bitte ich euch diese hier als Bug zu melden.
      Wenn Ihr meint der Spielstand durch eine Funktion der CommonAPI2 kaputt gegangen ist.

      Darunter fallen also keine Spielstände, die nur noch im Pausen Modus laufen oder sonstige kaputte Sachen, wie ne Konstruktion schmeißt einen Lua Fehler.

      Ändert keinesfalls die Rahmenbedingungen oder macht Backups so das Ihr auf den vorherigen Stand zurück kommen könnt, damit wir das Debuggen können
    • Nicht versuchen bei Fehlern (buildoverwrite ggf. genutzt) zu nutzen und dann einen Spielstand zu speichern!
      Wenn CommonAPI2 sagt, das es etwas nicht findet, ist dieses Wichtig!
    • Überprüft die Dateigröße, ist die sav Datei nun ungewöhnlich kleiner als vorher? Dann ist beim Speichern etwas kaputt gegangen
    • Upgrade von CommonAPI2:
      • Mach ein Backup von CommonAPI2 und Straßenpaket vor dem Updaten.
      • Solltet Ihr dann eure Savegames nicht laden können, bitte um genaue Informationen: Alte Version -> Neue Version
    • Nutzt CommonAPI2 nicht bei Instabilen Systemen:


      • SSD HDD hat ständig korrupte Daten... Dann kann natürlich auch ein Spielstand kaputt sein.
      • Es gibt ungewöhnliche Crashs beim Spielen ohne CommonAPI2.
      • Der Grafikspeicher läuft über und das auch ohne CommonAPI2
      • Ihr habt das System übertaktet. TPF2 verhält sich ziemlich anders als viele andere Spiele, nur weil Spiel X läuft, heißt das nicht das eure Kiste stabil ist.
        Glaubt Ihr mir nicht? Schaut mal hier https://www.radgametools.com/oodleintel.htm, so etwas kann auch bei AMD CPUs passieren.



    Allgemein habe ich nun Herausgefunden, das der Spielstand bei procedural::Shapes die Daten aus mir unerfindlichen Gründen nicht laden kann. Das komische, es sieht so aus das der Dateistream nicht mehr richtig ist, d.h. die Eingangsdaten nicht mehr gelesen werden können.



    Daher der Aufruf, testet mal den NodeEditor und das Region Feature und speichert eurer Spielstände mit neuen Namen ab!


    Könnt Ihr diesen Spielstand nach einem sauberen Neustart des Spiels laden? Wenn nicht, dringend hier melden, danke...

  • wie kann ich die LINE_DESTINATION CommonAPI in meine Mod implementieren?

    Ich habe das wie folgt gelöst (sodass die Anzeige mit sowie ohne CommonAPI funktioniert.):

    So funktioniert LINE_DESTINATION, wenn die CommonAPI auch aktiv ist, ansonsten verhält sich das Label wie ein Vanilla NEXT_STOP label.


    Direkt zum Anfang vom mdl-File:

    Code
    function data()
        local labelType = "NEXT_STOP"
        if (commonapi ~= nil and commonapi.supports and commonapi.supports("LINE_DESTINATION")) then
         labelType = "LINE_DESTINATION"
        end
    return {

    und dann den labellist-Eintrag an der Stelle type entsprechend angepasst:

    Code
    {
        alignment = "LEFT",
        alpha = 1,
        -- (...)
        type = labelType, -- <=== Der Punkt hier ist wichtig!
        verticalAlignment = "CENTER",
        dontModify = true,
    },

    Ansonsten kannst du dir das auch direkt in der Mod anschauen: SBB FV-Dosto (RABDe 502) Repaint. Der Code oben stammt aus /res/models/model/vehicle/train/sbb_dosto_middle_1st.mdl

  • Ist es auch möglich, mit der CommonAPI oder irgendwie anders Linienname und LINE_DESTINATION oder Linienname und NEXT_STOP nebeneinander anzeigen zu lassen? oder kann man einfach eine variable einbauen und die aus LINE_NAME und z.B. NEXT_STOP zusammensetzten?

  • Nimmst zwei Labels? Für weiteres müsstest du mir sagen was du genau vorhast. Technisch kann ich mittlerweile die Parameter auslesen und kann daher ggf. da sogar noch Erweiterungen hinzufügen...

  • Well, CommonAPI2 can't find the right byte code in the exe / memory of your game, that is very odd.

    Did you do some system restore or mod management lately?


    Please ensure to have no TPF2 version remaining in Taskmanager and then reinstall CommonAPI2 1.8.20240129:


    Backup eis_os_commonapi2_1 folder. Unzip the new version, copy settings.lua from backup to eis_os_commonapi2_1.

    Please follow this exactly so we know you have a fresh copy of CommonAPI2Native.dll and not some old version.


    Ensure you have no old CommonAPI2Native.dll somewhere in TPF2 Folders.

  • Du kannst bei Ankunft und Abfahrt "Dinge" programmieren. Ein Beispiel, ich lass die Wagons umsortieren...

    das hatte ich total vergessen. Ganz tolle Funktion. Spiele das Spiel quasi als Modelleisenbahn und nun habe ich schier unendlich viele Güterzüge.

  • Da ja hier nicht wirklich was neues in der letzten Zeit war,

    das ist so ne Sache die auch Zeit frisst:


    Eigene ladbare TramTracks.



    Ich hoffe WernerK nimmt mir es nicht übel, das ich zum testen mir ein paar Normalspur Texturen geborgt habe :)

    Dieses Feature hat in den letzten 14 Tagen große Fortschritte gemacht und eigentlich fehlen da "nur" noch die Sackgassen, viel testen und feinschliff.


    Und ja, man kann bis zu 30 TramTracks aus eigene config Dateien laden. :)


    Fehlende Sachen:

    - Sackgassen

    - Sortierung bei Kreuzungen. Da wird wohl noch ein Integer Wert kommen.

    - Konstruktionen -> keine Ahnung wie ich das ermögliche. Eigentlich sollte es möglich sein...

    - Tool zum Elektrifizieren kann nur ja/nein, sollte aber auch die TramTracks erlauben

    -


    Nicht möglich:

    Eine Kreuzung mit verschiedenen Typen. Vielleicht baut uns ja jemand ein Dreischienen bzw. Vierschienen Gleis.

    Auch wenn ich mittlerweile sehr viele Teile des Straßencodes geändert habe, hab ich den Rendercode für Kreuzungen kaum angepasst. (Es werden nur die Texturen anders angesprochen und der Oberleitungscode abgeschaltet und dann später durch CommonAPI2 aufgerufen



    Bekannte Probleme:

    - Die UI muss auf tt]experimentalTunnelAndBridgeMinHeight[/tt] gesetzt werden, Der UI Code besteht aus einer Tonnen von Callback Objekten, das war mit das schwierigste.
    Eine UI reicht mir zu bearbeiten :)