Untitled

 avatar
unknown
lua
2 years ago
2.7 kB
5
Indexable
local przyciski = script.Parent.Przyciski
local zakupy = script.Parent.Zakupy

local magazyn = {}

local DSS = game:GetService("DataStoreService")
local Bank = DSS:GetDataStore("Kasa")

local function ukryjPrzycisk(przycisk)
	przycisk.CanTouch = false
	przycisk.Transparency = 1
	przycisk.Tablica.Enabled = false
end

local function odkryjPrzycisk(przycisk)
	przycisk.CanTouch = true
	przycisk.Transparency = 0
	przycisk.Tablica.Enabled = true
end

local function nowyPrzycisk(przycisk)
	local zakup
	local nazwa = przycisk.Name

	if zakupy:FindFirstChild(nazwa) then
		zakup = zakupy[nazwa]
		magazyn[nazwa] = zakup:Clone()
		zakup:Destroy()
	else
		warn("Brakuje zakupu: " .. nazwa)
	end

	if not (nazwa == "1") then
		ukryjPrzycisk(przycisk)
	end

	przycisk.Touched:Connect(function(hit)
		local player = game.Players:FindFirstChild(hit.Parent.Name)

		if player then          

			local zakup = magazyn[nazwa]

			if zakup then
				zakup.Parent = zakupy
			end

			for i, element in pairs(przycisk:GetChildren()) do
				if element.Name == "Kolejny" then

					local przyciskDoOdkrycia = przyciski:FindFirstChild(element.Value)

					if przyciskDoOdkrycia then
						odkryjPrzycisk(przyciskDoOdkrycia)
					else
						warn("Brakuje przycisku: " .. element.Value)
					end

				end
			end

			przycisk:Destroy()

		end
	end)
end


game.Players.PlayerAdded:Connect(function(gracz)

	local kasa = Bank:GetAsync(gracz.UserId) or 0

	local tablicaNaSerwerze = Instance.new("Folder", game.ServerStorage)
	tablicaNaSerwerze.Name = gracz.Name

	local kasaNaSerwerze = Instance.new("NumberValue", tablicaNaSerwerze)
	kasaNaSerwerze.Name = "Kasa"
	kasaNaSerwerze.Value = kasa

	local tablicaLokalnie = Instance.new("Folder", gracz)
	tablicaLokalnie.Name = "leaderstats"

	local kasaLokalnie = Instance.new("NumberValue", tablicaLokalnie)
	kasaLokalnie.Name = "Kasa"
	kasaLokalnie.Value = kasa

	for i, przycisk in pairs(przyciski:GetChildren()) do
		nowyPrzycisk(przycisk)
	end

	gracz:LoadCharacter()

	kasaNaSerwerze.Changed:Connect(function(liczba)
		kasaLokalnie.Value = liczba
	end)
	
	-- W momencie, kiedy obiekt Zbieracz zostanie dotknięty połącz się z funkcją
	script.Parent.Podstawowe.Zbieracz.Touched:Connect(function(obiekt)
		-- Sprawdź czy jest jakiś obiekt i czy posiada w sobie element Kasa
		if obiekt and obiekt:FindFirstChild("Kasa") then
			-- Dodajemy kasę do skarbca, wartość kasy jest uzależniona od wartości bloczku
			script.Skarbiec.Value += obiekt.Kasa.Value
			-- Zniszcz ten obiekt
			obiekt:Destroy()
		end
	end)
	
	while true do
		Bank:SetAsync(gracz.UserId, kasaNaSerwerze.Value)
		print("Kasa zapisana!")
		wait(10)
	end
end)

Editor is loading...