Advertisement
Guest User

Untitled

a guest
Aug 1st, 2022
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.07 KB | None | 0 0
  1. local DataStoreService = game:GetService("DataStoreService")
  2.  
  3. local DataStore = DataStoreService:GetDataStore('DataStore')
  4.  
  5. local Researches = {
  6.     ["BigStick"] = {
  7.         ["Header"] = "Big Stick: 1000 ¤",
  8.         ["Details"] = "New Unlock: Big Stick",
  9.         ["Price"] = 500,
  10.         ["RequiredFortLevel"] = 2,
  11.     },
  12.     ["AdvancedTreeShakingMethods"] = {
  13.         ["Header"] = "Advanced Tree Shaking Methods: 2000 ¤",
  14.         ["Details"] = "Trees have a chance to drop double",
  15.         ["Price"] = 1000,
  16.         ["RequiredFortLevel"] = 4,
  17.     },
  18.     ["TreeShakingMethods"] = {
  19.         ["Header"] = "Tree Shaking Methods: 1000 ¤",
  20.         ["Details"] = "Stick Drop Chance ↓ 25%",
  21.         ["Price"] = 500,
  22.         ["RequiredFortLevel"] = 2,
  23.     },
  24.     ["StickSMG"] = {
  25.         ["Header"] = "Stick SMG: 500 ¤",
  26.         ["Details"] = "New Unlock: Stick SMG",
  27.         ["Price"] = 500,
  28.         ["RequiredFortLevel"] = 3,
  29.     },
  30.     ["DeathFromAbove"] = {
  31.         ["Header"] = "Death From Above: 2000 ¤",
  32.         ["Details"] = "New Crate Drop: Airstrike",
  33.         ["Price"] = 2000,
  34.         ["RequiredFortLevel"] = 3,
  35.     },
  36.     ["RecoilReductionTactics"] = {
  37.         ["Header"] = "Recoil Reduction Tactics: 1000 ¤",
  38.         ["Details"] = "New Crate Drop: Reduced Recoil",
  39.         ["Price"] = 1000,
  40.         ["RequiredFortLevel"] = 3,
  41.     },
  42.     ["DeepPockets"] = {
  43.         ["Header"] = "Deep Pockets: 1500 ¤",
  44.         ["Details"] = "King of the hill earnings ↑ 1 bottlecap",
  45.         ["Price"] = 1000,
  46.         ["RequiredFortLevel"] = 2,
  47.     },
  48.     ["DeadMansSwitch"] = {
  49.         ["Header"] = "Dead Man's Switch: 500 ¤",
  50.         ["Details"] = "Held pine grenades/bombs explode on elimination",
  51.         ["Price"] = 500,
  52.         ["RequiredFortLevel"] = 4,
  53.     },
  54.     ["Sunglasses"] = {
  55.         ["Header"] = "Sunglasses: 2000 ¤",
  56.         ["Details"] = "Makes you look 150% cooler",
  57.         ["Price"] = 2000,
  58.         ["RequiredFortLevel"] = 4,
  59.     },
  60.     ["Makeshift ESP"] = {
  61.         ["Header"] = "Makeshift ESP: 1000 ¤",
  62.         ["Details"] = "New Crate Drop: Radar",
  63.         ["Price"] = 1000,
  64.         ["RequiredFortLevel"] = 4,
  65.     },
  66. }
  67.  
  68. local PlayerResearches = {}
  69.  
  70. game.ReplicatedStorage.RemoteEvents.Research.CheckPlayerResearchServer.OnInvoke = function(Player,Research)
  71.     if PlayerResearches[Player][Research] == true then
  72.         return true
  73.     else
  74.         return false
  75.     end
  76. end
  77.  
  78. game.Players.PlayerAdded:Connect(function(Player)
  79.    
  80.     PlayerResearches[Player] = {}
  81.    
  82.     for Research,Details in pairs(Researches) do
  83.         PlayerResearches[Player][Research] = false
  84.     end
  85.    
  86.     local Data
  87.  
  88.     local Success, ErrorMessage = pcall(function()
  89.         Data = DataStore:GetAsync(Player.UserId.."-Researches")
  90.     end)
  91.  
  92.     if Success then
  93.         if Data ~= nil then
  94.            
  95.             PlayerResearches[Player] = Data
  96.            
  97.             for Research,Details in pairs(Researches) do
  98.                 if PlayerResearches[Player][Research] == nil then
  99.                     PlayerResearches[Player][Research] = false
  100.                 end
  101.             end
  102.         end
  103.  
  104.         print("Data Store Status: Loaded!")
  105.     end
  106.    
  107.     print("Researches Loaded!")
  108.    
  109.     for Research,IsResearched in pairs(PlayerResearches[Player]) do
  110.         print(Research,IsResearched)
  111.     end
  112. end)
  113.  
  114. game.Players.PlayerRemoving:Connect(function(Player)
  115.    
  116.     local Success, ErrorMessage = pcall(function()
  117.  
  118.         DataStore:SetAsync(Player.UserId.."-Researches",PlayerResearches[Player])
  119.  
  120.         print("Data Store Status: Saved!")
  121.     end)
  122.    
  123.     PlayerResearches[Player] = nil
  124. end)
  125.  
  126. game.ReplicatedStorage.RemoteEvents.Research.GetPlayerResearches.OnServerInvoke = function(Player)
  127.     return PlayerResearches[Player]
  128. end
  129.  
  130. game.ReplicatedStorage.RemoteEvents.Research.GetResearches.OnServerInvoke = function()
  131.     return Researches
  132. end
  133.  
  134. game.ReplicatedStorage.RemoteEvents.Research.RequestResearch.OnServerInvoke = function(Player,Research)
  135.     if Player.PlayerVariables.Stats.Total.Bottlecaps.Value >= Researches[Research]["Price"] then
  136.        
  137.         Player.PlayerVariables.Stats.Total.Bottlecaps.Value -= Researches[Research]["Price"]
  138.        
  139.         print(PlayerResearches[Player])
  140.        
  141.         print(Research)
  142.        
  143.         PlayerResearches[Player][Research] = true
  144.        
  145.         return true
  146.     else
  147.         return false
  148.     end
  149. end
  150.  
  151. game.ReplicatedStorage.RemoteEvents.Developer.ResetAll.OnServerEvent:Connect(function(Player)
  152.    
  153.     PlayerResearches[Player] = {}
  154.  
  155.     for Research,Details in pairs(Researches) do
  156.         PlayerResearches[Player][Research] = false
  157.     end
  158. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement