Liebe Community!
Ich habe vor, mich ins Lua Scripting für den Train Sim einzuarbeiten. Programmiererfahrung habe ich bereits in Java und C#, also gilt es für Lua nur mit der neuen Syntax umzugehen. Ich habe mir bereits die zwei verfügbaren Tutorials zum Lua Scripting angesehen, die sind jedoch sehr allgemein und gehen nicht auf den Train Sim ein. Für den Anfang wollte ich das Script eines bereits funktionierten Fahrzeuges, dem RSSLO 4010, erneuern, da das Fahrzeug bereits existiert, der Funktionsumfang bisher recht einfach ist und grundsätzlich die Eigenschaften feststehen, es sind daher nur die .out files, also die verschlüsselten lua Scripte neu zu erstellen.
Die originalen habe ich gesichert und dem ,;Create an Engine" Tutorial von den Developer Documents (Developer Documents) folgend, habe ich ein neues SimpleEngineScript.lua File erstellt in der Location vom alten, damit ich den Speicherort nicht in der bin ändern muss. Für den Anfang wollte ich einfachen Debug Output für LogMate haben, damit ich einfach und schnell sehen kann, was für Auswirkungen meine Änderungen haben. Die Struktur habe ich dafür aus genanntem Tutorial genommen und sieht folgendermaßen aus:
function Setup ()
Print("[DEBUG] Script initialized.")
end
function Update (interval)
local speed = SysCall("GetSpeed") * 3.6 -- m/s to km/h
Print("[Speed] Current speed: " .. tostring(speed) .. " km/h")
end
Gespeichert habe ich das mit Notepad++ als .lua file, ich nehme nicht an, dass ich das file auch als .out file verschlüsseln muss während des Development Prozesses. Dem Thread (Lua-Script Print-Funktion) folgend, habe ich auch die Startoption hinzugefügt, wie am Screenshot erkennbar, im Logfile von LogMate habe ich jedoch keinen Debug output von meinem Code. Was ist hierbei das Problem? Was habe ich vergessen? Muss man das File doch verschlüsseln?
Durch trial and Error habe ich auch im Script folder das Script_OBB4010.out file durch ein eigenes .lua fil eersetzt mit folgendem, leicht abweichenden Code:
function Initialise()
Print("[Init] Locomotive script loaded. From OBB4010.lua")
end
function Update(time)
local speed = SysCall("GetSpeed") * 3.6 -- m/s to km/h
Print("[Speed] Current speed: " .. tostring(speed) .. " km/h")
end
Nun habe ich tatsächlich Debug output von diesem File. Das bringt mich aber zu weiteren Fragen. Was ist nun die Aufgabe der SimpleEngineSimulation.lua im Vergleich zu der Script.lua? Wieso haben die Methoden, zumindest die zur Initialisierung, andere Signaturen?