Jump to content

Frag an die Scripter unter Euch:


Maxxox

Recommended Posts

Moin zusammen!

Ich brauche mal Eure Hilfe bei einem vermutlich lächerliches Problem, dass ein ScriptNoob wie ich jedoch nicht lösen kann. 🥴

Ich habe versucht ein Script mit Notepad++ zu erstellen um eine Textdatei im Verzeichnis XY zu löschen. Wenn ich es mit Notepad++ teste, funktioniert es einwandfrei. Wenn ich es jedoch in einer Mission in DCS lade, kommt nur ein Script Error Fenster und das wars. Könnt Ihr mir bitte sagen, wo der Fehler liegt. Folgendes Script:

 

local fileToDelete = "C://test//test.txt"

function deleteFile(filePath)
    os.remove(filePath)
    return "Datei '" .. filePath .. "' wurde gelöscht."
end

local resultMessage = deleteFile(fileToDelete)
print(resultMessage)

 

Vielen Dank im Voraus 

Link to comment
Share on other sites

os (und io, lfs sowie require, loadlib, package) sind vom Lua-Interpreter in DCS Sanitisiert (also "gesperrt", keine Ahnung, ob das so das richtige Wort in Deutsch wäre, es geht da um Code-"saniticing") damit eine Mission mit Skript, die man sich ja überall runterladen kann, nichts mit dem System anstellt, auf dem es ausgeführt wird.

Man kann das ausstellen, wenn man in der Datei "..\Eagle Dynamics\DCS World\Scripts\MissionScripting.lua" die Zeilen

sanitizeModule('os')
sanitizeModule('io')
sanitizeModule('lfs')

auskommentiert. Dann ist der PC aber auch anfällig für eventuellen Schadcode in DCS-Missionsdateien! Das wird allerdings auch für diverse dynamische Missionen und Kampagnen benötig. Wenn das Speichern der Datei nicht unbedingt nötig ist, sollte man das also nicht von den Leuten verlangen, an die die Mission gerichtet ist.

Wenn man das für den eigenen Server schreibt und die MissionScripting.lua dann modifiziert, sollte man nur noch Missionen laufen lassen, denen man hunderprozentig Vertraut!

  • Like 2
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...