diff --git a/Export.lua b/Export.lua new file mode 100644 index 0000000..1170101 --- /dev/null +++ b/Export.lua @@ -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 diff --git a/README.md b/README.md index 71f1b31..9d40802 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,11 @@ # exports_lua -The _exports.lua_ script running on DCS World Servers \ No newline at end of file +The _Export.lua_ script running on DCS World Servers for the Server Map + +## Installation + +Open `...\Saved Games\DCS.openbeta\Scripts\Export.lua` and add the contents of _Export.lua_ to this file. + +**Note:** It could be that these functions already exist, then you will need to copy the contents of the functions yourself. + +Modify the fields `IPAddress` and `Port` to point to the collector. \ No newline at end of file