taka_qiao

Config

Jul 15th, 2019
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 7.92 KB | None | 0 0
  1. mps = {}
  2. mps.lang = "CN"
  3. mps.detectorstatus = 0
  4. if CLIENT then return end
  5.  
  6. util.AddNetworkString( "mps_sendconfigdata" )
  7. util.AddNetworkString( "mps_startclientui")
  8. util.AddNetworkString( "mps_openconfigtool" )
  9. util.AddNetworkString( "mps_receiveconfigdata")
  10. util.AddNetworkString( "mps_initialconfigdata")
  11. util.AddNetworkString( "mps_senddetectorstatus")
  12. util.AddNetworkString( "mps_entityData" )
  13. util.AddNetworkString( "mps_initialF4" )
  14.  
  15. mps = {}
  16. mps.storage = {}
  17. mps.cooling = {}
  18. mps.keypad = {}
  19. mps.armor = {}
  20. mps.tray = {}
  21. mps.printHead = {}
  22. mps.lang = "CN"
  23. mps.isF4 = false
  24. mps.cfg = {}
  25. mps.detectorstatus = 0
  26.  
  27. --  Open config tool
  28. --
  29. net.Receive( "mps_openconfigtool", function()
  30.     local ply = ents.GetByIndex(net.ReadInt(32))
  31.     local group = ply:GetUserGroup()
  32.     if ply:IsSuperAdmin() || table.HasValue( mps.groups, group ) then
  33.     mps.lookForData()
  34.     net.Start( "mps_startclientui" )
  35.         net.WriteTable(mps.cfg)
  36.     net.Send( ply )
  37.     end
  38. end )
  39.  
  40. -- Receive new settings + SAVE
  41. --
  42. net.Receive( "mps_receiveconfigdata", function()
  43.     local ply = ents.GetByIndex(net.ReadInt(32))
  44.     local group = ply:GetUserGroup()
  45.     if ply:IsSuperAdmin() || table.HasValue( mps.groups, group ) then
  46.         local cfg = net.ReadTable()
  47.         mps.saveConfigData(cfg)
  48.     end
  49. end )
  50.  
  51. -- Saving new config data
  52. --
  53. function mps.saveConfigData(cfg)
  54.   for i=0,table.Count(mps.cfg)-1,1 do
  55.     for j=1,table.Count(mps.cfg[i])-1,1 do
  56.       mps.cfg[i][j].value = cfg[i][j]
  57.     end
  58.   end
  59.  
  60.   file.CreateDir( "_mps" )
  61.   file.Write("_mps/config.txt",util.TableToJSON(mps.cfg))
  62. end
  63. -- End of saving new config data
  64.  
  65. function mps.lookForData()
  66.  
  67.   local config = file.Read("_mps/config.txt", "DATA")
  68.  
  69.   if !config then
  70.  
  71.     mps.cfg[0] = {}
  72.     mps.cfg[0][0] = "Printer Base"
  73.     mps.cfg[0][1] = { type = "money", name = "price", value = 1000 }
  74.     mps.cfg[0][2] = { type = "generic", name = "health", value = 200 }
  75.     mps.cfg[0][3] = { type = "percent", name = "malfunctionChance", value = 5 }
  76.     mps.cfg[0][4] = { type = "percent", name = "malfunctionMoneyLost", value = 25 }
  77.     mps.cfg[0][5] = { type = "seconds", name = "malfunctionTime", value = 10 }
  78.  
  79.     mps.cfg[1] = {}
  80.     mps.cfg[1][0] = "Storage 1"
  81.     mps.cfg[1][1] = { type = "money", name = "price", value = 1000 }
  82.     mps.cfg[1][2] = { type = "generic", name = "space", value = 1000 }
  83.  
  84.     mps.cfg[2] = {}
  85.     mps.cfg[2][0] = "Storage 2"
  86.     mps.cfg[2][1] = { type = "money", name = "price", value = 2000 }
  87.     mps.cfg[2][2] = { type = "generic", name = "space", value = 1500 }
  88.  
  89.     mps.cfg[3] = {}
  90.     mps.cfg[3][0] = "Storage 3"
  91.     mps.cfg[3][1] = { type = "money", name = "price", value = 3000 }
  92.     mps.cfg[3][2] = { type = "generic", name = "space", value = 2500 }
  93.  
  94.     mps.cfg[4] = {}
  95.     mps.cfg[4][0] = "Paper Tray 1"
  96.     mps.cfg[4][1] = { type = "money", name = "price", value = 1000 }
  97.  
  98.     mps.cfg[5] = {}
  99.     mps.cfg[5][0] = "Paper Tray 2"
  100.     mps.cfg[5][1] = { type = "money", name = "price", value = 2000 }
  101.  
  102.     mps.cfg[6] = {}
  103.     mps.cfg[6][0] = "Paper Tray 3"
  104.     mps.cfg[6][1] = { type = "money", name = "price", value = 3000 }
  105.  
  106.     mps.cfg[7] = {}
  107.     mps.cfg[7][0] = "Printhead 1"
  108.     mps.cfg[7][1] = { type = "money", name = "price", value = 1000 }
  109.     mps.cfg[7][2] = { type = "seconds", name = "printTime", value = 10 }
  110.     mps.cfg[7][3] = { type = "money", name = "printValue", value = 100 }
  111.  
  112.     mps.cfg[8] = {}
  113.     mps.cfg[8][0] = "Printhead 2"
  114.     mps.cfg[8][1] = { type = "money", name = "price", value = 2500 }
  115.     mps.cfg[8][2] = { type = "seconds", name = "printTime", value = 8 }
  116.     mps.cfg[8][3] = { type = "money", name = "printValue", value = 150 }
  117.  
  118.     mps.cfg[9] = {}
  119.     mps.cfg[9][0] = "Printhead 3"
  120.     mps.cfg[9][1] = { type = "money", name = "price", value = 4000 }
  121.     mps.cfg[9][2] = { type = "seconds", name = "printTime", value = 6 }
  122.     mps.cfg[9][3] = { type = "money", name = "printValue", value = 200 }
  123.  
  124.     mps.cfg[10] = {}
  125.     mps.cfg[10][0] = "Paper"
  126.     mps.cfg[10][1] = { type = "money", name = "price", value = 500 }
  127.  
  128.     mps.cfg[11] = {}
  129.     mps.cfg[11][0] = "Armor"
  130.     mps.cfg[11][1] = { type = "money", name = "price", value = 2500 }
  131.     mps.cfg[11][2] = { type = "generic", name = "health", value = 400 }
  132.  
  133.     mps.cfg[12] = {}
  134.     mps.cfg[12][0] = "Antenna"
  135.     mps.cfg[12][1] = { type = "money", name = "price", value = 2500 }
  136.     mps.cfg[12][2] = { type = "percent", name = "baseTransferRate", value = 1 }
  137.     mps.cfg[12][3] = { type = "generic", name = "maxLevel", value = 25 }
  138.     mps.cfg[12][4] = { type = "percent", name = "ratePerLevel", value = 1 }
  139.     mps.cfg[12][5] = { type = "generic", name = "cyclesPerTransfer", value = 4 }
  140.     mps.cfg[12][6] = { type = "generic", name = "cyclesPerLevel", value = 100 }
  141.     --mps.cfg[12][7] = { type = "generic", name = "storageDecrease", value = 30 }
  142.  
  143.     mps.cfg[13] = {}
  144.     mps.cfg[13][0] = "Booster"
  145.     mps.cfg[13][1] = { type = "money", name = "price", value = 2500 }
  146.     mps.cfg[13][2] = { type = "seconds", name = "cooldown", value = 300 }
  147.     mps.cfg[13][3] = { type = "seconds", name = "speedBoost", value = 2 }
  148.     mps.cfg[13][4] = { type = "percent", name = "productionBoost", value = 25 }
  149.     mps.cfg[13][5] = { type = "percent", name = "malfunctionRate", value = 50 }
  150.     mps.cfg[13][6] = { type = "seconds", name = "boostTime", value = 30 }
  151.  
  152.     mps.cfg[14] = {}
  153.     mps.cfg[14][0] = "Donator Token"
  154.     mps.cfg[14][1] = { type = "money", name = "price", value = 2500 }
  155.     mps.cfg[14][2] = { type = "seconds", name = "speedBoost", value = 3 }
  156.     mps.cfg[14][3] = { type = "percent", name = "productionBoost", value = 25 }
  157.     mps.cfg[14][4] = { type = "percent", name = "withdrawBoost", value = 25 }
  158.  
  159.     mps.cfg[15] = {}
  160.     mps.cfg[15][0] = "Safe"
  161.     mps.cfg[15][1] = { type = "money", name = "price", value = 2500 }
  162.     mps.cfg[15][2] = { type = "money", name = "storageBoost", value = 5 }
  163.     mps.cfg[15][3] = { type = "percent", name = "withdrawBoost", value = 5 }
  164.     mps.cfg[15][4] = { type = "seconds", name = "additionalTime", value = 5 }
  165.  
  166.     mps.cfg[16] = {}
  167.     mps.cfg[16][0] = "Keypad"
  168.     mps.cfg[16][1] = { type = "money", name = "price", value = 2500 }
  169.     mps.cfg[16][2] = { type = "seconds", name = "cooldown", value = 5 }
  170.     --mps.cfg[16][3] = { type = "percent", name = "hackChance", value = 25 }
  171.  
  172.     mps.cfg[17] = {}
  173.     mps.cfg[17][0] = "Police Detector"
  174.     mps.cfg[17][1] = { type = "money", name = "price", value = 7500 }
  175.     mps.cfg[17][2] = { type = "generic", name = "detectorRange", value = 512 }
  176.     mps.cfg[17][3] = { type = "generic", name = "detectorAngle", value = 10 }
  177.     mps.cfg[17][4] = { type = "seconds", name = "detectorCooldown", value = 5}
  178.  
  179.     mps.cfg[18] = {}
  180.     mps.cfg[18][0] = "Silencer"
  181.     mps.cfg[18][1] = { type = "money", name = "price", value = 2500 }
  182.  
  183.     mps.cfg[19] = {}
  184.     mps.cfg[19][0] = "Language"
  185.     mps.cfg[19][1] = { type = "generic", name = " ", value = "EN"}
  186.  
  187.  
  188.     file.CreateDir( "_mps" )
  189.     file.Write("_mps/config.txt",util.TableToJSON(mps.cfg))
  190.  
  191.   else
  192.   --end of generating defaults
  193.  
  194.     mps.cfg = util.JSONToTable(config)
  195.         mps.lang = mps.cfg[19][1].value
  196.         --send config to everyone that happens to be near when server starts
  197.         timer.Simple(5,function()
  198.         net.Start( "mps_sendconfigdata" )
  199.             net.WriteTable(mps.cfg)
  200.         net.Broadcast()
  201.         end)
  202.  
  203.   end
  204. end
  205. mps.lookForData()
  206.  
  207. sound.Add( {
  208.     name = "mps_printer_working",
  209.     channel = CHAN_STATIC,
  210.     volume = 0.2,
  211.     level = 80,
  212.     pitch = { 95, 110 },
  213.     sound = "ambient/levels/labs/equipment_printer_loop1.wav"
  214. } )
  215.  
  216. sound.Add( {
  217.     name = "mps_printer_printing",
  218.     channel = CHAN_STATIC,
  219.     volume = 0.2,
  220.     level = 80,
  221.     pitch = { 95, 110 },
  222.     sound = "2rek/mps/mps_print.mp3"
  223. } )
  224.  
  225. function userAuthed( ply, stid, unid )
  226.   net.Start( "mps_initialconfigdata" )
  227.     net.WriteTable(mps.cfg)
  228.     net.WriteString(mps.lang)
  229.   net.Send(ply)
  230.     if mps.isF4 == false then
  231.         mps.isF4 = true
  232.         mps.createF4(mps.cfg)
  233.     end
  234. end
  235. hook.Add( "PlayerAuthed", "playerauthed", userAuthed )
Add Comment
Please, Sign In to add comment