CommonAPI Fahrzeug Animationscallback

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


Sie betrachten gerade eine ältere Version des Eintrags. Klicken Sie hier, um zur aktuellen Version zu gelangen.

  • CommonAPI Fahrzeug Animationscallback Callback um Fahrzeuge zu gestalten.
    [h1]CommonAPI Fahrzeug Animationscallback [/h1] [info=warning]Vorläufige Entwicklungsbeschreibung der Version 1.11.20191002-dev[/info]

    1 Animationscallback registrieren

    [info=warning]Wichtig: Baut eure Fahrzeuge immer so, das eure Mods auch ohne die CommonAPI funktioniert. Um herauszufinden ob die CommonAPI geladen ist, überprüft die globale Variable [tt]commonapi[/tt] und danach [tt]commonapi.vehanimations[/tt] Es kann sein, das der Nutzer vehanimations abgeschaltet hat, also muss immer beides getestet werden. [/info] Um eine Animationscallback zu aktivieren, müsst Ihr in der Fahrzeug.mdl die Funktion [tt]commonapi.vehanimations.add(, )[/tt] aufrufen. Beispiel: [code]local function MirageCallback(data, index) end function data() if (commonapi ~= nil) then if (commonapi.vehanimations ~= nil) then commonapi.vehanimations.add("vehicle/tram/be4_6mirage.mdl", MirageCallback) end end return { ...[/code]

    2 Callback Funktion

    Die CommonAPI ruft bei jeder Entscheidung eines Tür Events bzw. des Abfahrtsevent einer Station euer Callback auf. [tt]local function mycallback(data, index)[/tt] In der data Variable ist eine Tabelle mit allen Daten des Zugverbandes, der Index beschreibt den Index in der vehicles Subtabelle: [code]{ depot = -1, id = 16785, line = 16428, stopIndex = 0, type = 2, vehicles = { { age = 2, color = { -1, -1, -1 }, event = "close_all_doors", fileName = "vehicle/tram/Avenio.mdl", lastevent = "open_all_doors_19", logo = "", loop = false, modelId = 405, opennum = 19, purchaseDate = { day = 9, month = 7, year = 1950 } } } }[/code] Hier könnt Ihr nun: [list][*]Das Event umschreiben bzw. eine andere Variante eines Events auswählen (Zurzeit sollte die Länge der Animation nicht erheblich länger sein als das normale Event) [*]Die Farbe des Fahrzeug ändern [*]Das angebrachte Logo verändern [/list]Um einen Eindruck der Daten zu erhalten, könnt Ihr in der CommonAPI Console eingeben: [tt]commonapi.vehanimations.traceOn()[/tt] Ihr könnt in der Callback Funktion math.random ausführen. Auch ist die Möglichkeit andere TPF Lua Funktionen zu nutzen, bedenkt aber das die Callback Funktion so schnell wie möglich sein muss. Daher arbeitet sparsam. Außerdem bei einem Zugverband ist die Datentabelle für alle Callbacks die gleiche Tabelle, daher sind Änderungen an der Struktur nicht erlaubt! Für jedes Fahrzeugteil gibt es einen Eintrag in [tt]vehicles[/tt]. Euer Callback erhält den Index in diese Tabelle als zweite Variable der Callback Funktion [table] [tr] [td]age[/td] [td]Alter des Fahrzeug(teils) in Monaten[/td] [/tr] [tr] [td]color[/td] [td]Farbe des Fahrzeugs (rgb float) { -1, - 1, -1 } bedeutet keine Farbe[/td] [/tr] [tr] [td]event[/td] [td]Abzuspielende Animation/Event. Sollte es nicht im Modell definiert sein, wird das default Event als Failback genutzt. (Die Länge der Animation für die Abfahrtszeit Berechnung kann dadurch nicht mehr verändert werden )[/td] [/tr] [tr] [td]lastevent[/td] [td]Vorheriges event wenn bekannt[/td] [/tr] [tr] [td]opennum[/td] [td]Nur bei close events, die letzten zwei Ziffern des open events oder nicht vorhanden[/td] [/tr] [tr] [td]loop[/td] [td]Animation unendlich abspielen[/td] [/tr] [tr] [td]logo[/td] [td]String "" für nicht gesetzt. Logo auf dem Fahrzeug ggf. ändern[/td] [/tr] [/table]

    3 Weiterführende Informationen

    [url='https://www.transportfever.net/filebase/index.php/Entry/3287-Common-API/']CommonAPI in der Webdisk[/url] [url='https://www.transportfever.net/index.php/Thread/9110-Common-API/']CommonAPI Forum Beitrag[/url]

Teilen