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


  • there is no „non beta/dev“ version

    Thanks for your reply.

    I will try the latest TPF2 beta (it seems to have many relevant fixes, so it might finally work on my system). Is there a (n acccessible) list of CommonAPI2 versions?

  • I am sorry, there is currently no public linux version. It's still not stable/finished.

    ---


    Für die Windows Version Build 31613 gibt es nun eine neue funktionierende Dev Version.


    Das Fenster für LINE_DESTINATION (setzen von Endhaltestellen / Zugziel) ist nun abgeschaltet und die Funktion nun im Linienmanager eingebaut:


    Hier könnt Ihr wenn es das Fahrzeug zulässt mehrere Endhaltestellen definieren. Dafür einfach auf Einschalten klicken.

    Möchtet Ihr nicht den Haltestellennamen verwenden, so steht euch die Textbox zur Verfügung. (Mit der Enter Taste bestätigen)


    Beispiel für ein schönes Fahrzeug:

    Tatra KT4D²


    Für UG Fahrzeuge zum nachrüsten via Patch:

    CommonAPI2 Entwicklungsdiskussion, Fragen & Antworten


    Damit es funktioniert braucht Ihr:

    • CommonAPI2 mit aktiver DLL (Native Code, oben ist dann das CommonAPI2 Menü)
    • In den Einstellungen der CommonAPI2 muss Line_Destination aktiviert sein (ggf. speichern, Spiel komplett neu starten)
    • Im Spielstand muss die CommonAPI2 als Mod aktiv sein (Ihr seht links unten dann auch ein API Knopf)
    • Ein Fahrzeug mit Unterstützung der Funktion.


    Bekanntes Problem mit der UG Beta, Crash beim Beenden im Hauptmenü noch häufiger...

    Keine Ahnung was UG verändert hat, vielleicht wollen sie mich mit Foltern?


    Changelog:

    1.7.20210116-dev

    - support for OpenGL & Vulkan Renderer on TPF2 Windows Beta 31613 (not compatible with old versions)

    - fix: if setttings.lua is missing, default LINE_DESTINATION wasn't enabled

    - add titlebar to fake window created by commonapi at mainmenu

    - add line destination to the normal tpf2 line window

    - don't load old line destination window

  • CommonAPI2 Version 1.7.20210118 für Windows Steam UG Build 31632,


    Neuigkeiten:

    Beta 31632 als funktionierende Version eingepflegt

    Es gibt nun ein "Fahrzeuge" Knopf, wenn man drauf drückt wird der Fahrzeugmanager geöffnet und die Linie markiert.

    Intern überprüft der Code nun, ob veraltete Haltestellen Daten für LINE_DESTINATION vorhanden sind. Daten von nicht mehr vorhandenen Haltestellen werden entfernt...


    Changelog:

    1.7.20210118-dev

    - support for OpenGL & Vulkan Renderer on TPF2 Windows Beta 31632 (not compatible with old versions)

    - several line destination ui bug fixes, verify stops of line

    - add line destination indicator to line window

    - add vehicles button to line window if line destination is enabled

  • Ganz einfach:


    CommonAPI2 Version 1.7.20210121-dev für Windows UG Build Beta 31679


    Für die neuste Beta 31679, leider gibt es immer noch keine Linux Version, da ich bei jeder neuen Build bei quas bei null anfangen muss.


    1.7.20210121-dev

    - support for OpenGL & Vulkan Renderer on TPF2 Windows Beta 31679 (not compatible with old versions)

    - use api.gui.util.downcast for checkbox in LineDepotFilterTable

    - fix crash userdata when clicking commonapi mainmenu info, don't use inGameConsole for tpf2 ui root searching

    - add border around line stop number as line destination indicator

  • Got a crash with this in stdout:

    Code
    [2021-01-23 18:52:46] Saving to file C:/Program Files (x86)/Steam/userdata/236586842/1066780/local/save/autosave_latest_attempt_1988-05-27.sav.tmp
    Texture load error: file not found: res/textures/ui/models_small/vehicle/waggon/PNAEWSstatic.tga
    ...monapi2_1/res/scripts/commonapi2\ui2\LineDestination.lua:570: stack index 2, expected string, received table: (bad argument into 'void(const classstd::basic_string<char,std::char_traits<char>,std::allocator<char> >&)')
    ...monapi2_1/res/scripts/commonapi2\ui2\LineDestination.lua:570: stack index 2, expected string, received table: (bad argument into 'void(const classstd::basic_string<char,std::char_traits<char>,std::allocator<char> >&)')
    ...monapi2_1/res/scripts/commonapi2\ui2\LineDestination.lua:570: stack index 2, expected string, received table: (bad argument into 'void(const classstd::basic_string<char,std::char_traits<char>,std::allocator<char> >&)')
    ...monapi2_1/res/scripts/commonapi2\ui2\LineDestination.lua:570: stack index 2, expected string, received table: (bad argument into 'void(const classstd::basic_string<char,std::char_traits<char>,std::allocator<char> >&)')
    ...monapi2_1/res/scripts/commonapi2\ui2\LineDestination.lua:570: stack index 2, expected string, received table: (bad argument into 'void(const classstd::basic_string<char,std::char_traits<char>,std::allocator<char> >&)')
    ..\..\src\Game\UI\Components\VehicleEditor.cpp:333: void __cdecl UI::VehicleEditor::SetVehicles(const class std::vector<class ecs::Entity,class std::allocator<class ecs::Entity> > &,bool,bool): Assertion `std::find_if(entites.begin(), entites.end(), [this, &tv] (const ecs::Entity &entity) { return tv.carrier != m_engine->GetComponent<ecs::component::TransportVehicle>(entity).carrier; }) == entites.end()' failed.


    I don't know if the commonapi error is relevant or not - earlier in the file, there is a single instance of the same error that the game clearly survived. I kept the entire file if you want to have a look at the whole thing.

  • The LineDestination.lua:570 errors you see, are related to waypoints.


    Replacing LineDestination.lua Line 570

    Code
    uielements.LineDestInfo:setText(stopData or "")

    with:

    Code
            if (type(stopData) == "string") then
                uielements.LineDestInfo:setText(stopData or "")
            else
                uielements.LineDestInfo:setText("")
            end

    should fix this error.


    About the VehicleEditor It looks like some vehicle has changed carrier or something. I don't think it's a commonapi2 fault. I really don't touch any code in the UI::VehicleEditor. (If you can reproduce the error, try uninstalling commonapi2 temporary and see what happens, but I think there is some problem with a vehicle mod)

  • Thanks. I'll patch the LineDestination.lua file as you suggest.

    After I loaded the most recent autosave, I continued play for a couple of hours without further incident. If the error recurs, I guess I'll start working on figuring out which mod is causing it...

  • a) da ist disable native library extension, eingeschaltet. Damit wird die DLL nie geladen.

    b) Die CommonAPI2 Version 20210121 funktioniert nur mit der Beta Version 31679 (du hast Build 29596)

    c) Für Build 29596 gibt es keine öffentliche Version.


    Ich kann zurzeit keine Versionen anbieten, die mit allen UG Versionen harmonieren.

    Ich hoffe mit dem Release im Februar wir es einfacher. Ich hoffe das Urban Games genug Zeit hat, um die groben Crashes bei der Benutzung Ihres UI Codes ausbügeln zu können oder das wir da eine andere Lösung finden können.


    Zurzeit kann ich daher nur sagen, bitte deinstalliere CommonAPI2 um etwaige Upgrade Probleme und Spielcrashes zu verhindern, weil mein Code gewisse Grundvoraussetzungen annimmt.

  • Das funktioniert weiterhin so:

    Code
    function data()
    -- Failback Labeltyp:
    local mylabeltype = "NEXT_STOP"
    
    -- CommonAPI2 LINE_DESTINATION aktiv:
    if (commonapi ~= nil and commonapi.supports and commonapi.supports("LINE_DESTINATION")) then
        mylabeltype = "LINE_DESTINATION"
    end


    Und dann später im Modell by labelList type dann type = mylabeltype

  • local function labels_caf? Sonst überschreibt ein anderes Modell vielleicht labels_caf


    Du kannst es ja mal mit type = "NEXT_STOP" versuchen anstelle type = labeltype und erst wenn du fertig bist, die CommonAPI2 Weiche einbauen...

  • CommonAPI2 Version 1.7.20210130-dev für Windows UG Build Beta 31752


    So nun gibt es auch wieder eine funktionierende Version für die aktuelle Beta.

    Wenn ich nicht gerade dem Vulkan Render repariere, arbeite ich weiterhin an den Funktionen für den CommonAPI2 Mod Downloader und Manager.


    Unter Mods->Mod Download hat die Tabelle nun eine Möglichkeit bekommen, nach Upgrades im Forum zu sortieren. (einfach auf U klicken um die Sortierreihenfolge zu ändern)

    Sollte gerade keine Savegame Mod-Liste offen sein, werden nun alle Mods aus dem Benutzerverzeichnis und auch Spielverzeichnis geladen.


    Darüber hinaus kann man den Ort der 7zip.exe in den Einstellungen festlegen. Auch werden die Downloadgröße überprüft, ob 7zip vorhanden ist, ob die Datei entpackt werden konnte.


    -edit-

    Hotfix: Curl Problem 416 umgangen...


    1.7.20210130-dev

    - support for OpenGL & Vulkan Renderer on TPF2 Windows Beta 31752 (not compatible with old versions)

    - New setting for 7zip location

    - ModDownloadWindow: load local mods from filesystem (reload after download)

    - ModDownloadWindow: add new column U for sorting by upgrades

    - modmanager: download filesize check

    - modmanager: check extract result for modid folder

    - modmanager: change curl timeout to 30secs

    - modmanager: use native runprocess so cmd window doesn't steal focus

    - native: add background runprocess function for windows version

    - native: remove some old tpf1 supporting code

    - native: add fs stat filesize function

  • Im Haupmenü auf

    Your Transport Fever 2 version '?_31789_1' isn't listed as known good version, klicken.

    Ggf. runter scrollen, auf bei buid_overwrite den richtigen Text eingeben (siehe unten) und das Speichern via Save nicht vergessen.

    Dann das Spiel neu starten...


    Steam Beta Build 31789


    steam_31789_1


    GOG Beta Build 31789

    gog_31789_1

  • Ich kann mit der CommonAPI so gesehen überhaupt nix machen. Im Hauptmenü finde ich nix und ansonsten gibt es da nur die offensichtlichen Grundeinstellungen. Sachen wie z.B. das mit der Endhaltestelle fehlen.

BlueBrixx