SHOW:
|
|
- or go back to the newest paste.
| 1 | local dss = game:GetService("DataStoreService")
| |
| 2 | ||
| 3 | local dailyRewardDS = dss:GetDataStore("DailyRewards")
| |
| 4 | ||
| 5 | ||
| 6 | local rewardsForStreak = | |
| 7 | {
| |
| 8 | [1] = 100, | |
| 9 | [2] = 250, | |
| 10 | [3] = 500, | |
| 11 | [4] = 1000, | |
| 12 | [5] = 1750, | |
| 13 | [6] = 3000, | |
| 14 | [7] = 7500, | |
| 15 | } | |
| 16 | ||
| 17 | ||
| 18 | game.Players.PlayerAdded:Connect(function(plr) | |
| 19 | ||
| 20 | local success, dailyRewardInfo = pcall(function() | |
| 21 | return dailyRewardDS:GetAsync(plr.UserId .. "-DailyRewards") | |
| 22 | end) | |
| 23 | if type(dailyRewardInfo) ~= "table" then dailyRewardInfo = {nil, nil, nil} end
| |
| 24 | ||
| 25 | local leaderstats = Instance.new("Folder")
| |
| 26 | leaderstats.Name = "leaderstats" | |
| 27 | leaderstats.Parent = plr | |
| 28 | ||
| 29 | local cash = Instance.new("IntValue")
| |
| 30 | cash.Name = "Cash" | |
| 31 | ||
| 32 | cash.Value = dailyRewardInfo[1] or 0 | |
| 33 | ||
| 34 | cash.Parent = leaderstats | |
| 35 | ||
| 36 | ||
| 37 | local lastOnline = dailyRewardInfo[2] | |
| 38 | local currentTime = os.time() | |
| 39 | ||
| 40 | local timeDifference | |
| 41 | ||
| 42 | if lastOnline then | |
| 43 | timeDifference = currentTime - lastOnline | |
| 44 | end | |
| 45 | ||
| 46 | if not timeDifference or timeDifference >= 24*60*60 then | |
| 47 | ||
| 48 | local streak = dailyRewardInfo[3] or 1 | |
| 49 | local reward = rewardsForStreak[streak] | |
| 50 | ||
| 51 | local dailyRewardGui = plr.PlayerGui:WaitForChild("DailyRewardGui")
| |
| 52 | local mainGui = dailyRewardGui:WaitForChild("MainGui")
| |
| 53 | local claimBtn = mainGui:WaitForChild("ClaimButton")
| |
| 54 | local rewardLabel = mainGui:WaitForChild("RewardLabel")
| |
| 55 | ||
| 56 | rewardLabel.Text = reward | |
| 57 | ||
| 58 | dailyRewardGui.Enabled = true | |
| 59 | ||
| 60 | claimBtn.MouseButton1Click:Connect(function() | |
| 61 | ||
| 62 | cash.Value = cash.Value + reward | |
| 63 | ||
| 64 | dailyRewardGui.Enabled = false | |
| 65 | ||
| 66 | local streak = streak + 1 | |
| 67 | if streak > 7 then streak = 1 end | |
| 68 | ||
| 69 | local success, errormsg = pcall(function() | |
| 70 | ||
| 71 | dailyRewardDS:SetAsync(plr.UserId .. "-DailyRewards", {cash.Value, os.time(), streak})
| |
| 72 | end) | |
| 73 | end) | |
| 74 | ||
| 75 | elseif timeDifference then | |
| 76 | ||
| 77 | wait((24*60*60) - timeDifference) | |
| 78 | ||
| 79 | if game.Players:FindFirstChild(plr) then | |
| 80 | ||
| 81 | local streak = dailyRewardInfo[3] or 1 | |
| 82 | local reward = rewardsForStreak[streak] | |
| 83 | ||
| 84 | local dailyRewardGui = plr.PlayerGui:WaitForChild("DailyRewardGui")
| |
| 85 | local mainGui = dailyRewardGui:WaitForChild("MainGui")
| |
| 86 | local claimBtn = mainGui:WaitForChild("ClaimButton")
| |
| 87 | local rewardLabel = mainGui:WaitForChild("RewardLabel")
| |
| 88 | ||
| 89 | rewardLabel.Text = reward | |
| 90 | ||
| 91 | dailyRewardGui.Enabled = true | |
| 92 | ||
| 93 | claimBtn.MouseButton1Click:Connect(function() | |
| 94 | ||
| 95 | cash.Value = cash.Value + reward | |
| 96 | ||
| 97 | dailyRewardGui.Enabled = false | |
| 98 | ||
| 99 | local streak = streak + 1 | |
| 100 | if streak > 7 then streak = 1 end | |
| 101 | ||
| 102 | pcall(function() | |
| 103 | ||
| 104 | dailyRewardDS:SetAsync(plr.UserId .. "-DailyRewards", {cash.Value, os.time(), streak})
| |
| 105 | end) | |
| 106 | end) | |
| 107 | end | |
| 108 | end | |
| 109 | end) |