Probleme mit .lua (gelöst)

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 brauche bitte ein wenig Hilfe mit Lua.


    Gerade probiere ich, für ein neues Modell eine etwas elegantere und pflegeleichtere .con zu bauen. Sie soll am Anfang eine Liste mit den zu inkludierenden Dateinamen und den Kurzbezeichnungen der dazu gehörenden Modelle einlesen, basierend darauf das Menü befüllen und je nach Benutzerauswahl dann eine .con abwurfbereit ausgeben.


    Das einzige Problem dabei ist: es funktioniert nicht. Das Spiel startet, die erste Fehlerprüfung überlebt der Code also. Aber sobald man dann das Assetmenü anfordert, kommt das hier:



    ...anstelle von ein paar Citroen-Assets.


    Irgendwas muß ich also falsch gemacht haben. Könnte mir jemand bitte weiterhelfen?

  • Habs kurz mal als Lua-Code formatiert, der Lesbarkeit halber...

    DH-106 versuchs mal mit FileName[params.dh106_CitroenH_1 + 1]... manchmal ist das mit den indizes bisschen tückisch. Bin mir da gerade nicht sicher.

  • Noch ne sache:

    FileName[params.dh106_CitroenH_1 + 1]


    gäbe es noch als sichere Variante:

    FileName[ (params.dh106_CitroenH_1 or 0 ) + 1]


    warum? TPF2 hat zumindest früher schon mal "vergessen" einen Parameter mitanzugeben.


    Oder du hast ein "altes" Asset ohne den Parameter auf der Karte und bei einem Mod Update gibt es neue Parameter.


    Die Idee dahinter: Wenn ein Parameter nil ist, kann man damit nicht rechnen und es gibt einen LUA Fehler, mit dem "or" hast du dann 0. Sprich nicht gesetzte Parameter sind dann 0 + 1, also immer den erste Eintrag.


    Eigentlich müsste man noch schauen ob der Index außerhalb der Tabelle ist... Aber Ihr erweitert eure Mods ja immer, kleiner werden die nicht ;)

  • Nochmal danke für die Hilfe. Es funktioniert jetzt so, wie es soll.


    Drei Fehler waren in der obigen .con drin:


    1. MenuNames ist eine Funktion und muß deswegen mit () angesprochen werden. (danke Yoshi und doug)

    2. Lua mag es nicht, wenn man Funktionen direkt mit params.(irgendwas) aus einem Menü füttert.

    3. Lua scheint es auch zu bevorzugen, wenn man eine Funktion nicht direkt als Feld benutzt, sondern erst ein separates Feld durch sie füllen läßt.

    Und die Methode, einen Fehler von vorneherein auszuschließen, die eis_os oben genannt hat, ist auch aufgenommen.



    Wenn jemand gerne den Code für seine eigenen .con benutzen möchte: hier ist er einmal in vollständig. Ich habe noch eine Funktion hinzugefügt, mit der das zu bauende Modell um die X- und Y-Achsen drehbar und um die Z-Achse verschiebbar gemacht wurde.


    Anzupassen sind:

    Zeile 6: Name des Assetmenüs, der in dem übergeordneten Auswahlmenü (in der Kategorie) erscheint.

    Zeile 7: Name des Modells, der direkt im Assetmenü selbst erscheint.

    Zeile 8: Beschreibung des Mods im übergeordneten Auswahlmenü

    Zeile 9: Kategorie des Mods - unter diesem Namen wird das Assetmenü kategorisiert. Eine Bilddatei ist selbst beizustellen.


    Zeilen 11ff: (AssetList = ...)

    Für jedes Modell, das eingeschlossen werden soll: Name der Asset-.mdl inklusive Verzeichnisstruktur und Name, unter dem diese .mdl im Assetmenü auftauchen soll.


    Um den Rest kümmert sich dann der Skript.

    2 Mal editiert, zuletzt von DH-106 ()

  • DH-106

    Hat den Titel des Themas von „Probleme mit .lua“ zu „Probleme mit .lua (gelöst)“ geändert.
BlueBrixx