Idea Make a simple reward system that will reward the player after 24:00:00 Using the os.time() function.
Issue The timer goes into a negative time, as a result It shows up as things like (-21:02:13)
Code1
~~local RewardTime = 24*60*60 --How often they get the reward in seconds --This is 24 hours
local DataStore = game:GetService("DataStoreService"):GetDataStore("LastLogin")
local Player = script.Parent.Parent.Parent.Parent.Parent
local LastLogin = DataStore:GetAsync(Player.userId) or os.time()
while true do
Seconds = RewardTime-(os.time()-LastLogin);
Minutes = Seconds/60;
Hours = Minutes/60;
script.Parent.Text = ("Time Until Next Reward: d:d:d"):format(Hours,Minutes%(60),Seconds%(60))
wait(1)
end
Code2
local DataStore = game:GetService("DataStoreService"):GetDataStore("LastLogin")
game.Players.PlayerAdded:connect(function(Player)
wait()
local LastLogin = DataStore:GetAsync(Player.userId)
if LastLogin then
local Seconds = os.time()-LastLogin
local Minutes = Seconds/60
local Hours = Minutes/60
print("It has been: "..Hours.." hours Since your last reward")
if Hours >= 24 then
print("You get a daily login award")
DataStore:SetAsync(Player.userId,os.time())
end
else
DataStore:SetAsync(Player.userId,os.time())
end
end)
Thanks :D
