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


  • Ich danke Dir ... für mich war erstmal nur die Exportfunktion wichtig gewesen.. Da ich massive Probleme mit dem Update hatte, muss ich erstmal durchprobieren ob die Probleme wie Stop und Go Wasser behoben sind :D

  • Blöde Frage, jedoch kommt bei mir nur ein Access denied wenn ich über die CommonAPI die Mods updaten will und er versucht, den alten Mod Ordner zu verschieben, wie behebe ich das Problem?

  • Hallo zusammen und Frohe Ostern !


    Ich habe gerade bei der labelList den Eintrag 'type = "LINE_DESTINATION" or "NEXT_STOP",' versucht und zu meinem Erstaunen funktioniert es! Meine Frage nebenbei: Ging das schon immer so oder bin ich der 1. der darauf gekommen ist !?!



    P.S. Ohne die aktivierte line_destination wird der next_stop angezeigt. Es muss aber die CommonAPI vorhanden sein !

  • Nein, das ist definitiv keine Lösung. TPF2 crasht wenn LINE_DESTINATION als type geladen wird in einem Modell und die Funktionen dafür nicht im Speicher verändert werden,

    ich muss dafür extra den Type Converter patchen. Die richtige Lösung ist weiterhin:

    Code
    if (commonapi ~= nil and commonapi.supports and commonapi.supports("LINE_DESTINATION")) then
    
    end

    Beachten, LINE_DESTINATION ist erst wirklich aus, wenn es in der settings.lua der CommonAPI2 abgeschaltet wurde und das Spiel beendet.

    Du kannst das gerne irgendwo in ein Helper auslagern, zum Beispiel in ein Script.





    lem0th

    Wie gesagt, ich brauche die stdout.txt (auch gerne per privater Nachricht) nach der Fehlermeldung. Ich tippe darauf, das Windows den mods/irgendwas Ordner nicht zwischen zwei Partitionen verschieben kann.

  • Hallo,


    würde gerne die CommonApi2 downloaden aber leider kommt die Meldung:

    "Der Zutritt zu dieser Seite ist Ihnen leider verwehrt. Sie besitzen nicht die notwendigen Zugriffsrechte, um diese Seite aufrufen zu können."


    MfG

  • Da ich gefragt wurde, bezüglich wenn ich wieder eine neue Release hochlade.


    Ich arbeite an einer Funktion damit Fahrzeuge wieder zurück zur ersten Haltestelle zurückkehren wenn sie leer sind.

    Die Fahrzeuge kehren auch alle brav vorzeitg zur ersten Haltestelle zurück, nur das Spiel kommt intern so stark durcheinander, das es unter Linux wahllos Speicher freigibt ;(


    Also was macht man dann in so einem Fall?

    Man denkt sich, nutze besser UGs apis (auch via UG Console):

    Code
    >> cmd = api.cmd.make.setLine(77925, 69818, 0) 
    >> api.cmd.sendCommand(cmd, function(a, b) commonapi.dmp(a); commonapi.dmp(b); end ) nil
    
    {  vehicleEntity = 77925,  lineEntity = 69818,  stopIndex = 0,  <metatable> = <__type.name: CmdData::SetLine>
    }
    true


    Nur, es passiert natürlich mal wieder gar nichts, dem Fahrzeug ist es egal, obwohl die API true zurückgibt...


    * Hintergrundinfo:

    CommonAPI2 gibt ein neues Script Event heraus wenn ein Fahrzeug ein neues Ziel wählt, das könnten andere Mods auch nutzen. (Timetables zum Beispiel)

    Ich möchte es nutzen um meines LKWs Leerfahrten zu vermeiden...

  • Lieber eis_os


    ich möchte mal Grundsätzlich Deine Hingabe für Dein Projekt mehr wie Loben, und die ganzen Nörgler die das ein oder andere nicht nachlesen, wenn sie Probleme haben und Dich bzw Dein CommonAPI Projekt für irgendwas verantwortlich machen darauf hinweisen:


    machts besser.


    eis_os: Kopf hoch und bleib Deiner Linie Treu

  • Ich stimme zu. APi trägt mehr zum Spiel bei, als manche Updates von UG. Zumal Du jedesmal gezwungen bist, Anpassungen vorzunehmen. Bei mir läuft alles stabil und ich habe wenig bis gar keine Probleme. Wenig heisst, der User vor der Mattscheibe...^^;):thumbup:

    Ist übrigens bei NEP2 auch genau so.

  • Version 20210425 ist da


    Hallo, es gibt wieder eine neue Version, technisch eher in Richtung Bugfix.

    CommonAPI2 versucht nun bei der Installation eines Mods nicht nur ein rename sondern wenn es nicht klappt auch ein copy/delete.

    Damit sollten Probleme bezüglich verschiedene Partitionen / Laufwerksbuchstaben des Benutzerordners und des Spiels gelöst sein (Also kein access denied mehr)

    Des weiteren kopiert es die alte settings.lua in die neue Modinstallation.


    Das Inspektor Fenster hat nun eine Funktion um alle Objekte im Bereich eines Radius anzuzeigen (Die Idee habe ich mir schamlos von VacuumTube geklaut, danke dafür)

    Beim Klick in der Liste, wird die EntityId in Tab Entity genutzt.


    Auch kann man das letzte angeklickte Entity in der Welt nehmen, analog zun UG Debug Fenster (Last selected anklicken)


    Technisch ist via settings auch die Möglichkeit gegeben die neuen Events einzuschalten. (Enable new events + LINE_DESTINATION für UI)

    Man kann sogar damit Fahrzeuge wieder zum Startpunkt einer Linie schicken, wenn sie an einer Haltestelle leer sind.

    Aber da gibt es zumindest unter meinen Linuxtest erhebliche Probleme. Wer mag kann das mal auf längere Sicht testen.

    Eine Kopie eines Savegames nutzen, keines das man noch braucht. Ich habe euch gewarnt!


    Da UI Parameter nicht ohne DLL / SO funktionieren, ist dieses nun abgeschaltet wenn der native Teil nicht geladen werden kann. Damit sollte Fehlermeldungen mit der Ringlokschuppen nicht mehr auftreten.


    -edit-


    Die beiden neuen Events sind in game_script handleEvent:

    src == "CommonAPI2Native" id == "TransportVehicleSystem" name == "setNextStation"

    bzw. name == "VehicleArrived"

    VehicleArrived = wenn das Fahrzeugzum stehen kommt in der Station

    setNextStation = wenn das Fahrzeug die nächst Station anwählen wird

  • Can someone help me with this error code? Literally no information on it


    Details:


    Error message: Assertion `result.params [1]> = .0f && result.params [1] <= 1.0f 'failed.


    Minidump: C: / Program Files (x86) /Steam/userdata/283897746/1066780/local/crash_dump/fca7ce17-7be2-4383-950e-c8d668d7408f.dmp


    In file: C: \ build \ tpf2 \ src \ Game / game_io.h: 1523


    In function: struct transport :: ExtPathEdge :: EdgeRange __cdecl io :: Serializer <struct transport :: ExtPathEdge :: EdgeRange, void> :: operator () (class std :: basic_istream <char, struct std :: char_traits <char> > &, int)



    __CRASHDB_CRASH__ struct AssertException: C: \ build \ tpf2 \ src \ Game / game_io.h: 1523: struct transport :: ExtPathEdge :: EdgeRange __cdecl io :: Serializer <struct transport :: ExtPathEdge :: EdgeRange, void> :: operator ( ) (class std :: basic_istream <char, struct std :: char_traits <char>> &, int): Assertion `result.params [1]> = .0f && result.params [1] <= 1.0f 'failed.

    Exception type: Fatal error


    Details:


    Error message: Assertion `result.params [1]> = .0f && result.params [1] <= 1.0f 'failed.


    Minidump: C: / Program Files (x86) /Steam/userdata/283897746/1066780/local/crash_dump/fca7ce17-7be2-4383-950e-c8d668d7408f.dmp


    In file: C: \ build \ tpf2 \ src \ Game / game_io.h: 1523


    In function: struct transport :: ExtPathEdge :: EdgeRange __cdecl io :: Serializer <struct transport :: ExtPathEdge :: EdgeRange, void> :: operator () (class std :: basic_istream <char, struct std :: char_traits <char> > &, int)




    Goodbye.



    After playing on a save file for a while it just randomly crashes, and I can never open it. When I try, this error message pops up


    I.'ve had this problem since the TPF2 update

  • That isn't a function I touched with CommonAPI2. Do you have CommonAPI2 installed at all? I doubt it.


    -edit-

    Again to all people, if they think the problem is within CommonAPI2, you can post your crash reports here, please attach a stdout.txt to the post.


    If you have a random problem with your Game, please uninstall CommonAPI2, do you still have the problem? Then check all your other mods. If isn't a mod problem, contact UG for support via their website.


    Anyway, your savegame seems to be fundamental broken...

  • Hallo eis_os ist es möglich das die LINE_DESTINATION sagen wir mal lineEndstation == true (oder false) ausgibt. Das wenn man: if (commonapi ~= nil and commonapi.supports and commonapi.supports("LINE_DESTINATION") and lineEndstation == true ) then angibt, nur dann eine Animation startet. Mir schwebt vor wenn man die Endstation angegeben hat das dann der Pantho vom E-Bus hoch und runter fährt.

    Und ob dies dann schon in der normalen script.lua funktioniert oder per gamescript.lua /postRunFn .

  • Hmm, technisch kennt UGs System soweit ich weiß nur ein Event State pro Model. Ergo das hier.

    https://www.transportfever2.co…dding:vehicletypes#events


    CommonAPI1 konnte das ja Abfangen und via LUA dann ändern, ich könnte mal versuchen ob ich das in ein GameScript Event bekomme, wobei ich keinen Zugriff auf TPF2 Metadaten zurzeit habe.


    Also ich packe es auf meine Todoliste. UG wird wieder nicht begeistert davon sein.,,

    Im Endeffekt muss es dann eine kombinierte Animationen aller doorOpen doorClose werden so wie unter TPF1 + CommonAPI1, also doorOpenPanto oder so etwas...

  • Wenn man sich das durch liest, könnte man ja auf den Gedanken kommen an der Station mit der Ladesäule links eine lane zusätzlich zu setzen und den pantho dann per open_doors_left / closed_doors_left laufen zu lassen.


    Müsste das dann wohl aber in einem extra Pausenbereich umsetzen.

  • Wie sieht es eigentlich aus wenn das Update draussen ist? Muss da vieles an der API geändert werden? Ich frage deswegen weil es ja schon öfter Updates zum Spiel gab.

BlueBrixx