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


  • Hallo Eos,


    bei mir wir die Common Api Console nicht mehr angezeigt. Ich habe in der Stoud auch Fehlermeldungen dazu. Weiß aber nicht was ich falsch mache.


    Liegt es evtl. an einem anderen Mod der sich da mit der Api beißt ?


    Hoffe Du kannst mir helfen.


    Gruß Antonio

    Dateien

    • stdout.txt

      (2,7 MB, 199 Mal heruntergeladen, zuletzt: )
  • Log sagt:
    commonapi.init: Native code loading disabled by settings.lua


    Also hast du in der settings.lua in eis_os_commonapi2_1 die Native Komponente abgeschaltet... (mit disablenative = true)


    Die Native Komponente bietet an:

    • Modlisten Funktionen
    • UI Code
    • LUA Console
    • Sprache
    • Dateisystemoperationen (schneller als per Batch Datei und ohne störendes Fenster)
    • Weil es nicht anders geht: Die aktive Modliste zum Preloaden von Gleisen (das war unter TPF1 noch anders)
    • Sehr wichtig: Ein Lua Key - Value Storage, das auch jedem LUA Thread aufgerufen werden kann. Damit kann die CommonAPI2 zum Beispiel die Gleisliste im Ladethread erstellen und diese dann später weiter in einem anderen LUA Thread nutzen. (Das sieht man dann wenn der Code eine Sync info ausgibt in der stdout.txt)
  • Danke für die schnelle Hilfe. Hab es in den Settings wieder auf false gesetzt. Das komische ist, dass ich Setting mäßig eigentlich keine Änderungen vorgenommen hatte. ?(


    Trotzdem vielen Dank.


    Edit: Leider hab ich nun wieder ein Problem. Ich habe nun keine weiteren Mods eingefügt. Lediglich die Einstellung in den Settings korrigiert. Wenn ich nun die Karte laden will, lande ich nach 2 % auf dem Desktop.


    Sorry für das Nerven :(


    Gruß Antonio


  • hab mal an beiden Stellen das reported.
    https://steamcommunity.com/sha…text=Deutsche+Oberleitung
    crasht beim Versuch des Baus eines Bahnhofs.

    Dell Precision T7600, 2 x Intel(R) Xeon(R) CPU E5-2665 (8 cores per CPU, 2 threads per core, 20MB L3 cache, 2.4/3.1GHz) (⁼32 logische CPUs), 512 GiB DDR3 ECC registered 1600 MT/s, NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (11GB GDDR5X 352 bit), SAS Hardware RAID Level 1

    Linux version 5.14.21-150400.24.60-default (geeko@buildhost) (gcc (SUSE Linux) 7.5.0, GNU ld (GNU Binutils; SUSE Linux Enterprise 15) 2.39.0.20220810-150100.7.40) #1 SMP PREEMPT_DYNAMIC Wed Apr 12 12:13:32 UTC 2023 (93dbe2e)

  • Hallo


    Mal eine Testversion aus der Reihe hier:


    Ich hab die UI::Modliste zwar im TPF2 Code für Linux gefunden, aber leider gibt es keine eindeutiges Muster, egal was ich bis jetzt Versucht habe, ich habe mindestens 5 andere Code stellen die identisch sind. Zum Beispiel Fahrzeuglisten. Daher ist in der Linux Version zurzeit nicht möglich Modlisten, Abhängigkeiten oder ähnliches im Menü zu überprüfen. Mod Einstellungen kann man in Spielstand d.h. im Spiel aber ändern und dann ggf. neu laden.


    Was gibt es sonst so neues:

    • Die Modeinstellungen haben nun einen Scrollbalken.
    • Es gibt nun im CommonAPI2 Menü direkte Links zu den Spielverzeichnis und Benutzerverzeichnis. Das geht auch unter Linux, zumindest wenn euer xdg-open ein File Link akzeptiert :)
      Steam kann Mods in verschiedene Verzeichnisse speichern, daher gibt es eigentlich aus Steam API kein Funktion "da sind die Workshop Daten" drin. Wie ich das Löse, noch keine Ahnung.



    • CommonAPI2 nutzt nun ein FieDialog für Modlisten zu speichern und zum laden, außerdem werden diese nun im Benutzerverzeichnis abgelegt.
    • Hotpatching von railroadCrossing filter und laneutil fix. (und nein, das löst nicht das UI Problem von UG)
    • Irgendwas was ich bestimmt vergessen habe :D




    Für Nutzer von stabilen Chamäleons, ich hab das mal mit Ubuntu 16.04 LTS kompiliert. Vielleicht klappt es nun bezüglich glibc Version?

  • Für Nutzer von stabilen Chamäleons, ich hab das mal mit Ubuntu 16.04 LTS kompiliert. Vielleicht klappt es nun bezüglich glibc Version?

    erster Test: (war aber nur eines aktiviert)error: error: ...teamapps/workshop/content/1066780/1947572332/strings.lua:128: VERSIONS MISMACH(2):
    ERROR: Common API with different version installed! You can only have one Common API installed!
    ok, die Workshopvariante entfernt.
    und überraschung: ich hab das Menü links oben. Der nativeCode wird geladen 8o

    Dell Precision T7600, 2 x Intel(R) Xeon(R) CPU E5-2665 (8 cores per CPU, 2 threads per core, 20MB L3 cache, 2.4/3.1GHz) (⁼32 logische CPUs), 512 GiB DDR3 ECC registered 1600 MT/s, NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (11GB GDDR5X 352 bit), SAS Hardware RAID Level 1

    Linux version 5.14.21-150400.24.60-default (geeko@buildhost) (gcc (SUSE Linux) 7.5.0, GNU ld (GNU Binutils; SUSE Linux Enterprise 15) 2.39.0.20220810-150100.7.40) #1 SMP PREEMPT_DYNAMIC Wed Apr 12 12:13:32 UTC 2023 (93dbe2e)

  • Ich hab aber leider das Gefühl das der Linux Code nach dem neu compilieren ständig abschmiert und leider wegen SteamDRM kann ich das nicht Debuggen. Wenn GDB beim attach crasht ist das eher suboptimal und starten quotiert Steam mit nem Fehler... ;(

  • ja.. irgendwie hab ichs auch noch nicht zum laufen gebracht.


    Beim ersten Starten vom TpF2, stürzt es gleich ab


    beim 2. Starten stürzt es nicht ab (TPFLUA_GC: old lua_State* 0x7f009c000bb0):



    -das preloading läuft durch mit einzelnen Fehlern, wie:


    und
    commonapi2.utils: ... Fever 2/mods/1940556785_1/res/config/track/standard.lua:4: attempt to call global 'trackDataBase' (a nil value)
    ...
    commonapi2.repos: Preloading done
    GUIBridge_NotifyModList error :
    ...napi2_1/res/scripts/commonapi2/ui/ModListErrorWindow.lua:122: attempt to index local 'ModListWindow' (a nil value)
    stack traceback:
    ...napi2_1/res/scripts/commonapi2/ui/ModListErrorWindow.lua:122: in function <...napi2_1/res/scripts/commonapi2/ui/ModListErrorWindow.lua:82>


    dann stürzt TpF2 wortlos ab,
    letzte Meldung von commonapi:
    PackageModifier: Force reload package:modules/oppiestationutil'


    hm irgendwie nicht ganz reproduzierbar, beim 3. mal kommt er etwas weiter, bis Asbturz:


    Edit:
    beim 4. mal ging das Laden durch


    Modeinstellungen und Menü funktionieren problemlos
    Beim Bahnhofsbau zeigt er nur das "Standard (120)"-Gleis und es dauert lange, bis das Menü erscheint
    - was gibt es sonst zu testen?

    Dell Precision T7600, 2 x Intel(R) Xeon(R) CPU E5-2665 (8 cores per CPU, 2 threads per core, 20MB L3 cache, 2.4/3.1GHz) (⁼32 logische CPUs), 512 GiB DDR3 ECC registered 1600 MT/s, NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (11GB GDDR5X 352 bit), SAS Hardware RAID Level 1

    Linux version 5.14.21-150400.24.60-default (geeko@buildhost) (gcc (SUSE Linux) 7.5.0, GNU ld (GNU Binutils; SUSE Linux Enterprise 15) 2.39.0.20220810-150100.7.40) #1 SMP PREEMPT_DYNAMIC Wed Apr 12 12:13:32 UTC 2023 (93dbe2e)

    3 Mal editiert, zuletzt von tsilaicosneknurd ()

  • Ich hab mal in der LUA GC Routine den Aufruf zum Entfernen der CommonAPI aus der LUA Global Table entfernt. Vielleicht ist LUA da schon weiter und es gibt die Tabelle gar nicht mehr. Ich befürchte aber es ist ein grundlegendes Problem im Speichermanagement von LUA. (Sprich ich bekomme TPF Lua unter Linux nicht mehr identisch kompiliert)


    ModListErrorWindow.lua in scripts/commonapi2/ui/ Zeile 121 und folgende muss geändert werden:

    Code: res/scripts/commonapi2/ui/ModListErrorWindow.lua
    local ModListWindow = ui.getWindow("ModListWindow")
        if (ModListWindow ~= nil) then
            ModListWindow:refresh()
        end
    end

    Das mit den Gleisen muss ich mir dann später genauer Anschauen. Welcher Mod ist das? Bitte ein Link dann muss ich weniger suchen...



    Danke für das Testen!

  • Das mit den Gleisen muss ich mir dann später genauer Anschauen. Welcher Mod ist das? Bitte ein Link dann muss ich weniger suchen...

    da hab ich mich vertan (die neuen Auswahlmenüs noch nicht gewohnt), werden alle angezeigt (viele sind leider Namenlos,wie auch schon in TpF1) und funktioniert.


    Lediglich bekomm ich das Spiel grade garnichtmehr zum laufen, allerdings auch mit disablenative. und ohne verwertbare Fehlermeldung hm


    Edit: Hiess da nicht ein Sprichwort, "aller guten Dinge sind 14".. es läuft wieder (mit jetzt exakt 555 mods)
    das Fenster erscheint nun:

    allerdings inhaltlich falsch, der mod ist aktiv..
    aus der exportierten modlist (Zeilen 101,102):
    1950682036_1 1.1 (Bombardier Traxx 1)
    1952075958_1 1.1 (Bombardier Traxx 2)
    [...]
    1964040388_1 1.1 (Metronom) [Zeile 545]


    Nachtrag:
    seit dem obigen update läuft alles sehr stabil .-)

    Dell Precision T7600, 2 x Intel(R) Xeon(R) CPU E5-2665 (8 cores per CPU, 2 threads per core, 20MB L3 cache, 2.4/3.1GHz) (⁼32 logische CPUs), 512 GiB DDR3 ECC registered 1600 MT/s, NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (11GB GDDR5X 352 bit), SAS Hardware RAID Level 1

    Linux version 5.14.21-150400.24.60-default (geeko@buildhost) (gcc (SUSE Linux) 7.5.0, GNU ld (GNU Binutils; SUSE Linux Enterprise 15) 2.39.0.20220810-150100.7.40) #1 SMP PREEMPT_DYNAMIC Wed Apr 12 12:13:32 UTC 2023 (93dbe2e)

    4 Mal editiert, zuletzt von tsilaicosneknurd ()

  • neues Problem:
    ich erhalte beim Import von modlisten in jedem Menü "Can't import without a mod list window!"?

  • Ja, das ist bekannt und hab ich auch schon angesprochen (und jetzt auch fett markiert):


    Ich hab die UI::Modliste zwar im TPF2 Code für Linux gefunden, aber leider gibt es keine eindeutiges Muster, ... Daher ist in der Linux Version zurzeit nicht möglich Modlisten, Abhängigkeiten oder ähnliches im Menü zu überprüfen.


    Ich hab es versucht mit mehr als ein Dutzend Fragmente.


    Auch gibt es zum Constructor / Destructor hin keine Funktion mit einem String den ich als Referenzpunkt nutzen könnte.
    Die Vtable liegt zwar fast immer in der Nähe einer anderen Tabelle, aber das Align mit Nullen ist doch recht unterschiedlich. D.h. jede neue Version ist da anders.


    -edit-
    Der Fehler mit Gleisen beim Preloading sollte behoben sein, ich versuche aber noch herauszubekommen, was das Problem mit uiparameter ohne native code ist. Vorher kann ich da immer noch keine Release machen. Zumindest funktioniert die Windows Version mit der aktuellen tpf2 testing Version.

  • Danke für die Erläuterung.

    Ja, das ist bekannt und hab ich auch schon angesprochen (und jetzt auch fett markiert):

    Der nicht-fette Teil erklärt das Problem.
    Der Fettgedruckte Teil ist etwas missverständlich, ich kann die Modlisten einsehen, ebenso Abhängigkeiten und Einstellungen. Der Export der Modliste funktioniert auch.


    Übrigens, nachdem alles ne ganze Zeit lang stabil läuft, habe ich seit heute wieder exakt die alten Probleme, 1. Versuch: Absturz beim Laden ohne Fehler (ausser Crashdump), 2. Versuch: Laden stoppt bei 2% und Applikation friert ein....
    Der dritte Ladevorgang war dann wieder erfolgreich. Danach war das wieder stabil..
    [line][/line]
    was anderes:

    in der track type-Auswahl habe (neben vielen "Test"-Gleisen übrigens ?( ) ich viele Gleise ohne Namen, die sind wohl in den entspechenden Dateien nicht benannt...
    Wäre es möglich in diesem Fall beispielsweise den Dateinamen und/oder den Mod anzuzeigen?

    Dell Precision T7600, 2 x Intel(R) Xeon(R) CPU E5-2665 (8 cores per CPU, 2 threads per core, 20MB L3 cache, 2.4/3.1GHz) (⁼32 logische CPUs), 512 GiB DDR3 ECC registered 1600 MT/s, NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (11GB GDDR5X 352 bit), SAS Hardware RAID Level 1

    Linux version 5.14.21-150400.24.60-default (geeko@buildhost) (gcc (SUSE Linux) 7.5.0, GNU ld (GNU Binutils; SUSE Linux Enterprise 15) 2.39.0.20220810-150100.7.40) #1 SMP PREEMPT_DYNAMIC Wed Apr 12 12:13:32 UTC 2023 (93dbe2e)

    Einmal editiert, zuletzt von tsilaicosneknurd ()

  • Mal ein reproduktionsfähiger, äh reproduzierbarer Crash.
    Wenn die Anwendung (Fenster) keinen Focus hat beim Laden, stürzt es wortlos ab in dem Moment, wo das Fehlerfenster erscheinen soll (bei mir nach der Ausgabe vom laden von allen denkbaren Vehikeln).

    Dell Precision T7600, 2 x Intel(R) Xeon(R) CPU E5-2665 (8 cores per CPU, 2 threads per core, 20MB L3 cache, 2.4/3.1GHz) (⁼32 logische CPUs), 512 GiB DDR3 ECC registered 1600 MT/s, NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (11GB GDDR5X 352 bit), SAS Hardware RAID Level 1

    Linux version 5.14.21-150400.24.60-default (geeko@buildhost) (gcc (SUSE Linux) 7.5.0, GNU ld (GNU Binutils; SUSE Linux Enterprise 15) 2.39.0.20220810-150100.7.40) #1 SMP PREEMPT_DYNAMIC Wed Apr 12 12:13:32 UTC 2023 (93dbe2e)

  • commonapi.dmp( <somefunction or variable> ) will print you the returned data of somefunction or variable.


    Note: Not all threads have game.interface.getTowns() The script thread should have it... (use the dropdown to select thread)


    With

    commonapi.dmp( game.interface.getTowns() ) 

    you should get a list of entities, these can be used with getEntity to get more info...


    commonapi.dmp( game.interface.getEntity( 12345 ) ) 


    CommonAPI provides more or less tab completion.


    ---


    Ich habe gerade eher wenig Zeit, daher gibt es keine Neuigkeiten bezüglich CommonAPI2 und Linux Support. (Auf UGs Antwort warte ich auch noch)

  • Hi Random Question


    I've been working on a Narrow Guage Mod is it possible to manipulate the shape of the tunnel interiors so they are in scale with the track? I thought it would be as easy as finding the internal mesh for the tunnel and rescaling it but that doesnt seem to be the case as no model exists for the tunnel interiors.


    Attached image shows the issue im trying to solve.

BlueBrixx