CommonAPI2

Willkommen in der Transport Fever Community

Welcome to the fan community of Transport Fever and Train Fever, the economic simulators of Urban Games. The community is free for you to share and inform yourself about the game. We cultivate a friendly and objective interaction with each other and our team will be happy to answer any questions you may have.

 

Registration and use is of course free for you.

 

We wish you a lot of fun and hope for active participation.

The Team of the Transport-Fever Community

  • Gut das ich mir keine Gedanken um einen mod für meine mods machen muss / will.


    Ich kann Deine Sichtweise verstehen, aber toll finden brauch ich sie ja nicht ;)


    Ich habe in Tpf1 1k+ Spielstunden ohne api verbracht und sie nicht vermisst. Naja andere haben sicherlich genau entgegengesetzte Erfahrungen.


    Du wirst den für Dich richtigen Weg finden und danke für das bisherige und kommende. :thumbsup:

  • Also ich könnte ohne die api nicht leben.
    Allerdings ist mir heute aufgefallen, dass die api mit den Gleispaketen von CC Johnson ca. 1 Minute zum laden mit Standbild braucht. Und das jedes mal wenn man einen Bahnhof oder ein Depot anklickt im Bau Menü. Gibt es eine Möglichkeit das irgendwie zu verbessern oder liegt das einfach daran, dass die Menge an Auswahl für den PC/das Spiel zu viel ist?

  • 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

  • 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), 128 GiB DDR3 ECC registered 1600 MT/s, NVIDIA Corporation GF100GL [Quadro 6000] (6GB GDDR5, 384 bit), SAS Hardware RAID Level 1
    Linux version 4.12.14-lp151.28.36-default ([email protected]) (gcc version 7.4.1 20190905 [gcc-7-branch revision 275407] (SUSE Linux) ) #1 SMP Fri Dec 6 13:50:27 UTC 2019 (8f4a495)

  • 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), 128 GiB DDR3 ECC registered 1600 MT/s, NVIDIA Corporation GF100GL [Quadro 6000] (6GB GDDR5, 384 bit), SAS Hardware RAID Level 1
    Linux version 4.12.14-lp151.28.36-default ([email protected]) (gcc version 7.4.1 20190905 [gcc-7-branch revision 275407] (SUSE Linux) ) #1 SMP Fri Dec 6 13:50:27 UTC 2019 (8f4a495)

  • 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), 128 GiB DDR3 ECC registered 1600 MT/s, NVIDIA Corporation GF100GL [Quadro 6000] (6GB GDDR5, 384 bit), SAS Hardware RAID Level 1
    Linux version 4.12.14-lp151.28.36-default ([email protected]) (gcc version 7.4.1 20190905 [gcc-7-branch revision 275407] (SUSE Linux) ) #1 SMP Fri Dec 6 13:50:27 UTC 2019 (8f4a495)

    Edited 3 times, last by 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
    1. local ModListWindow = ui.getWindow("ModListWindow")
    2. if (ModListWindow ~= nil) then
    3. ModListWindow:refresh()
    4. end
    5. 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), 128 GiB DDR3 ECC registered 1600 MT/s, NVIDIA Corporation GF100GL [Quadro 6000] (6GB GDDR5, 384 bit), SAS Hardware RAID Level 1
    Linux version 4.12.14-lp151.28.36-default ([email protected]) (gcc version 7.4.1 20190905 [gcc-7-branch revision 275407] (SUSE Linux) ) #1 SMP Fri Dec 6 13:50:27 UTC 2019 (8f4a495)

    Edited 4 times, last by 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), 128 GiB DDR3 ECC registered 1600 MT/s, NVIDIA Corporation GF100GL [Quadro 6000] (6GB GDDR5, 384 bit), SAS Hardware RAID Level 1
    Linux version 4.12.14-lp151.28.36-default ([email protected]) (gcc version 7.4.1 20190905 [gcc-7-branch revision 275407] (SUSE Linux) ) #1 SMP Fri Dec 6 13:50:27 UTC 2019 (8f4a495)

    Edited once, last by 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), 128 GiB DDR3 ECC registered 1600 MT/s, NVIDIA Corporation GF100GL [Quadro 6000] (6GB GDDR5, 384 bit), SAS Hardware RAID Level 1
    Linux version 4.12.14-lp151.28.36-default ([email protected]) (gcc version 7.4.1 20190905 [gcc-7-branch revision 275407] (SUSE Linux) ) #1 SMP Fri Dec 6 13:50:27 UTC 2019 (8f4a495)

  • 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)