local CashButtonsFolder = game.Workspace.CashButtons
local Players = game:GetService("Players")

game.ServerScriptService:WaitForChild("Values")
Players.PlayerAdded:Connect(function(player)
	player:WaitForChild("playerstats")
	for _, v in pairs(CashButtonsFolder:GetChildren()) do	
		if v:IsA("BasePart") then
			v.Touched:Connect(function(touching)
				task.wait()
				local player = Players:GetPlayerFromCharacter(touching.Parent)
				local Cash = player.playerstats.Cash
				local Multiplier = player.playerstats.Multiplier
				local Rebirth = player.playerstats.Rebirths
				local Metal = player.playerstats.Metal
				local Cost = v.Cost
				local Multi = v.Multi
				local NewValue
				local CashVal

				local MetalMultiplier = Metal.Value/2 + 1 -- 1 metal = 1.5x multiplier, 2 metal = 2x multiplier, etc.

				db = true
				while db do
					task.wait()
					local humanoid = touching.Parent:FindFirstChild("Humanoid")
					if db then
						db = false
						if humanoid and humanoid.MoveDirection == Vector3.new(0, 0, 0) and Cash.Value >= Cost.Value then
							db = false
								db = false
									CashVal = Cash.Value - Cost.Value
									Cash.Value = CashVal
									print("detected")
									NewValue = Multiplier.Value + Multi.Value * (Rebirth.Value + 1) * MetalMultiplier
									Multiplier.Value = NewValue
									wait(1)
									db = true
						end
					end
				end
			end)
		end
	end
end)

Please help, I don't know what to do

Player is supposed to be touching a button, and while they touch that button they will gain stats accordingly, but I want it to be in intervals so it's not all at once.

1 comment

0

I've tried manipulating the DB in every way i can think of, that's why it looks like that