|
|
@@ -0,0 +1,64 @@
|
|
|
+--[[
|
|
|
+dcsw server map: Export.lua
|
|
|
+by Sacha Ligthert on 2024-01-14
|
|
|
+----
|
|
|
+
|
|
|
+Add the following lines to your Export.lua in your ...\Saved Games\DCS.openbeta\Scripts folder.
|
|
|
+If they functions already exist, you will need to do some editing yourselves.
|
|
|
+]]--
|
|
|
+
|
|
|
+function LuaExportStart()
|
|
|
+ package.path = package.path..";"..lfs.currentdir().."/LuaSocket/?.lua"
|
|
|
+ package.cpath = package.cpath..";"..lfs.currentdir().."/LuaSocket/?.dll"
|
|
|
+
|
|
|
+ socket = require("socket")
|
|
|
+ IPAddress = "192.168.1.2"
|
|
|
+ Port = 12345
|
|
|
+
|
|
|
+ MySocket = socket.try(socket.connect(IPAddress, Port))
|
|
|
+ MySocket:setoption("tcp-nodelay",true)
|
|
|
+end
|
|
|
+
|
|
|
+function LuaExportBeforeNextFrame()
|
|
|
+end
|
|
|
+
|
|
|
+function LuaExportAfterNextFrame()
|
|
|
+end
|
|
|
+
|
|
|
+function LuaExportStop()
|
|
|
+ -- Terminate TCP connection
|
|
|
+ if MySocket then
|
|
|
+ socket.try(MySocket:send("exit\n"))
|
|
|
+ MySocket:close()
|
|
|
+ end
|
|
|
+end
|
|
|
+
|
|
|
+function LuaExportActivityNextEvent(t)
|
|
|
+
|
|
|
+ -- Required to function normal
|
|
|
+ local tNext = t
|
|
|
+
|
|
|
+ -- Grab objects. Create JSON. Send off to server
|
|
|
+ local o = LoGetWorldObjects()
|
|
|
+ local json = '{"units":['
|
|
|
+ for k,v in pairs(o) do
|
|
|
+ print(v.Type) -- add this line for debugging purposes
|
|
|
+ local objectType = "unknown"
|
|
|
+ objectType = type(v.Type)
|
|
|
+ json = json .. string.format('{"age_in_seconds":"%.1f", "unit_name":"%s", "group_name":"%s", "name":"%s", "latitude":%f, "longitude":%f, "altitude_in_feet":%f, "heading_in_rads":%f, "pitch_in_rads":%f, "bank_in_rads":%f, "coalition":"%s", "type":"%s"},', t, v.UnitName, v.GroupName, v.Name, v.LatLongAlt.Lat, v.LatLongAlt.Long, v.LatLongAlt.Alt, v.Heading, v.Pitch, v.Bank, v.Coalition, objectType )
|
|
|
+ end
|
|
|
+
|
|
|
+ -- Remove trialing comma
|
|
|
+ json = json:sub(1, -2)
|
|
|
+
|
|
|
+ -- Wrap up JSON
|
|
|
+ json = json .. "]}"
|
|
|
+
|
|
|
+ -- Send it awaaaaay!
|
|
|
+ socket.try(MySocket:send(json))
|
|
|
+
|
|
|
+ -- Come back in 10 seconds
|
|
|
+ tNext = tNext + 10.0
|
|
|
+ return tNext
|
|
|
+
|
|
|
+end
|