The title basically says the problem, so sometimes players are able to get more than 1 win, even though I added a check to see if they already won.
I have already put in a check to see if they already won, but it sometimes doesn’t work for some reason. Here is the script responsible for the wins and data:
local datastore = require(game.ServerScriptService.DataStore2)
local dv = 0
game.Players.PlayerAdded:Connect(function(plr)
local pds = datastore("towersval1",plr)
local pdstogs = datastore("TogsVal1",plr)
local pdstoof = datastore("ToofVal1",plr)
local leaderstats = Instance.new("Folder",plr)
leaderstats.Name = "leaderstats"
local Towers = Instance.new("IntValue",leaderstats)
Towers.Name = "Towers"
local ToGS = Instance.new("IntValue",plr)
ToGS.Name = "ToGS"
local ToOF = Instance.new("IntValue",plr)
ToOF.Name = "ToOF"
local function PU(UV)
Towers.Value = pds:Get(UV)
end
PU(dv)
pds:OnUpdate(PU)
local function PUToGS(UVToGS)
ToGS.Value = pdstogs:Get(UVToGS)
end
PUToGS(dv)
pdstogs:OnUpdate(PUToGS)
local function PUToOF(UVToOF)
ToOF.Value = pdstoof:Get(UVToOF)
end
PUToOF(dv)
pdstoof:OnUpdate(PUToOF)
end)
workspace.ToGSWinpad.Touched:Connect(function(hit)
local player = game.Players:GetPlayerFromCharacter(hit.Parent)
local db = false
local tele = game.Workspace.WinTele
local pdstogs = datastore("TogsVal1",player)
local pds = datastore("towersval1",player)
if not db then
db = true
if player.ToGS.Value == 1 then
print("imagine")
player:LoadCharacter()
else
pdstogs:Set(1,dv)
pds:Increment(1,dv)
player:LoadCharacter()
end
wait(1)
db = false
end
end)
workspace.Towers.ToOF.ToOFWinpad.Touched:Connect(function(hit)
local player = game.Players:GetPlayerFromCharacter(hit.Parent)
local db = false
local tele = game.Workspace.WinTele
local pdstoof = datastore("ToofVal1",player)
local pds = datastore("towersval1",player)
if not db then
db = true
if player.ToOF.Value == 1 then
print("imagine")
player:LoadCharacter()
else
pdstoof:Set(1,dv)
pds:Increment(1,dv)
player:LoadCharacter()
end
wait(1)
db = false
end
end)