Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Zmienna players, która odwołuje się do usługi Players w grze
- local players = game:GetService("Players")
- -- Zmienna httpService, która odwołuje się do usługi HttpService w grze
- local httpService = game:GetService("HttpService")
- -- Zmienna replicatedStorage, która odwołuje się do usługi ReplicatedStorage w grze
- local replicatedStorage = game:GetService("ReplicatedStorage")
- -- Zmienna remotes, która odwołuje się do obiektu Remotes w ReplicatedStorage
- local remotes = replicatedStorage.Remotes
- -- Zmienna eggs, która odwołuje się do obiektu Eggs w Workspace
- local eggs = workspace.Eggs
- -- Zmienna playerBusy, która jest pustą tablicą służącą do śledzenia graczy,
- -- którzy wykonują akcję
- local playerBusy = {}
- -- Funkcja, która przyjmuje tabelę petTable i zwraca
- -- wylosowane zwierzątko na podstawie szans z tabeli
- local function chooseRandomPet(petTable)
- local pet = nil
- local number = math.random(1,100)
- local weight = 0
- -- Iteracja przez tablicę petTable
- for i, v in pairs(petTable) do
- -- Dodanie wagi zwierzęcia do ogólnej wagi
- weight += v.chance
- -- Sprawdzenie, czy waga jest większa lub równa numerowi
- if weight >= number then
- -- Ustawienie wylosowanego zwierzątka
- pet = v
- break
- end
- end
- -- Zwrócenie wylosowanego zwierzątka
- return pet
- end
- -- Iteracja przez każde dziecko obiektu eggs
- for i, egg in pairs(eggs:GetChildren()) do
- -- Zdarzenie Triggered wywoływane na skutek wejścia gracza w zasięg promptu
- egg.ProximityPrompt.Triggered:Connect(function(player)
- -- Zmienna eggData, która przyjmuje dane z pliku związany z jajkiem
- local eggData = require(egg.Data)
- -- Zmienna price, która przechowuje cenę jajka
- local price = eggData.price
- -- Zmienna currency, która przechowuje walutę, w której cena jest ustalona
- local currency = eggData.currency
- -- Sprawdzenie, czy gracz ma wystarczającą ilość waluty, aby kupić jajko
- if player.leaderstats[currency].Value >= price then
- -- Sprawdzenie, czy gracz nie jest już zajęty
- if not playerBusy[player] then
- -- Oznaczenie gracza jako zajętego
- playerBusy[player] = true
- -- Wylosowanie zwierzątka z jajka
- local chosenPet = chooseRandomPet(eggData.pets)
- -- Odejmowanie ceny jajka od wartości waluty gracza
- player.leaderstats[currency].Value -= price
- -- Tworzenie nowego obiektu StringValue
- local pet = Instance.new("StringValue")
- -- Ustawienie nazwy obiektu StringValue jako model zwierzątka
- pet.Name = chosenPet.model
- -- Wygenerowanie unikalnego identyfikatora dla zwierzątka
- pet.Value = httpService:GenerateGUID()
- -- Umieszczenie zwierzątka w Inventory gracza
- pet.Parent = player.Pets
- -- Wysłanie informacji o wylosowanym zwierzątku do klienta
- remotes.Egg:FireClient(player, pet.Name, pet.Value, egg.Name)
- -- Poczekanie 5 sekund
- task.wait(5)
- -- Oznaczenie gracza jako niezajętego
- playerBusy[player] = false
- end
- end
- end)
- end
- -- Zdarzenie PlayerRemoving wywoływane na skutek wyjścia gracza z gry
- players.PlayerRemoving:Connect(function(player)
- -- Sprawdzenie, czy gracz był zajęty
- if playerBusy[player] then
- -- Usunięcie gracza z tablicy zajętych graczy
- playerBusy[player] = nil
- end
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement