Bug der Ingame Konsole bei Fehler / Bug of ingame console during error

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


  • Hier halte ich mal einen seltsames Verhalten der UG ingame Konsole fest, das andere Modder vielleicht Nerven erspart. Ich habe das Problem bereits im Mai 2024 erkannt und an UG gemeldet. Leider wurde versäumt, dieses im letzten Update zu fixen.


    Folgendes Verhalten:

    Ruft man eine Lua Funktion in der Konsole auf und tritt dort irgendwo ein Fehler auf, so versucht die Konsolenausführung die Funktion ein zweites Mal aufzurufen.


    Beispiel:


    Das mag in den meisten Fällen nicht weiter auffallen. Aber in manchen Fällen, ist es ein Problem, wenn eine Funktion öfter aufgerufen wird, als erwartet. Ganz im Ernst, wer würde sowas erwarten? Da muss man beim Debugging erstmal daruf kommen.


    Hintergrund:

    Bei OSM Importer wird ein Schritt in der Konsole gestartet und das soll nicht mehr als einmal ausgeführt werden. Ruft man die Funktion ein zweites Mal auf, wird ein bewusster Error (assert) erzeugt, um undurchsichtige Folgefehler zu vermeiden. Durch dieses Verhalten wird jedoch der eigentliche Fehler verschleiert und es wird nur ein Error angezeigt, der durch das 2fache Aufrufen entsteht. Das macht die Fehlersuche natürlich deutlich schwieriger.

    Und wenn man denkt, alle Fehler sind jetzt raus, kommt natürlich doch immer noch was, vor kurzem hier: https://github.com/Vacuum-Tube/OSM-TPF2-Importer/issues/7


    Urban Games (Martin Hodler) schrieb dazu:

    Zitat

    Es handelt sich bei diesem komischen Verhalten um die Implementation welche Informationen für die Autocompletion sammelt. Damit die Konsole z.B. f().foo vorschlagen kann wird Funktion ausgewertet. Bei einem Fehler verhält sich diese Implementation jedoch nicht sauber.
    Wir nehmen das Problem bei uns auf die Liste. Leider kann ich dir aufgrund von Prioritäten und anderen Tasks nicht garantieren ob und wann dies angegangen wird.

    Was ich etwas komisch finde, da mir nicht bekannt ist, dass Autocompletion hinter Funktionen stattfindet.



    Workaround:

    Allerdings habe ich gerade auch einen Workaround herausgefunden. Der Bug tritt nicht auf, wenn man mehr als eine Lua Anweisung gleichzeitig ausführt. Also zB

    Code
    asdf=1; foo()

    oder mehrere Linien Code in die Konsole kopiert.