Danke für die Antworten! Bei der einen Weiche habe ich das gemacht, leider despawnt die Bahn weiterhin. Bei mir liegt vor der anderen Weiche ein Ampelobjekt. Funktioniert das auch damit oder muss vor der Weiche eine Spline liegen?
Beiträge von jjb
Als Gast kannst du nur Inhalte in deiner ausgewählten Sprache sehen. Registrierte Nutzer können die Sichtbarkeit anderer Sprachen in ihrem Kontrollzentrum aktivieren, weitere Infos hier.
Alle Themen sind in den Foren mit einer Sprachflagge gekennzeichnet:
-
-
Hallo,
ich bin langsam am Verzweifeln. Ich versuche auf meiner Karte eine befahrbare Straßenbahnlinie zu implementieren. Neben kleineren Problemen bei der Fahrt despawnt die Straßenbahn leider immer an den gleichen Stellen; immer vor zwei Weichen. Ich habe die Gleise neu verlegt, die Weichen gegen andere ausgetauscht und im Bahn SDK nachgelesen und alles ist richtig verbunden ...
Habt ihr Ideen oder eine Lösung, damit die Straßenbahn nicht mehr despawnt?
-
Neues Update
Download - WebDisk
Zwei fatale Fehler wurden behoben. Vielen Dank an Brandenburger und Frankysmiles!
Hier der Changelog:
- behoben, dass beim Erststart die Sprache nicht geladen wurde und deshalb Fehler aufgetaucht sind
- behoben, dass der Pfad zum Dokumentordner falsch war
- eine Version wird nun nur als alt angezeigt, wenn die alte Versionsnummer wirklich kleiner ist (für die Übergangszeit zw. Hochladen und Freischaltung)
- diverse Fehlerbehebungen
-
Es fehlt nur noch der letzte Schliff:
- stückweise lineare Funktionen
- Systemmakros
- einige Systemvariablen/vordefinierte Variablen
Liste der zurzeit verfügbaren Befehle:
Console:
'help' Displays this list of commands.
'cls' Clears the contents of the console.
'cla' Clears all stacks, variables, constants, macros and triggers.
'exit' Exits the console.
Scripts:
'run [filePath] (\cla)' Loads a script, and if following the naming rules also the associated variable and constant files, and executes it.
'filePath' An absolute path to the script.
'\cla' Clears all stacks, variables, constants, macros and triggers before it runs the script.
'runMore [filePath]' Loads all variables, constants, macros and triggers and runs the scripts.
'filePath' An absolute path to the configuration file (.bus/.ovh/.sco).
'load [filePath]' Loads a script (macros/triggers), and if following the naming rules also the associated variable and constant files.
'filePath' An absolute path to the script.
'loop [frameCount]' Runs the previously loaded {init} section and then the {frame} section of the script.
'frameCount' Sets the count of frames (how many times the {frame} section will be executed).
'[command]' Executes an OMSI script command.
'command' An OMSI script command.
Variables:
'debugVar' Displays all used variables including values.
'loadVarList [filePath]' Loads a variable list from file.
'filePath' An absolute path to the variable list.
'loadStringVarList [filePath]' Loads a string variable list from file.
'filePath' An absolute path to the string variable list.
System variables:
'debugSystemVar' Displays all system variables.
'setSystemVar [name] [value]' Sets a system variable.
'name' The name of the system variable.
'value' The new value of the system variable.
Constants:
'debugConst' Displays all constants and their values.
'loadConstFile [filePath]' Loads a constant file including functions and constants.
'filePath' An absolute path to the constant file.
Macros:
'debugMacro' Displays all available macros.
Triggers:
'debugTrigger' Displays all available triggers.
'runTrigger' Runs a previously created trigger.
-
OMSI Script Console
Nach einer längeren Pause habe ich das Projekt OMSI Script Console fast beendet. Das Projekt habe ich nun in C# programmiert (für Lazarus 😁), da dies viel einfacher und übersichtlicher ist und Teil meines nächsten großen Projektes wird. Es fehlen nur noch die Systemvariablen und einige Tests. Alles findet vorerst in der Konsole statt, einige zusätzliche Befehle helfen beim Debuggen und bei der Scriptentwicklung. Hier ein kleiner Vorgeschmack auf die Konsole:
Was denkt ihr über die OMSI Script Console? Welche Funktionen würdet ihr euch wünschen? Ich freue mich auf euer Feedback!
-
Thanks for your answer!
Yeah, the idea with the AUXI script variables is excellent! If you would implement the mentioned functions, AUXI would be a perfect addition to the OMSI script system!
-
Hallo,
AUXI ist ein echt tolles Programm, vorallem aber die Developer-Tools. Großes Lob an den Entwickler! Ich habe aber zwei Vorschläge: Wäre es möglich eine Funktion hinzuzufügen, die jeden (ungefähr) Frame/FixedFrame ein LUA-Script ausführen könnte? Möglicherweise könnte man dies mit einer async-Methode und einer Schleife umsetzen? Könnte man LUA-Scripts per Button/bzw. über das Menü ausführen? Somit könnte man OMSI perfekt modden! Ein Beispiel für das Ausführen von LUA-Scripts per Button wäre das Überspringen der Pausenzeit, Ändern der .HOF-Datei auf eine bestimmte, usw...
Hello,
AUXI is a really great programme, especially the developer tools. Great praise to the developer! But I have two suggestions: Would it be possible to add a function that could execute a LUA script every (approximately) Frame/FixedFrame? Possibly this could be implemented with an async method and a loop? Could LUA scripts be executed by button/via the menu? This would be a perfect way to mod OMSI! An example for executing LUA scripts via button would be skipping the pause time, changing the .HOF file to a specific one, etc....
-
Du kannst dies versuchen:
- das Mesh in Blender auswählen:
- im Edit Mode alle Faces markieren mit a:
- und Strg+T drücken:
- das Mesh wie gewohnt exportieren und im Editor laden
Dies passiert in OMSI deshalb, weil in der .o3d-Datei die Flächen als Dreiecke gespeichert werden und die Fläche nach dem Bearbeiten mit dem Knife-Tool in deinem Fall kein Dreieck mehr ist. Die Funktion Triangulate Faces formt das Polygon wieder in Dreiecke um. Achtung! Dadurch kann es schwieriger sein, bspw. das UV Mapping zu bearbeiten!
-
Vielen Dank! Ich habe hier schon mal einen Beitrag zu diesem Thema gesucht, aber nichts gefunden. Das war aber schon eine Weile her...
-
Hallo,
ich wollte fragen, wann genau eine Datei das Label "Empfohlen" bekommt. Wovon genau hängt das ab?
Vielen Dank für Eure Antworten!
Lösung von Einsamer_Wolf86: RE: Wie kommt man an ein "Empfohlen" bei den Downloads?
-
Sprachupdate veröffentlicht
Download - WebDisk
- Sprachfeature inkl. 5 Sprachen:
- Englisch
- Deutsch
- Polnisch
- Spanisch
- Französisch
- Möglichkeit zum Hinzufügen seiner eigenen Sprache
- einzelne Zeichen können nun bearbeitet werden (Beta-Funktion: Fehler können noch vorkommen)
- anzeigen (zum Erstellen einer Font aus einem eigenen Bild)
- verschieben
- Größe ändern
- neue Modes
- einfacherer Weg zum Installieren von Assets (Modes und Sprachdateien)
- diverse Fehlerbehebungen
- Sprachfeature inkl. 5 Sprachen:
-
Neues Sprachupdate
Nach längerer Zeit wird es bald ein neues Update geben:
- Sprachfeature inkl. 5 Sprachen:
- Englisch
- Deutsch
- Polnisch
- Spanisch
- Französisch
- Möglichkeit zum Hinzufügen seiner eigenen Sprache
- Zeichen können nun bearbeitet werden
- anzeigen (zum Erstellen einer Font aus einem eigenen Bild)
- verschieben
- Größe ändern
- neue Modes
- einfacherer Weg zum Installieren von Assets (Modes und Sprachdateien)
- viele Bugfixes
- Sprachfeature inkl. 5 Sprachen:
-
Vereinigung vom OMSI Font Generator & Creator
Nach langem Warten ist es nun so weit: Der OMSI Font Generator wird zum OMSI Font Creator mit vielen neuen Funktionen!
- Verschiedene Sprachen
- Laden und Speichern von Fonts, Projekten
- Überarbeitung des UI’s inkl. Icons und neuen Funktionen
-
Bald: Neues Update
Bald kommt ein neues Update mit:
- Laden & Speichern von Projekten
- Erweiterte Einstellungen: ändere Darstellung, Ort und Größe des Buchstabens
- ändere den Zeilenabstand
- lade Buchstaben und Schriftarten aus *.oft-Dateien
- ändere den Speicherort des Outputs
Bald folgt:
- OMSI Font Creator im OMSI Font Generator mit der Hilfe von dem More-Properties-Window
- deshalb: kleine Überarbeitung des UI's
Wie findet ihr das, was auf euch zukommt?
-
Ich habe dieses Script erstellt, aber irgendwie sind alle Variablen 0 und die $msg-Befehle werden im Debug-Modus nicht angezeigt.
Code
Alles anzeigen'################################# 'Parada-Announcement '################################# 'plays the actual stop announcement after X meters '(c) 31.03.2022 jjb 'Script Version: 1.0 'Omsi release: 2.0 'Needs: '- none {init} "Debug: Init" $msg ' Nullsetzen 0 (S.L.lastbusstop) (L.L.kmcounter_km) (L.L.kmcounter_m) 1000 / + 10 * (S.L.lastkm) {end} {frame} "Debug: Frame" $msg ' Script soll nur auf Mallorca ausgeführt werden (L.$.Yard) "PMI_2Palma" $= {if} "Debug: Hof-Datei PMI_2Palma" $msg ' Speichern des Ziels und der aktuellen Haltestelle ' Register 0: Haltestelle als Index ' Register 1: akt. Km-Stand ' Variable 3: (M.V.GetTTBusstopIndex) (S.L.actbusstop) (L.L.kmcounter_km) (L.L.kmcounter_m) 1000 / + 10 * (S.L.actkm) (L.L.actbusstop) 4 (M.V.GetBusstopString) "" $= ! {if} "Nächste Haltestelle ist nicht leer" $msg (L.L.actbusstop) 2 (M.V.GetBusstopString) $IntToStr (S.L.shoulddistance) {else} "Nächste Haltestelle ist leer" $msg 0 (S.L.shoulddistance) {endif} ' vergleichen der Werte mit dem letzten Durchlauf (L.L.actbusstop) (L.L.lastbusstop) = ! (L.L.lastbusstop) 0 = ! && (L.L.shouldplay) 0 = && (L.L.shoulddistance) 0 = ! && {if} "Soll abgespielt werden" $msg 1 (S.L.shouldplay) (L.L.actkm) (L.L.shoulddistance) + (S.L.lastkm) {else} "Soll nicht abgespielt werden" $msg 0 (S.L.shouldplay) {endif} ' schon bereit Ansage abzuspielen? (L.L.lastkm) (L.L.actkm) = (L.L.shouldplay) 1 = && {if} ' Ansage vorbereiten "..\..\Announcements\" 0 (M.V.GetDepotStringGlobal) "\" $+ $+ "act_" $+ (L.$.act_busstop) $+ ".wav" $+ (T.F.ev_ansage) $msg ' Zurücksetzen 0 (S.L.shouldplay) 0 (S.L.shoulddistance) (L.L.actbusstop) (S.L.lastbusstop) {endif} {endif} {end}Wo liegen die Fehler? In der Log-Datei steht nichts ...
-
Langsam kommen mehr Funktionen hinzu:
Nun habe ich schon ein wenig am Script-Generator gearbeitet:
Auf dem Screenshot zu sehen ist der "Plugin Market", also "Plugin-Markt". So können Nutzer für Nutzer Plugins erstellen, die für den User ein Script generieren. Nur mit der Hilfe von ComboBoxes bzw. Buttons.
Wie findet ihr die Idee?
-
-
soweit wie ich das Verstehe, liegt der Vorteil bei diesem Scriptsystem und der umgekehrten polnischen Notation darin, dass das Script Wie ein Buch "gelesen" werden kann. es gibt ja deshalb auch keine Sprünge oder Loops innerhalb eines Frames. Stacks oder Register gibts in anderen Sprachen auch, die eine ähnliche Funktion haben.
Ja, das stimmt. Erleichtert mir die Arbeit erheblich.
Hier noch ein paar Fragen:
- achtet && auf TRUE und FALSE (Bsp.: 18 5 && wäre 1) oder ob die Werte wirklich identisch sind (Bsp.: 18 5 wäre 0)
- Werden auch bei den Vergleichsoperatoren die beiden miteinander verglichenen Werte gelöscht? Ich meine nein, möchte aber sichergehen ...
- Wie genau funktioniert $IntToStrEnh? Ich kann das leider aus dem Wiki-Artikel nicht ganz verstehen ... Was sind die Parameter und was der Output?
- Was passiert bei arctan und arcsin, wenn das Ergebnis nicht möglich/unendlich ist?
-
Vielen Dank für die Antworten!
Ich fasse mal zusammen, um sicherzugehen, dass ich alles richtig verstanden habe:
- Im Fall von (L.L.variable1) ! (S.L.variable1) wird die Variable zu 1 bzw. zu 0, es kommt darauf an, ob die Variable 0 oder 1 ist.
Wenn die Variable aber bspw. 18 (also größer 0, True) ist, wird sie auch zu 0? - Bei der If-Anweisung: (L.L.variable) ! {if} ... muss die Variable alles andere als ihr Wert sein.
- Bei jeglichen Operationen werden die Operanden aus dem Stack entfernt. Also wird der Wert 5 auch bei bspw. 5 random entfernt.
- True ist alles, was größer als 0 ist.
Langsam frage ich mich, wie die auf sowas gekommen sind 😂...
- Im Fall von (L.L.variable1) ! (S.L.variable1) wird die Variable zu 1 bzw. zu 0, es kommt darauf an, ob die Variable 0 oder 1 ist.
-
Hallo,
ist es möglich per Script auszulesen, dass der Bus sich nah an seiner nächsten Haltestelle befindet?
Damit würde ich gerne die zweite Haltestellenansage abspielen, wie bspw. "Haltestelle: Berliner Straße".
Vielen Dank für eure Antworten!