-- tworzymy odwołenie do usługi, która zawiera informacje na temat -- podłączonych klientów do gry local Gracze = game:GetService("Players") -- tworzymy odwołanie do DataStoreService local DSS = game:GetService("DataStoreService") local DaneBroni = DSS:GetDataStore("Bronie") local ReplicatedStorage = game.ReplicatedStorage local ServerStorage = game.ServerStorage local zdarzenieIkona = game.ReplicatedStorage.Zdarzenia.Ikona local zdarzeniePrzycisk = game.ReplicatedStorage.Zdarzenia.Przycisk local Bronie = { PISTOL = game.ReplicatedStorage.Weapons.PISTOL, SMG = game.ReplicatedStorage.Weapons.SMG, SHOTGUN = game.ReplicatedStorage.Weapons.SHOTGUN, SNIPER = game.ReplicatedStorage.Weapons.SNIPER, ROCKETLAUNCHER = game.ReplicatedStorage.Weapons.ROCKETLAUNCHER, GRENADELAUNCHER = game.ReplicatedStorage.Weapons.GRENADELAUNCHER, CROSSBOW = game.ReplicatedStorage.Weapons.CROSSBOW, RAILGUN = game.ReplicatedStorage.Weapons.RAILGUN } local DaneStartoweBroni = { PISTOL = 2, SMG = 0, SHOTGUN = 0, SNIPER = 0, ROCKETLAUNCHER = 0, GRENADELAUNCHER = 0, CROSSBOW = 0, RAILGUN = 0 } function UzyskajDaneWszystkichBroni(gracz) return ServerStorage[gracz.name]["Bronie"]:GetChildren() end function UzyskajDanePojedynczejBroni(gracz, bron) return ServerStorage[gracz.Name]["Bronie"][bron].Value end function UstawDaneBroni(gracz, bron, dane) ServerStorage[gracz.Name]["Bronie"][bron].Value = dane end function SprawdzKase(gracz, cena) if ServerStorage[gracz.Name].Kasa.Value >= cena then return true else return false end end function PobierzKase(gracz, cena) ServerStorage[gracz.Name].Kasa.Value = ServerStorage[gracz.Name].Kasa.Value - cena end function DodajBron(gracz, bron) local sklonowanaBron = Bronie[bron]:Clone() sklonowanaBron.Parent = gracz.Backpack end function UsunBron(gracz, bron) local removed = false local bronDoUsuniecia = gracz.Backpack:FindFirstChild(bron) if bronDoUsuniecia then bronDoUsuniecia:Destroy() else bronDoUsuniecia = gracz.Character:FindFirstChild(bron) if bronDoUsuniecia then bronDoUsuniecia:Destroy() end end end local function PoDodaniuPostaci(postac) local gracz = game.Players:GetPlayerFromCharacter(postac) local bronieGracza = UzyskajDaneWszystkichBroni(gracz) local ludzik = postac:FindFirstChild("Humanoid") if ludzik then ludzik.Died:Connect(function() wait(6) gracz:LoadCharacter() end) end wait(1) for i, bron in pairs(bronieGracza) do if bron.Value == 0 then zdarzenieIkona:FireClient(gracz,bron.Name, false, false) elseif bron.Value == 1 then zdarzenieIkona:FireClient(gracz,bron.Name, true, false) elseif bron.Value == 2 then zdarzenieIkona:FireClient(gracz,bron.Name, true, true) DodajBron(gracz, bron.Name) end wait(0.1) end end function InformacjeDlaSklepu(gracz, bron) for i, wybranaBron in pairs(Bronie) do if wybranaBron.Name == bron then local DanePojedynczejBroni = UzyskajDanePojedynczejBroni(gracz, bron) if DanePojedynczejBroni == 0 then local wiadomosc = "Kup za " .. Bronie[i].Price.Value .. " $" zdarzeniePrzycisk:FireClient(gracz, wiadomosc, bron) elseif DanePojedynczejBroni == 1 then local wiadomosc = "Weź broń" zdarzeniePrzycisk:FireClient(gracz, wiadomosc, bron) elseif DanePojedynczejBroni == 2 then local wiadomosc = "Zdejmij broń" zdarzeniePrzycisk:FireClient(gracz, wiadomosc, bron) end end end end zdarzenieIkona.OnServerEvent:Connect(InformacjeDlaSklepu) function PrzyciskKliknietyNaSklepie(gracz, bron) for i, v in pairs(Bronie) do if v.Name == bron then local DanePojedynczejBroni = UzyskajDanePojedynczejBroni(gracz, bron) if DanePojedynczejBroni == 0 then if SprawdzKase(gracz, Bronie[bron].Price.Value) then PobierzKase(gracz, Bronie[bron].Price.Value) local wiadomosc = "Weź broń" zdarzeniePrzycisk:FireClient(gracz, wiadomosc, bron) zdarzenieIkona:FireClient(gracz,Bronie[bron].Name, true, false) UstawDaneBroni(gracz, bron, 1) else local wiadomosc = "Nie masz wystarczająco kasy" zdarzeniePrzycisk:FireClient(gracz, wiadomosc, bron) wait(1) local wiadomosc = "Kup za " .. Bronie[i].Price.Value .. " $" zdarzeniePrzycisk:FireClient(gracz, wiadomosc, bron) end elseif DanePojedynczejBroni == 1 then UstawDaneBroni(gracz, bron, 2) zdarzenieIkona:FireClient(gracz,Bronie[bron].Name, true, true) local wiadomosc = "Zdejmij broń" zdarzeniePrzycisk:FireClient(gracz, wiadomosc, bron) DodajBron(gracz, bron) elseif DanePojedynczejBroni == 2 then UsunBron(gracz, bron) UstawDaneBroni(gracz, bron, 1) zdarzenieIkona:FireClient(gracz,Bronie[bron].Name, true, false) local wiadomosc = "Weź broń" zdarzeniePrzycisk:FireClient(gracz, wiadomosc, bron) end end end end zdarzeniePrzycisk.OnServerEvent:Connect(PrzyciskKliknietyNaSklepie) local function PoUsunieciuPostaci(postac) local gracz = Gracze:GetPlayerFromCharacter(postac) local BronieDoZapisania = DaneStartoweBroni for bron, wartosc in pairs(BronieDoZapisania) do BronieDoZapisania[bron] = UzyskajDanePojedynczejBroni(gracz, bron) end DaneBroni:SetAsync(gracz.UserId, BronieDoZapisania) end game.Players.PlayerAdded:Connect(function(gracz) local TablicaNaSerwerze = ServerStorage:WaitForChild(gracz.Name, 30) local FolderBroni = Instance.new("Folder", TablicaNaSerwerze) FolderBroni.Name = "Bronie" local DaneBroniGracza = DaneBroni:GetAsync(gracz.UserId) or DaneStartoweBroni for bron, wartosc in pairs(DaneBroniGracza) do local bronieNaSerwerze = Instance.new("NumberValue", FolderBroni) bronieNaSerwerze.Name = bron bronieNaSerwerze.Value = wartosc end gracz.CharacterAdded:Connect(PoDodaniuPostaci) gracz.CharacterRemoving:Connect(PoUsunieciuPostaci) end)