DML/server modules/smrGUI.lua
Christian Franz 43d598f035 Version 1.2.1
CloneZones:
- nameScheme
- indentical
2023-01-12 16:40:50 +01:00

51 lines
1.5 KiB
Lua

smr = {}
smr.restartFlag = "simpleMissionRestart"
--
-- smr: simple mission restart (server module)
-- in your mission, set flag "simpleMissionRestart" to a value < 0 (zero)
-- and the server restarts the mission within one second
--
-- Created 20220902 by cfrag - version 1.0.0
--
-- misc procs
function smr.getServerFlagValue(theFlag)
-- execute getUserFlag() in server space
local val, errNo = net.dostring_in('server', " return trigger.misc.getUserFlag(\""..theFlag.."\"); ")
if (not val) and errNo then
net.log("smr - can't access flag, dostring_in returned <".. errNo .. ">")
return 0
else
-- dostring_in returns a string, so convert to number
return tonumber(val)
end
end
function smr.restartMission()
local mn = DCS.getMissionFilename( )
net.log("+++smr: restarting mission: ".. mn)
net.send_chat("+++smr: restarting mission: ".. mn, true)
local success = net.load_mission(mn)
if not success then
net.log("+++smr: FAILED to load <" .. mn .. ">")
net.send_chat("+++smr: FAILED to load <" .. mn .. ">", true)
end
end
-- main update loop, checked once per second
local lTime = DCS.getModelTime()
function smr.onSimulationFrame()
if lTime + 1 < DCS.getModelTime() then
-- set next time
lTime = DCS.getModelTime()
-- check to see if the restartFlag is set
if not DCS.isServer() then return end
if smr.getServerFlagValue(smr.restartFlag) > 0 then
smr.restartMission()
end
end
end
-- install smr in hooks
DCS.setUserCallbacks(smr)