Ich habe eine Zeit lang erfolglos nach dem Geschwindigkeitswert des Sim-Autos gesucht, mit dem eine sim_person unterwegs ist. Die Geschwindigkeit, die man leicht aus der sim-entity ablesen kann, ist die Geh-geschwindigkeit und nicht die aktuelle Geschwindigkeit des Autos. Der Wert, nach dem ich suche, ist unten rechts zu sehen, wenn man die Kameraansicht des Sims startet. Kann mir jemand Tipps geben, welche Aufrufroutinen ich brauche, um den Wert auszulesen?
Sim-Auto geschwindigkeit, welcher api?
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
-
-
melectro
Hat den Titel des Themas von „Sim-Auto geschwindigkeit“ zu „Sim-Auto geschwindigkeit, welcher api?“ geändert. -
Ich hab mal kurz meinen Inspektor angeworfen, und den MOVE_PATH ausgewählt,
api.engine.getComponent(<entity>, api.type.ComponentType.MOVE_PATH).dyn0.speedin m/s, sollte die Geschwindigkeit haben...
-
Danke, es ist richtig !
-
Ich habe nun die API-Referenzliste für TpF2 durchsucht, ohne die nächste Funktion zu finden. Was ich suche ist, dass ich von meinem Skript Kosten/Einnahmen-Animation starten kann, die z.B. bei einem Fahrzeug zu sehen ist, das gerade Waren ausgeliefert hat. Gibt es eine fertige API, um eine Zahl von einer bestimmten Position aus nach oben laufen zu lassen, oder muss ich eine eigene mdl erstellen? Ich weiß nicht, ob es überhaupt möglich ist, eine Animation auf einen labelText zu bekommen.
-
Dafür fällt mir keine keine eigene API ein.Ist aber auch kein Teil die ich irgendwann mal angefasst habe...
Eine Preisanzeige ist kein labelText. LabelTexte sind an die mdl bzw. der Konstruktion gebunden. Du könntest die Animation machen, die labelTexte sollten mit der Modelanimation mit verschoben werden.
Rendern -> ecs::component::ModelInstanceList -> Transformator -> Transformator holt sich die Daten aus der Entity Daten -> Anzeige der LabelTexte.
-
Die LabelList wird ja unter "metadata" deklariert, aber ich sehe keine Verbindung zu LODs oder Animationen.
Vor ein paar Monaten habe ich mich mit diesem Thema beschäftigt, als ich eine animierte Kippbewegung einer Vanbox in meiner Polyethylenfabrik erstellen wollte. Letztendlich habe ich das Problem so gelöst, dass ich den Wert "fixiert" habe, indem ich eine Textur mit derselben Schriftart erstellt habe, die dann der Animation folgt.
Ein weiteres Problem, das ich wahrscheinlich mit einem eigenen mdl haben werde, ist, den labelText immer rechtwinklig zum Spieler anzuzeigen, unabhängig davon, aus welcher Richtung man das Objekt betrachtet. Das macht die Programmierung etwas schwieriger.
Ich habe in verschiedenen Mods recherchiert, aber bisher keine Mod gefunden, die animierten labelText enthält. Hat jemand von euch eine Idee oder einen Ansatz, wie sich das umsetzen ließe? Ich wäre für Tipps oder Beispiele sehr dankbar!
Rendern -> ecs::component::ModelInstanceList -> Transformator -> Transformator
Kannst du das ein wenig erläutern? Ich verstehe das nicht.
-
Jedes MDL in TPF2, das irgendwo gerendert wird, ist durch eine Referenz in der es ecs::component::ModelInstanceList dargestellt. (Mal abgesehen der Procedural Shapes)
Dort gibt es den sogenannten Transformator Eintrag:
Code
Alles anzeigenNoTransformator = -1, RailVehicleTransformator = 0, RoadVehicleTransformator = 1, TramTransformator = 2, AircraftTransformator = 3, ShipTransformer = 4, TownBuildingTransformator = 5, TownBuildingAssetTransformator = 6, AnimalUserTransfsFn = 7, RailCrossingCalcUserTransfsFn = 8, VehicleDepotCalcUserTransfsFn = 9, SignalCalcUserTransfsFn = 10, TrafficLightCalcUserTransfsFn = 11, SimBuildingCalcUserTransfsFn = 12, // industry PersonCalcUserTransfsFn = 13, ConstructionTransformator = 14, // Assets? RandomAnimationTransfsFn = 15, StationTransformator = 16, AssetGroupTransformator = 17,Daher ist es zum Beispiel nicht möglich eine Bushaltestelle mit Liniennamen oder Stationsnamen zu versehen, oder man benutzt CommonAPI2 beim Bau.
Wenn du also eine MDL Datei ohne Transformator hast, kannst du auch keine labelTexte anzeigen.
Brute Force Animation: Konstruktion -> Position per Parameter -> updateConstruction via command.
Ich frage mich ob es das alles wirklich wert ist. Du kannst ggf. den gleichen Effekt erzielen wenn du ein UI Element hast und den Text damit den Benutzer anzeigst.
Wobei ist diese Funktion wirklich so wichtig? Und wie willst du eigentlich den Betrag von Spielerkonto überhaupt abziehen?
-
Versuche es mal mit dem hier:
Command
make.bookJournalEntry(playerEntity, journalEntry[, a])
Das hat laut Referenz eine Position als Vector:
https://transportfever2.com/wi…tml#make.bookJournalEntry
Keine Ahnung ob da was sichtbar wird
-edit-
Beispiel Script:
Mit dem Inspektor zu 1,1 gehen
journalEntry = api.type.JournalEntry.new()
journalEntry.time = -1
journalEntry.amount = 10000000
cmd = api.cmd.make.bookJournalEntry(api.engine.util.getPlayer(), journalEntry, api.type.Vec3f.new(1,1,1))
api.cmd.sendCommand(cmd)
journalEntry.time -1 ist wichtig, sonst gibt es einen Crash
api.type.Vec3f.new(0,0,0) wird ignoriert, d.h. die Position darf nicht 0,0,0 auf der Karte sein...
Mit der JournalEntryCategory kannst du auch den "Zweck" bestimmen...
D.h. es kein freier labelText, aber damit kannst du einen Beitrag auf dem Nutzerkonto buchen, damit müsstest du doch weiter kommen?
-
journalEntry.category.type = 0Keine Ahnung wo TPF2 das dann anzeigt

journalEntry.category.type = 6Wegen dieser Fehlermeldung:
error: [string "journalEntry.category.type = aa"]:1: stack index 3, expected number, received nil: (bad argument into 'void(JournalEntry::Type)')
-
-
Die Obere Teil ist carrier = 3 JournalEntryCarrier => OTHER
Dort kannst du via type = 4 = JournalEntryType => MAINTENANCE
den Unterhalt für maintenance = Eintragen, sprich für 3 Sachen aus JournalEntryMaintenance
Des weiteren kannst du dort via type = 5 in der "Other" Kategorie eine "Tickets" Betrag buchen.
Wenn es Total falsch ist, crasht das Spiel halt
