Update and Setup methoden in Script nicht aufgerufen

Discord Einladung
Trete unserem Discord-Server bei (klicke hier zum Beitreten).
  • Liebe Community!


    Ich versuche gerade eine Skript Update für den RSSLO 4010 zu machen. Dafür habe ich erstmal die wichtigsten Funktionen definiert, Die Initialise(), Setup(), Update(interval) und OnControlValueChange(name, index value). Alle sind in der Script_OBB4010.lua. Für alle habe ich Print Statements eingefügt, um in LogMate zu sehen, ob alles funktioniert, wie erwartet. Die Setup Methode wird jedoch nur in der SimpleEngineSimulation aufgerufen, die Setup Methode allgemein nie, egal ob von der Script_OBB4010.lua oder von der SimpleEngineSimulation.lua. Das macht für mich aber absolut keinen Sinn, muss davor irgendwas passieren, damit die Methoden aufgerufen werden? Habe ich etwas falsch definiert?


    Script_OBB4010:


    SimpleEngineSimulation:

    Code
    function Setup ()
        Print("[DEBUG] Setup method called in SimpleEngine.")
    end
    
    function Update (interval)
        Print("[UPDATEMETHOD] called update from SimpleEngine!")
    end
  • Bin kein Experte, aber die Logik deines Testergebnisses diktiert dass Setup() eben nicht automatisch aufgerufen wird im EngineScript. Wird behandelt wie eine selbstdefinierte Funktion, kannst du dementsprechend selber aufrufen.


    Das Simulation Script ist m.W. ein Relikt aus RS Urzeiten oder angedachten/verworfenen Features, sowie die Setup() Funktion da die lokal nur für dieses (obsolete) Skript existiert - ich denke damit sie nicht mit Initialise() kollidiert, aber den selben Zweck erfüllt. Aus Kompatibilitätsgründen ist das Skript noch da macht aber nix ausser Setup() und Update() ohne irgendwas dabei zu tun. Wo ich auch nachschaue sind diese Skripte leer bis auf die zwei Funktionen ohne weiteren Code.

  • Danke dir für die Antwort, also das SimpleEngineScript ruft nur noch die Update und Setup Funktion auf? Die ,,normalen" Skript files dann nur noch die Initialise und diese ValueChange methode? Ich schau da nochmal drüber aber ich habe ein paar Scripte decompiled und, obwohl zwar die Methodennamen dabei verloren gehen, finde ich immer einige Methoden, die von der Anzahl der Parameter immer auf die 4, also Init, Setup, Update und ControlValueChanged, passen würden, also sollten sie in den normalen ja auch aufgerufen werden oder?

  • Wie gesagt, Initialise() und Setup() erfüllen beide den gleichen Zweck. Was dort enthalten ist, wird beim Start sofort ausgeführt. Das eine gilt für das EngineScript, das andere für das (unbenutze) SimulationScript.


    Beides im gleichen Script macht keinen Sinn und funktioniert auch nicht, wie du selbst getestet hast. Was RSSLO für Funktionen einsetzt, keine Ahnung, und ich glaube du wirst da wegen der EULA von RSSLO die fast mit Sicherheit Reverse Engineering untersagt, hier auch (leider) keine weitere Hilfe bekommen. Tip: Discord


    Der Grund lua zu .out Objekten zu kompilieren hat nur IP-Schutz Gründe, nicht dass es im Spiel einen Unterschied machen würde. Armstrong Powerhouse sehen das gelassener, nach dem Motto "Hey wenn die Community davon profitiert oder Fehler findet, hilft das allen". Die Scripts der Class 37 sind ein Eldorado, und viele Tricks wie AP's eigene Steigungsphysik Engine und anderes offenbart.