ServerScriptService.Script:44: attempt to perform arithmetic on local 'playerData' (a nil value)?
Why my PlayerData return nil? I would like make a Daily Reward system with a UI countdown. This is my first script (ServerScript) SOURCE. Dont close my question for that please just awnser...
-< Services local PlayerService = game:GetService("Players") local RStorageService = game:GetService('ReplicatedStorage') local DataStoreService = game:GetService("DataStoreService") --< Variables local DailyRewards = DataStoreService:GetDataStore("dailyRewards") local RewardTime = 24 -- one day local RewardAmmount = 50 --they get 50 money each day local SessionData = {} --< Event PlayerService.PlayerAdded:Connect(function(player) local ls = Instance.new("Folder") ls.Name = "leaderstats" ls.Parent = player SessionData[player] = {} SessionData[player]["Cash"] = 100 local money = Instance.new("IntValue", ls) money.Name = "Cash" money.Value = SessionData[player]["Cash"] local playerData = nil pcall(function() -- no errors pls playerData = DailyRewards:GetAsync("player_" .. player.UserId) end) if playerData then if ((tick() - playerData) / (60 * 60)) >= RewardTime then money.Value = playerData + RewardAmmount DailyRewards:SetAsync(player.UserId, tick()) else money.Value = playerData end else DailyRewards:SetAsync(player.UserId, tick()) playerData = DailyRewards:GetAsync("player_" .. player.UserId) end print(require(script.Parent.ModuleScript):ConvertTime((tick() - playerData))) end
And this is my module script for convert "example" 120s to 00:02:00 for return this to a playerUI from RemoteEvent. This script is a FreeModel find in the ToolBox. So its "FREE" model. Dont close my question for this. I just like create game and powering my imagination.
local module = {} local Type = 0 function module:ConvertTime(t) -- Variables -- Sec, Min, and Hour equations I actually got off of Google. Everything else was written by me local sec = math.floor((t%60)) local min = math.floor((t/60)%60) local hour = math.floor((t/3600)%24) -- Set time sec = tostring((sec < 10 and "0" or "") .. sec) min = tostring((min < 10 and "0" or "") .. min) -- Ternary operators FTW. Helps get rid of 'if then' stuff. Actually learned this off of Java programming: z = (x == y ? "Yes" : "No") hour = ((Type == 1 and hour < 10 and "0" or "") .. tostring(Type == 0 and (hour == 0 and 12 or hour > 12 and (hour-12) or hour) or hour)) -- Colon, (space if 12 hr clock) local c, s = ":",(Type == 0 and " " or "") return (hour .. c .. min .. (c .. sec or "") .. s) end return module
Thanks for answers, i really would like make a good Daily Reward system with UI countdown, but i dont know how, but with your answers i will be able.
Sorry for my grammar errors i not speak english so is hard for me learn with the Wiki or others source...