Advertisement
morrtz

MistDBStats

Apr 12th, 2014
829
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 6.90 KB | None | 0 0
  1. function save_stat(text)
  2.     --initiating IO operation on the file
  3.     local fdir = lfs.writedir() .. [[Logs\Save_stat\]] .. "statistics.lua"
  4.     local f,err = io.open(fdir,"w")
  5.         if not f then
  6.             local errmsg = 'Error: Need to create new folder in the Logs folder with the name' .. 'Save_stat . sample: C:\Users\youname\Saved Games\DCS\Logs\Save_stat'
  7.             trigger.action.outText(errmsg, 10)
  8.             return print(err)
  9.         end
  10.    
  11.     --dead units tables
  12.     local deadvehicle = {['red'] = {},['blue'] = {}}
  13.     local deadhelicopter = {['red'] = {},['blue'] = {}}
  14.     local deadplane = {['red'] = {},['blue'] = {}}
  15.     local deadship = {['red'] = {},['blue'] = {}}
  16.     local deadstatic = {['red'] = {},['blue'] = {}}
  17.     local deadbuilding = {['red'] = {},['blue'] = {}}
  18.     local deadunknown = {['red'] = {},['blue'] = {}}
  19.    
  20.    
  21.     --adding data on each unit to the correct table
  22.     for id, data in pairs(mist.DBs.deadObjects) do
  23.         if mist.DBs.deadObjects[id].objectData.coalition == "red" then
  24.             if mist.DBs.deadObjects[id].objectType == "vehicle" then
  25.                 i = 1
  26.                 deadvehicle.red[i] =
  27.                 {
  28.                     ["Name"] = mist.DBs.deadObjects[id].objectData.unitName,
  29.                     ["Type"] = mist.DBs.deadObjects[id].objectData.type,
  30.                 }
  31.                 i = i+1
  32.             elseif mist.DBs.deadObjects[id].objectType == "helicopter" then
  33.                 i = 1
  34.                 deadhelicopter.red[i] =
  35.                 {
  36.                     ["Name"] = mist.DBs.deadObjects[id].objectData.unitName,
  37.                     ["Type"] = mist.DBs.deadObjects[id].objectData.type,
  38.                 }
  39.                 i = i+1
  40.             elseif mist.DBs.deadObjects[id].objectType == "plane" then
  41.                 i = 1
  42.                 deadplane.red[i] =
  43.                 {
  44.                     ["Name"] = mist.DBs.deadObjects[id].objectData.unitName,
  45.                     ["Type"] = mist.DBs.deadObjects[id].objectData.type,
  46.                 }
  47.                 i = i+1
  48.             elseif mist.DBs.deadObjects[id].objectType == "ship" then
  49.                 i = 1
  50.                 deadship.red[i] =
  51.                 {
  52.                     ["Name"] = mist.DBs.deadObjects[id].objectData.unitName,
  53.                     ["Type"] = mist.DBs.deadObjects[id].objectData.type,
  54.                 }
  55.                 i = i+1
  56.             elseif mist.DBs.deadObjects[id].objectType == "static" then
  57.                 i = 1
  58.                 deadstatic.red[i] =
  59.                 {
  60.                     ["Name"] = mist.DBs.deadObjects[id].objectData.unitName,
  61.                     ["Type"] = mist.DBs.deadObjects[id].objectData.type,
  62.                 }
  63.                 i = i+1
  64.             elseif mist.DBs.deadObjects[id].objectType == "building" then
  65.                 i = 1
  66.                 deadbuilding.red[i] =
  67.                 {
  68.                     ["Name"] = mist.DBs.deadObjects[id].objectData.unitName,
  69.                     ["Type"] = mist.DBs.deadObjects[id].objectData.type,
  70.                 }
  71.                 i = i+1
  72.             elseif mist.DBs.deadObjects[id].objectType == "unknown" then
  73.                 i = 1
  74.                 deadunknown.red[i] =
  75.                 {
  76.                     ["Name"] = mist.DBs.deadObjects[id].objectData.unitName,
  77.                     ["Type"] = mist.DBs.deadObjects[id].objectData.type,
  78.                 }
  79.                 i = i+1
  80.             end
  81.         elseif  mist.DBs.deadObjects[id].objectData.coalition == "blue" then
  82.             if mist.DBs.deadObjects[id].objectType == "vehicle" then
  83.                 i = 1
  84.                 deadvehicle.blue[i] =
  85.                 {
  86.                     ["Name"] = mist.DBs.deadObjects[id].objectData.unitName,
  87.                     ["Type"] = mist.DBs.deadObjects[id].objectData.type,
  88.                 }
  89.                 i = i+1
  90.             elseif mist.DBs.deadObjects[id].objectType == "helicopter" then
  91.                 i = 1
  92.                 deadhelicopter.blue[i] =
  93.                 {
  94.                     ["Name"] = mist.DBs.deadObjects[id].objectData.unitName,
  95.                     ["Type"] = mist.DBs.deadObjects[id].objectData.type,
  96.                 }
  97.                 i = i+1
  98.             elseif mist.DBs.deadObjects[id].objectType == "plane" then
  99.                 i = 1
  100.                 deadplane.blue[i] =
  101.                 {
  102.                     ["Name"] = mist.DBs.deadObjects[id].objectData.unitName,
  103.                     ["Type"] = mist.DBs.deadObjects[id].objectData.type,
  104.                 }
  105.                 i = i+1
  106.             elseif mist.DBs.deadObjects[id].objectType == "ship" then
  107.                 i = 1
  108.                 deadship.blue[i] =
  109.                 {
  110.                     ["Name"] = mist.DBs.deadObjects[id].objectData.unitName,
  111.                     ["Type"] = mist.DBs.deadObjects[id].objectData.type,
  112.                 }
  113.                 i = i+1
  114.             elseif mist.DBs.deadObjects[id].objectType == "static" then
  115.                 i = 1
  116.                 deadstatic.blue[i] =
  117.                 {
  118.                     ["Name"] = mist.DBs.deadObjects[id].objectData.unitName,
  119.                     ["Type"] = mist.DBs.deadObjects[id].objectData.type,
  120.                 }
  121.                 i = i+1
  122.             elseif mist.DBs.deadObjects[id].objectType == "building" then
  123.                 i = 1
  124.                 deadbuilding.blue[i] =
  125.                 {
  126.                     ["Name"] = mist.DBs.deadObjects[id].objectData.unitName,
  127.                     ["Type"] = mist.DBs.deadObjects[id].objectData.type,
  128.                 }
  129.                 i = i+1
  130.             elseif mist.DBs.deadObjects[id].objectType == "unknown" then
  131.                 i = 1
  132.                 deadunknown.blue[i] =
  133.                 {
  134.                     ["Name"] = mist.DBs.deadObjects[id].objectData.unitName,
  135.                     ["Type"] = mist.DBs.deadObjects[id].objectData.type,
  136.                 }
  137.                 i = i+1
  138.             end
  139.         end
  140.     end
  141.    
  142.     --write statistic information to file
  143.     f:write('------MISSION STATISTICS------\n\n')
  144.     for coalition, vlist in pairs(deadvehicle) do
  145.         f:write(coalition..' destroyed vehicles\n')
  146.         f:write('ID,Name,Type\n')
  147.         for index, vdata in pairs(vlist) do
  148.             f:write(index..",")
  149.             for id, Ldata in pairs(vdata) do
  150.                 f:write(Ldata..",")
  151.             end
  152.             f:write("\n")
  153.         end
  154.         f:write("\n\n")
  155.     end
  156.    
  157.     for coalition, vlist in pairs(deadhelicopter) do
  158.         f:write(coalition..' destroyed vehicles\n')
  159.         f:write('ID,Name,Type\n')
  160.         for index, vdata in pairs(vlist) do
  161.             f:write(index..",")
  162.             for id, Ldata in pairs(vdata) do
  163.                 f:write(Ldata..",")
  164.             end
  165.             f:write("\n")
  166.         end
  167.         f:write("\n\n")
  168.     end
  169.    
  170.     for coalition, vlist in pairs(deadplane) do
  171.         f:write(coalition..' destroyed vehicles\n')
  172.         f:write('ID,Name,Type\n')
  173.         for index, vdata in pairs(vlist) do
  174.             f:write(index..",")
  175.             for id, Ldata in pairs(vdata) do
  176.                 f:write(Ldata..",")
  177.             end
  178.             f:write("\n")
  179.         end
  180.         f:write("\n\n")
  181.     end
  182.    
  183.     for coalition, vlist in pairs(deadship) do
  184.         f:write(coalition..' destroyed vehicles\n')
  185.         f:write('ID,Name,Type\n')
  186.         for index, vdata in pairs(vlist) do
  187.             f:write(index..",")
  188.             for id, Ldata in pairs(vdata) do
  189.                 f:write(Ldata..",")
  190.             end
  191.             f:write("\n")
  192.         end
  193.         f:write("\n\n")
  194.     end
  195.    
  196.     for coalition, vlist in pairs(deadstatic) do
  197.         f:write(coalition..' destroyed vehicles\n')
  198.         f:write('ID,Name,Type\n')
  199.         for index, vdata in pairs(vlist) do
  200.             f:write(index..",")
  201.             for id, Ldata in pairs(vdata) do
  202.                 f:write(Ldata..",")
  203.             end
  204.             f:write("\n")
  205.         end
  206.         f:write("\n\n")
  207.     end
  208.    
  209.     for coalition, vlist in pairs(deadbuilding) do
  210.         f:write(coalition..' destroyed vehicles\n')
  211.         f:write('ID,Name,Type\n')
  212.         for index, vdata in pairs(vlist) do
  213.             f:write(index..",")
  214.             for id, Ldata in pairs(vdata) do
  215.                 f:write(Ldata..",")
  216.             end
  217.             f:write("\n")
  218.         end
  219.         f:write("\n\n")
  220.     end
  221.    
  222.     for coalition, vlist in pairs(deadunknown) do
  223.         f:write(coalition..' destroyed vehicles\n')
  224.         f:write('ID,Name,Type\n')
  225.         for index, vdata in pairs(vlist) do
  226.             f:write(index..",")
  227.             for id, Ldata in pairs(vdata) do
  228.                 f:write(Ldata..",")
  229.             end
  230.             f:write("\n")
  231.         end
  232.         f:write("\n\n")
  233.     end
  234.     f:close()
  235.    
  236.     timer.scheduleFunction(save_stat, 'Statistics' .. timer.getTime() .. '.lua', timer.getTime() + 600)
  237.     trigger.action.outText('File saved to: ' .. lfs.writedir() .. [[Logs\Save_stat\]] .. text, 15)
  238. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement