Advertisement
drakon-firestone

Untitled

Nov 12th, 2023
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.25 KB | None | 0 0
  1. -- Zmienna players, która odwołuje się do usługi Players w grze
  2. local players = game:GetService("Players")
  3. -- Zmienna httpService, która odwołuje się do usługi HttpService w grze
  4. local httpService = game:GetService("HttpService")
  5. -- Zmienna replicatedStorage, która odwołuje się do usługi ReplicatedStorage w grze
  6. local replicatedStorage = game:GetService("ReplicatedStorage")
  7. -- Zmienna remotes, która odwołuje się do obiektu Remotes w ReplicatedStorage
  8. local remotes = replicatedStorage.Remotes
  9. -- Zmienna eggs, która odwołuje się do obiektu Eggs w Workspace
  10. local eggs = workspace.Eggs
  11. -- Zmienna playerBusy, która jest pustą tablicą służącą do śledzenia graczy,
  12. -- którzy wykonują akcję
  13. local playerBusy = {}
  14. -- Funkcja, która przyjmuje tabelę petTable i zwraca
  15. -- wylosowane zwierzątko na podstawie szans z tabeli
  16. local function chooseRandomPet(petTable)
  17. local pet = nil
  18. local number = math.random(1,100)
  19. local weight = 0
  20. -- Iteracja przez tablicę petTable
  21. for i, v in pairs(petTable) do
  22. -- Dodanie wagi zwierzęcia do ogólnej wagi
  23. weight += v.chance
  24. -- Sprawdzenie, czy waga jest większa lub równa numerowi
  25. if weight >= number then
  26. -- Ustawienie wylosowanego zwierzątka
  27. pet = v
  28. break
  29. end
  30. end
  31. -- Zwrócenie wylosowanego zwierzątka
  32. return pet
  33. end
  34. -- Iteracja przez każde dziecko obiektu eggs
  35. for i, egg in pairs(eggs:GetChildren()) do
  36.  
  37. -- Zdarzenie Triggered wywoływane na skutek wejścia gracza w zasięg promptu
  38. egg.ProximityPrompt.Triggered:Connect(function(player)
  39. -- Zmienna eggData, która przyjmuje dane z pliku związany z jajkiem
  40. local eggData = require(egg.Data)
  41. -- Zmienna price, która przechowuje cenę jajka
  42. local price = eggData.price
  43. -- Zmienna currency, która przechowuje walutę, w której cena jest ustalona
  44. local currency = eggData.currency
  45. -- Sprawdzenie, czy gracz ma wystarczającą ilość waluty, aby kupić jajko
  46. if player.leaderstats[currency].Value >= price then
  47. -- Sprawdzenie, czy gracz nie jest już zajęty
  48. if not playerBusy[player] then
  49. -- Oznaczenie gracza jako zajętego
  50. playerBusy[player] = true
  51. -- Wylosowanie zwierzątka z jajka
  52. local chosenPet = chooseRandomPet(eggData.pets)
  53. -- Odejmowanie ceny jajka od wartości waluty gracza
  54. player.leaderstats[currency].Value -= price
  55. -- Tworzenie nowego obiektu StringValue
  56. local pet = Instance.new("StringValue")
  57. -- Ustawienie nazwy obiektu StringValue jako model zwierzątka
  58. pet.Name = chosenPet.model
  59. -- Wygenerowanie unikalnego identyfikatora dla zwierzątka
  60. pet.Value = httpService:GenerateGUID()
  61. -- Umieszczenie zwierzątka w Inventory gracza
  62. pet.Parent = player.Pets
  63. -- Wysłanie informacji o wylosowanym zwierzątku do klienta
  64. remotes.Egg:FireClient(player, pet.Name, pet.Value, egg.Name)
  65. -- Poczekanie 5 sekund
  66. task.wait(5)
  67. -- Oznaczenie gracza jako niezajętego
  68. playerBusy[player] = false
  69. end
  70. end
  71. end)
  72. end
  73. -- Zdarzenie PlayerRemoving wywoływane na skutek wyjścia gracza z gry
  74. players.PlayerRemoving:Connect(function(player)
  75. -- Sprawdzenie, czy gracz był zajęty
  76. if playerBusy[player] then
  77. -- Usunięcie gracza z tablicy zajętych graczy
  78. playerBusy[player] = nil
  79. end
  80. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement