CommonAPI2 Entwicklungsdiskussion, Fragen & Antworten

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

  • Hallo an alle da draußen,


    ich bitte euch Urban Games nicht mit Fehlerdumps zu nerven, die CommonAPI2 Fehler enthalten.


    Es bringt auch nichts wenn CommonAPI2 ein Fragment nicht findet, sich bei Urban Games zu beschweren.
    Das Ende wird sein, das Sie technische Maßnahmen gegen die CommonAPI2 einbauen müssen, damit Ihr Support Kanal nicht durcheinander kommt.


    Ich entschuldige mich hier öffentlich bei Urban Games und @tomdotio für etwaige Mehrarbeit oder Probleme.


  • Neue CommonAPI2 20191221

    • Modlisten Import & Export
    • Weniger Debug Output
    • settings.lua von Mods editieren
    • funktioniert mit Windows Steam Version 27954
    • Neue Fehlermeldung mit mehr Infos wenn ein Fragment Probleme macht. (UG nicht nerven, Abbildung zeigt Linux Variante)


    CommonAPI2:
    CommonAPI2


    Gleise:
    Gleispaket mit 750mm 1000mm für TPF2


    Bahnhof Adapter:
    CommonAPI2 - Modulare Bahnhofsadapter



    ----
    Bekannte Bugs:

    • Abhängigkeiten werden beim Laden falsch sortiert. Daher Fehlermeldungen zur Ladereihenfolge (wird mit 20191222 behoben)
  • Hallo,


    nun gibt es die 20191223 Version.


    Mit 27600 Steam Windows getestet. Technisch sollte das Problem mit der Modlisten Abhängigkeitenbehoben sein.


    Des weiteren gibt es nun auch wieder den CrashDebugger:
    Ihr habt einen Crash von einem Mod, wisst aber leider die Datei nicht?


    TPF2 starten -> CommonAPI -> Einstellungen -> Install CrashDebug. (muss bei jedem starten neu aktiviert werden)
    Dann einfach euer Savegame laden und warten bis sich das Spiel beendet.


    Ihr bekommt in der stdout.txt bei einem Crash mit Assert Fehler nun die letzten 20 Dateien von der CommonAPI ausgegeben.


    commonapi.uiparameter und preloading gehen nicht. Aber die Modliste wird nun durch CommonAPI2Native.dll an alle Threads weitergeben...


    Die Linux Version crasht leider immer noch zu 25%, daher leider immer noch keine Version. Ich tippe auf einen Thread Race...



    Was gibt es noch neues? Die Modlisten Fenster ist nun etwas größer...


    1.1.20191223-dev

    • don't run ui code in TPF lua states
    • use native shared data to find currently loaded mods
    • resize ModListWindow, split column settings and deps
    • uiparameter.modify*, don't replace ui element if selectionlist is passed and result would be empty
    • fix native: CGame::CGame Hook needs to fake modlist state variable so sorting will work correctly and deps can be resolved correct
    • native: give shared data own locking, should fix deadlocks
    • native: CrashDebugger: port file tracing and enable menu CrashDebugger again
    • native: Update Dear ImGui to 1.73


    -edit-
    Bekannte Bugs:
    Fehlt ein Mod, kommt es zu einem Absturz mit einer ModRep Fehlermeldung...

  • Ich hoffe, das ist okay, das ich das hier auch her stelle. Denke mal, hier wird mehr gelesen. Wenn nicht, bitte löschen.


    Ansonsten wollt ich hier allen, die es sonst noch nicht gesehen haben, mal mitteilen, dass alle 4 meiner Gleis-/Oberleitungssets nun Gleismodule für Bahnhöfe bekommen haben, zu finden natürlich in meiner Webdisk.


    An dieser Stelle möchte ich mich nochmal bei eis_os für seinen unermüdlichen Einsatz, seine harte Arbeit und die CommonAPI2 bedanken, ohne diese dies im Moment nicht möglich wäre.


    Vielen Dank!


    Und allen noch weiter schöne Feiertage und viel Spaß.


    Grüße, Alex

  • Hallo, scheinbar ist leider ein Fehler aus meinem Gleispaket übernommen worden,
    der Failback Code für trainstationutil.makeTrack darf keine 0 als Index haben (letzter Parameter)


    CommonAPI2 Bahnhofmodule mit eigenen Gleisen via Bahnhofsadapter

  • Das erklärt, warum beim Test ohne Aktivieren der API manche Module das Standardgleis gelegt haben und manche einfach gar nix. Dankenswerterweise wirklich gar nix, kein Crash oder so. Also jetzt nicht superdringend. Wird aber natürlich so schnell wie moglich korrigiert.
    Danke für den Hinweis.


    Edit: Alle korrigiert.

  • Version 20191225


    Der Fehler mit nicht vorhanden SteamMods, die zu einem Crash führen sollte behoben sein.
    commonapi.uiparameter funktioniert wieder. Es werden wieder alle Gleise vorgeladen. Zurzeit hängt dieses zwingend an nativen Teil.


    Getestet ist es mit der GOG und Steam Windows Version.



    Des weiteren gibt es nun den passenden Depot Adapter.



    1.1.20191225-dev
    - add new syncing code using native, sync repositories
    - do preloading via native ui code until lua only variant is found
    - enable uiparameter module, use combobox for entries
    - native: fix crash with not found mod in modlist code (ModRep::GetModDir crash)




    CommonAPI2:
    CommonAPI2



    Gleise:
    Gleispaket mit 750mm 1000mm für TPF2



    Bahnhof Adapter:
    CommonAPI2 - Modulare Bahnhofsadapter


    Depot Adapter
    CommonAPI2 - Train depot adapter


    Frohe Festtage und viel Spaß

  • Files

    • stdout.txt

      (797.38 kB, downloaded 215 times, last: )

    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)

  • Guten Morgen, ich hätte da einen Bug gefunden.
    Bei den Einstellungen werden die Übersetzungen aus der strings.lua nicht angezeigt. Es stehen nur die Variablen da. Mit dem TPFMM wird alles korrekt angezeigt, die mod.lua stimmt also.


    Edit: Hat sich erledigt.
    Das nimmt er:
    name = _("vehicle_mc_geac6000_up_ba_name"),
    Wenn man nur
    name = ("vehicle_mc_geac6000_up_ba_name"),
    schreibt erkennt die commonapi es nicht. Dem TPFMM ist der _ egal er übersetzt es trotzdem. Hat das was mit lua zu tun?

  • @tsilaicosneknurd


    Da es noch keine native so gibt (crasht leider zu oft), da es auch sonst seitens UG keine Infos gibt, funktioniert preloaden noch nicht. Ich hoffe das wird sich bald ändern. Danke für den Report. Bei jedem dritten Start crasht mir noch die Modliste und es fehlen immer noch Fragmente. ;( Technisch sollte es aber keinen Crash mehr geben...


    @MaikC
    Die Funktion heißt _. () alleine ist jedenfalls keine Übersetzungsfunktion. Wenn das TPFMM auch akzeptiert, nunja richtig ist es eben nicht. (Es ist valider LUA Code, aber eben ohne echte Funktion). Kannst das gerne auch in der LUA Console ausprobieren...

  • Ich hätte noch einen Verbesserungsvorschlag für die Modeinstellungen.


    Es wäre ganz sinnig da einen Filter zu implementieren so dass nur noch Mods angezeigt werden die:

    • überhaupt Einstellungen haben
    • in der jeweiligen Karte geladen sind
  • Das Fenster kann mehr, zum Beispiel Abhängigkeiten anzeigen und auch darüber TPFMM starten bzw. Steam Link ... (Damit kann man testen ob alle Einträge korrekt sind)


    Wenn du in der UG Modliste ein anderes Savegame auswählst und dann die Mod Einstellungen (neu)öffnest, sind nur die im diesem Savegame geladenen Mods in der Liste.
    Es gibt aber keinen Autorefresh. (das wird wohl in der nächsten Release geändert, inkl. order für Einstellungen)


    Ich gebe zu, der Code ist nicht elegant, es ist sehr schwer überhaupt an UGs Daten zu kommen.
    CommonAPI2 errechnet bei jedem Frame einen Quersumme der List und vergleicht diese, um überhaupt ne Idee zu haben ob ein Spieler da ein Mod aktiviert oder deaktiviert hat


    Siehe dazu auch das Bild in CommonAPI2

  • Ja, ich arbeite auch 2020 noch an der CommonAPI2:


    Mal ein Zwischenstand:



    CommonAPI2 hat nun ein FileDialog. Zukünftig werden die Modlisten im Benutzerdatenverzeichnis von TPF2 abgelegt. Dies kann man nun auch über das Menü erreichen (Explorer wird gestartet)


    Die nächste Version wird auch direkt auch Funktionen manipulieren, damit der railroadCrossing Filter mods nicht mehr filtert. Auch wird der laneutils Fehler direkt beseitigt wenn es nötig ist.
    Preloading von Modulen wird es auch bald geben, so das der Modulare Adapter auch direkt zum Beispiel Schmalspur Stationen oder Stationen mit geringer Geschwindigkeit bauen kann.


    Weil es dazu schon Fragen gibt:


    Sponsoring von Funktionalitäten


    Ihr werdet bald die Möglichkeit erhalten, Arbeitsleistung gegen Spenden zu erhalten.
    (Meinen Unmut über die jetzige Situation habe ich schon in anderen Forenteilen kund getan)


    Die meisten Funktionen für TPF1 sind auf eigenen Wunsch entstanden, oder weil ich über etwas interessantes gestolpert bin.
    Unter anderem steht auf meiner Liste zur Zeit zur Auswahl:

    • Funktion um Gleistypenlisten anzulegen und zu verwalten,
      die CommonAPI2 als Filter nutzt für Gleisparameter in Konstruktionen:

      • Es gibt Fenster mit allen geladenen Gleisen/Gleismodulen,
        dir ihr einzeln zuschalten könnt.
      • Kategorien für Konstruktionsgleisparameter




    • Screenshots ohne CommonAPI2 Menü
    • Steigung und Gleisradien beeinflussen wie in TPF1
    • Modulare Bahnhöfe abspeichern in einer Datei und per Modularen Bahnhofsadapter neu bauen

    Wie das Sponsoring im Detail funktionieren soll, bin ich ehrlicherweise noch am Überlegen.




    Ich weiß das wir gerne alles frei und kostenlos haben wollen,aber der Support für Spielfehler Debugging meinerseits übersteigt zeitlich bei weiten meine eigentliche Bastelzeit für die CommonAPI2. Auch werden immer wieder Spielfehler der CommonAPI2 angekreidet, ein kleiner Nutzer Test hätte genügt um dieses auszuschließen (Abschalten der CommonAPI2) aber meine Arbeit wird immer unter Generalverdacht gestellt.

  • Mit unendlicher Steigung würde eine Seilbahn, Zahnradbahnen etc ermöglicht werden und hätte damit einen gameplaytechnischen Aspekt und nicht nur Komfort.


    Ich finde es generell auch schwierig mit der Anerkennung, da die API nicht für Nutzer sondern Modder ist. Die Modder müssten da auch etwas versuchen die Leistung der CommonAPI hervorzuheben.


    Gewisse Trolle motzen unter jedem erdenklichen Webdiskeintrag dass der Mod ja nicht nutzbar wäre und sich der Sinn nicht erschließen würde, da muss man auch drüber hinweg sehen.


    Ich denke die Modder wissen deine Leistung auf jeden Fall zu schätzen :)



    Schade dass Ug das nicht tut.




    Ich denke es wäre sinnvoll eine Umfrage unter Moddern + Nutzern zu machen ob diese die Funktionen überhaupt nutzen würden.
    Wenn es nämlich keiner einbindet oder nutzt ist auch blöd. Die Gleismodule nutzen nämlich einige Modder aber leider Nutzer weniger als gedacht :|

    3, 2, 1, meins... Lg Edith

  • Modulare Bahnhöfe abspeichern in einer Datei und per Modularen Bahnhofsadapter neu bauen

    wieviel spende dafür und für eine funktionierende linuxversion, auch kompatible mit etwas älterer glibc ;-) ?

    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)

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

    ~MfG

BlueBrixx