Advertisement
ChrisRodman55

Untitled

May 8th, 2020
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.94 KB | None | 0 0
  1. local DataStoreService = game:GetService("DataStoreService")
  2. local DonationBoard = DataStoreService:GetOrderedDataStore("DonationBoard")
  3. local MarketplaceServer = game:GetService("MarketplaceService")
  4. local PreviousPurchases = DataStoreService:GetDataStore("PreviousPurchases")
  5.  
  6. -- DevProduct Ids -
  7. local trainee = 8620277
  8. local Id100 = 978043717
  9. local Id10 = 978043647
  10. local Id50 = 978043625
  11. local Id500 = 978043773
  12. local Id1000 = 978043687
  13.  
  14. game.Players.PlayerAdded:Connect(function(Player)
  15.     print(Player.Name)
  16.     local Stats = game.ReplicatedStorage:FindFirstChild("Stats"):Clone()
  17.     Stats.Parent  = Player
  18.     local key = nil
  19.     pcall(function()
  20.          key = DonationBoard:GetAsync(Player.UserId)
  21.     end)
  22.     if key then
  23.         Stats.DonationAmount.Value = key
  24.     else
  25.             Stats.DonationAmount.Value = 0
  26.     end
  27.    
  28. end)
  29.  
  30. game.Players.PlayerRemoving:Connect(function(player)
  31.     DonationBoard:SetAsync(player.UserId, player.Stats.DonationAmount.Value)
  32. end)
  33.  
  34. local function updateBoard()
  35.     -- Clears Board --
  36.     for _, frame in pairs(game.Workspace.Donation_Board.SurfaceGui.BorderF.MainF.DonatorF:GetChildren())do
  37.     frame:Destroy()
  38.     end
  39.    
  40.     local succes, errorMessage = pcall(function()
  41.         local Data = DonationBoard:GetSortedAsync(false, 10)
  42.         local DPage = Data:GetCurrentPage()
  43.         for Rank, data in ipairs(DPage) do
  44.             local userName = game.Players:GetNameFromUserIdAsync(tonumber(data.key))
  45.             local Name = userName
  46.             local Amount = data.value
  47.             local isOnLeaderboard = false
  48.             for i, v in pairs(game.Workspace.Donation_Board.SurfaceGui.BorderF.MainF.DonatorF:GetChildren())do
  49.                 if v.Player.Text == Name then
  50.                     isOnLeaderboard = true
  51.                     break
  52.                 end
  53.             end
  54.             if Amount and isOnLeaderboard == false then
  55.                 local newBF = game.ReplicatedStorage:WaitForChild("RankF"):Clone()
  56.                 newBF.Player.Text = Name
  57.                 newBF.Amount.Text = "R$ "..Amount
  58.                 newBF.Rank.Text = "#"..Rank
  59.                 newBF.Position = UDim2.new(0,0, newBF.Position.Y.Scale + (0.105 * #game.Workspace.Donation_Board.SurfaceGui.BorderF.MainF.DonatorF:GetChildren()), 0)
  60.                 newBF.Parent = game.Workspace.Donation_Board.SurfaceGui.BorderF.MainF.DonatorF
  61.             end
  62.         end
  63.     end)
  64.     if not succes then
  65.         print(errorMessage)
  66.     end
  67. end
  68.  
  69. updateBoard()
  70.  
  71. MarketplaceServer.ProcessReceipt = function(receipt)
  72.     local ID = receipt.PlayerId.."-"..receipt.PurchaseId
  73.     local success = nil
  74.     pcall(function()
  75.         success = PreviousPurchases:GetAsync(ID)
  76.     end)
  77.     if success then
  78.         return Enum.ProductPurchaseDecision.PurchaseGranted
  79.     end
  80.    
  81.     local player = game.Players:GetPlayerByUserId(receipt.PlayerId)
  82.     if not player then
  83.         return Enum.ProductPurchaseDecision.NotProcessedYet
  84.     else
  85.             if receipt.ProductId == Id10 then
  86.                 player:FindFirstChild("Stats").DonationAmount.Value = player.Stats.DonationAmount.Value + 10
  87.                 DonationBoard:SetAsync(player.UserId, player.Stats.DonationAmount.Value)
  88.                 updateBoard()  
  89.             end
  90.             if receipt.ProductId == Id50 then
  91.                 player:FindFirstChild("Stats").DonationAmount.Value = player.Stats.DonationAmount.Value + 50
  92.                 DonationBoard:SetAsync(player.UserId, player.Stats.DonationAmount.Value)
  93.                 updateBoard()
  94.             end
  95.             if receipt.ProductId == Id100 then
  96.                 player:FindFirstChild("Stats").DonationAmount.Value = player.Stats.DonationAmount.Value + 100
  97.                 DonationBoard:SetAsync(player.UserId, player.Stats.DonationAmount.Value)
  98.                 updateBoard()
  99.             end
  100.             if receipt.ProductId == Id500 then
  101.                 player:FindFirstChild("Stats").DonationAmount.Value = player.Stats.DonationAmount.Value + 500
  102.                 DonationBoard:SetAsync(player.UserId, player.Stats.DonationAmount.Value)
  103.                 updateBoard()
  104.             end
  105.             if receipt.ProductId == Id1000 then
  106.                 player:FindFirstChild("Stats").DonationAmount.Value = player.Stats.DonationAmount.Value + 1000
  107.                 DonationBoard:SetAsync(player.UserId, player.Stats.DonationAmount.Value)
  108.                 updateBoard()
  109.             end
  110.             pcall(function()
  111.                 PreviousPurchases:SetAsync(ID,true)
  112.             end)
  113.             return Enum.ProductPurchaseDecision.PurchaseGranted
  114.     end
  115.    
  116. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement