OMSI Script Console & Creator

Willkommen in der OMSI-WebDisk!
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: = Englisch [EN], = Deutsch [DE], = Französisch [FR]. Wenn du die angegebene Sprache nicht beherrschst, schreibe auf Englisch!
  • Zum neuesten Beitrag springen (13.10.2023)
    Various OMSI Tools



    Hallo,

    ich wollte Euch mein geplantes Programm, noch in der Alpha-Phase, vorstellen, den OMSI Script Creator:


    Features:

    • Script-Generator: Generiere Dein Script durch einfaches Drücken von Buttons
    • Script-Debugger: Finde alle Fehler, ohne das Starten von OMSI
    • Script-Konsole: Probiere verschiedene Befehle aus und beobachte, wie sich Stacks und Variablen verändern

    • Wie findet Ihr das Programm und findet Ihr es hilfreich?
    • Welche Ideen habt ihr? Könnte man etwas verbessern?

    Ich freue mich auf Eure Beiträge!

  • Anzeige
  • Features:

    • Script-Generator: Generiere Dein Script durch einfaches Drücken von Buttons
    • Script-Debugger: Finde alle Fehler, ohne das Starten von OMSI
    • Script-Konsole: Probiere verschiedene Befehle aus und beobachte, wie sich Stacks und Variablen verändern

    Moin, :hi:


    großes Kompliment, dass du dich an so ein hilfreiches Projekt ran wagst, dass würden vielen in der Omsi-Community eine große Last abnehmen. Spitze!
    Viele haben es ja ziemlich schwer mit den tollen Skripts ^^ und dann den Script-Debugger, den finde ich persönlich am interessantesten. :super:
    Am Programm solltest du aber noch einwenig arbeiten, da es nicht ganz übersichtlich ist, soweit ich das sehe.
    Ich bin sehr gespannt, was du daraus machen wirst und freue mich auf Neuigkeiten zu dem Tool/Programm. ;)

    Liebe Grüße,
    Oliver

    Herzliche Grüße,

    Oliver

    2 Mal editiert, zuletzt von Oli_123 ()

  • Vielen Dank für euer Interesse!

    Es wäre durchaus sinnvoll, wenn du deine Programme so entwickelst, dass diese nicht als Virus erkannt werden. Das ist einfach nicht sauber programmiert und auch kein guter Stil.

    Die Programme sind "sauber" programmiert, aber durch einige Hacker, die versucht haben, mit dem Compiler, den ich benutze, bösartige Programme zu schreiben, werden meine Programme nicht als sicher angesehen. Meinerseits kann ich da leider nichts tun ...

  • Das bezweifle ich stark.

    Na jjb wird ja wohl wissen, womit er seine Programme geschrieben hat ^^


    Wenn es sich um PowerShell handelt, dann geht es womöglich um ps2exe, welches laut dieser Website genau dieses Problem aufweist, ich darf zitieren:

    Zitat


    Seitdem irgendjemand mit PS2EXE eine Ransomware erstellt hat, erscheint aktuell bei jeder PS2EXE generierten .EXE eine Warnmeldung. 16 von 68 AntiVirus-Produkte erkennen die .EXE derzeit als Virus. Leider sind mit BitDefender und GData aktuell auch populäre Hersteller von dieser Fehleinschätzung betroffen.

    Dass die Programme offenbar als Virus erkannt werden, ist zwar nicht sehr schön, allerdings fehlt es wohl an kostenfreien Alternativen.

    Offenbar handelt es sich ja aber ohnehin nur um eine

    Zitat

    Fehleinschätzung

    der Virenprogramme und damit liegt der Fehler hier gar nicht mal unbedingt nur beim Entwickler, von dem man im Freewarebereich überdies eben nicht verlangen kann, sich eine kostenpflichtige Alternative zu besorgen oder eine andere Programmiersprache/Skriptsprache zu nutzen (ich weiß, dass das hier auch nicht gefordert wurde). Wer das Programm unter diesen Umständen nicht nutzen möchte, der soll es bleiben lassen. Und jjb kann sich ja selbst überlegen, ob er deswegen die Plattform wechseln möchte, oder nicht. Das Problem ist ja spätestens jetzt bekannt.

    Meine bescheidene Meinung dazu.

  • Sherlock Holmes

    Wenn mit PS2EXE ein komplettes C# Projekt erstellt wird, dann will ich nichts gesagt haben. Das wird dann aber auch nicht so ganz draus ersichtlich, aber würde immerhin den PowerShell zugriff erklären.


    Ich würde da wahrscheinlich auf eine andere Programmiersprache wechseln, da das schon etwas suspekt ist, aber erklärt dann den Import der Windows Core Experience (User32.dll).


    Im Endeffekt wirst du das vermutlich dann eh nicht behoben bekommen, weil das Problem ist ja eh tiefergreifend. Vermutlich auch nicht, wenn du das in anderen Programmiersprachen versuchst, und wenn dann nur mit ganz sauberem Code.


    Die Ursache für sowas ist halt tiefgreifend und schwer zu finden:

    • Dateien einlesen und schreiben kann schon ausreichen, um eine False Flag zu triggern.
    • Im Endeffekt langt schon „seltsames“ Verhalten.
    • Auch die Windows Core Experience importieren ist schon manchmal problematisch
  • Mir ist dieses Problem bekannt und langsam bringe ich PowerShell an seine Grenzen, vor allem wenn es sich um 3D handelt: Deshalb bin ich gerade am Lernen von C#, aber ich bin noch nicht so weit, um schnell ein komplexes Programm, wie dieses mit C# zu entwickeln.

  • Der Parser funktioniert nun!

    Aus dem:

    Code
    {init}
    1 (S.L.verschiebung)
    {end}
    {frame}
    (L.L.verschiebung) (L.S.Timegap) 0.35 * - (S.L.verschiebung) 0 <
    {if}
    (L.L.verschiebung) 1 + (S.L.verschiebung)
    {endif}
    {end}

    Wird das:

    ... somit kann jede Anweisung nacheinander ausgeführt werden. Jetzt fehlt (nur) noch das Ausführen von einfachen Scripts, damit der Script-Debugger für die einfachen Scripts fertig ist.

  • Scripts können nun ausgeführt werden!

    Man nehme ein einfaches (und in diesem Fall sinnloses) Script:

    Und führe es aus. Da die Variable 'Wetter' nicht gesetzt wurde, erscheint das Variablenfenster:

    Und da der Endpoint auskommentiert wurde:

    Und nun die Variablen nach der Ausführung:

    ('Wetter' ist 1, 'Regentropfen' wurde deshalb nicht gesetzt)

    ('Wetter' ist 2, 'Regentropfen' ist deshalb 1)


    Na, was haltet ihr davon? Das hat mich eine Woche Vorplanung gekostet und 2,3 Std. Entwicklung ...

  • Erweiterung des Script-Debuggers

    • Nun kann das Programm auch Stringvariablen einlesen, zusammenfügen und vergleichen:
    Code: testscript-string.osc
    {frame}
    "Tutti " "Frutti" $+ (S.$.Var1)
    1 2 + (S.L.Var1)
    (L.L.Var1)
    "Tutti Frutti" (L.$.Var1) $=
    {if}
    %stackdump%
    {endif}
    {end}

    Da "Tutti " "Frutti" zusammen gleich "Tutti Frutti" ist, erscheint das Stackdump-Fenster:

    (Stackdump-Fenster zeigt den Floatstack an:

    - 1, 2 von 1 2 +

    - 3 ist davon die Summe

    - 3 wurde durch (L.L.Var1) geladen

    - 1, also TRUE, ist das Ergebnis des Vergleiches =)


    • Falls die Stringvariable nicht gesetzt wird, ...
    Code: testscript-string2.osc
    {frame}
    "Tutti Frutti" (L.$.Var1) $=
    {if}
    %stackdump%
    {endif}
    {end}

    ... erscheint das Variablen-Fenster, welches ich heute auch verbessert habe:

    Gebe ich nicht 'Tutti Frutti' ein, öffnet sich auch nicht das Stackdump-Fenster.

    • Auch habe ich ein wenig an den Systemvariablen gearbeitet:

    • Außerdem habe ich das Programm gelehrt, Registerwerte zu speichern und einzulesen:
    Code: registertest.osc
    {frame}
    10 s0 s1
    l0 l1 =
    {if}
    %stackdump%
    {endif}
    {end}

    Hier ist l0 l1 = 1, also richtig und das Stackdump-Fenster öffnet sich.

    • Was wäre euch persönlich als eins der ersten Features wichtig?
  • Hier ein kleiner Einblick in den Entwicklungsfortschritt


    OMSI Script Debugger

    Script-Schlüsselwörter

    Entry-/Exitpoints, Trigger, Macros

    Stack-Operationen

    Logische Operationen

    Vergleichsoperationen

    Mathematische Operationen

    String-Operationen

    Variablenzugriff

    System-Makros

    Bedingungen und Schleifen

    Konstanten und Funktionen

    Simulationsmodus:

    Sound-Trigger

    Systemvariablen


    OMSI Script Console

    OMSI Script Console - Beitrag


    OMSI Script Creator 0/0 0 %

    - noch keine Features umgesetzt -


    Legende

    fertig (größtenteils Fehlerlos) (4)

    fast fertig (Fehlerbehebung folgt) (3)

    einfache Features fertig (2)

    in Arbeit (1)

    unfertig (0)

  • 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?

    Mit freundlichen Grüßen

    jjb

    103040-jjb-n-alpha-png

    OMSI 2: Palma mod 2021 - Download - Video
    OMSI 2: Add-on Bielefeld - Video
    OMSI Font Generator - Donwload - Video

    OMSI Textures Manager - Donwload

    2 Mal editiert, zuletzt von jjb () aus folgendem Grund: Ein Beitrag von jjb mit diesem Beitrag zusammengefügt.

  • 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:

    console.gif



    Was denkt ihr über die OMSI Script Console? Welche Funktionen würdet ihr euch wünschen? Ich freue mich auf euer Feedback!

  • jjb

    Hat den Titel des Themas von „OMSI Script Creator“ zu „OMSI Script Console & Creator“ geändert.