SHOW:
|
|
- or go back to the newest paste.
| 1 | -- Odwołanie do folderu z przyciskami do Tycoona | |
| 2 | local przyciski = script.Parent.Przyciski | |
| 3 | -- Odwołanie do folderu z zakupami do Tycoona | |
| 4 | local zakupy = script.Parent.Zakupy | |
| 5 | -- Utworzenie magazynu do przechowywania | |
| 6 | -- niezakupionych elementów do Tycoona | |
| 7 | -- Tego rodzaju tablicę, można wyobrazić sobie | |
| 8 | -- jako pudełko z szufladkami, do którego można | |
| 9 | -- umieszczać elementy, a następnie gdy ich potrzebujemy | |
| 10 | -- wyciągać za pomocą polecenia: magazyn[nazwa] | |
| 11 | local magazyn = {}
| |
| 12 | -- Funkcja, która ukrywa podany przycisk | |
| 13 | local function ukryjPrzycisk(przycisk) | |
| 14 | -- Wyłączenie opcji wykrywania dotknięcia | |
| 15 | przycisk.CanTouch = false | |
| 16 | -- Ustawienie przezroczystości na 1 | |
| 17 | przycisk.Transparency = 1 | |
| 18 | end | |
| 19 | -- Funkcja, która odkrywa podany przycisk | |
| 20 | local function odkryjPrzycisk(przycisk) | |
| 21 | -- Włączenie opcji wykrywania dotknięcia | |
| 22 | przycisk.CanTouch = true | |
| 23 | -- Ustawienie przezroczystości na 0 | |
| 24 | przycisk.Transparency = 0 | |
| 25 | end | |
| 26 | -- Funkcja, która ustawia nowy przycisk | |
| 27 | local function nowyPrzycisk(przycisk) | |
| 28 | ||
| 29 | -- Tworzymy zmienną do przechowywania tymczasowo zakupu | |
| 30 | local zakup | |
| 31 | -- Zmienna nazwa będzie przechowywać nazwę przycisku | |
| 32 | local nazwa = przycisk.Name | |
| 33 | -- Jeżeli w folderze zakupy zostanie znaleziony element, | |
| 34 | -- który będzie miał taką samą nazwę jak nazwa przycisku, wtedy | |
| 35 | if zakupy:FindFirstChild(nazwa) then | |
| 36 | -- Do zmiennej zakup przypisujemy element z folderu zakupy | |
| 37 | zakup = zakupy[nazwa] | |
| 38 | -- Następnie do magazynu wędruje klon elementu zakup | |
| 39 | magazyn[nazwa] = zakup:Clone() | |
| 40 | -- Zakup zostaje zniszczony, co spowoduje, że nie będzie | |
| 41 | -- widoczny w naszym Tycoonie, tylko ukryty w magazynie | |
| 42 | zakup:Destroy() | |
| 43 | else -- W przeciwnym wypadku, jeżeli wybrany zakup nie zostanie znaleziony | |
| 44 | -- W oknie output pojawi się ostrzeżenie, że np. Brakuje zakupu: 5 | |
| 45 | warn("Brakuje zakupu: " .. nazwa)
| |
| 46 | end | |
| 47 | ||
| 48 | -- Jeżeli nazwa przycisku nie jest 1 to ukrywamy podany przycisk | |
| 49 | -- Ta instrukcja warunkowa pozwoli pokazać pierwszy przycisk | |
| 50 | -- od którego gracz będzie zaczynał swoją rozgrywkę | |
| 51 | if not (nazwa == "1") then | |
| 52 | ukryjPrzycisk(przycisk) | |
| 53 | end | |
| 54 | ||
| 55 | -- Aktywacja zdarzenia dotknięcia innego obiektu z przyciskiem | |
| 56 | -- hit - jest to element, który dotknie przycisk | |
| 57 | przycisk.Touched:Connect(function(hit) | |
| 58 | -- może to być każda część występująca na świecie | |
| 59 | -- dlatego poniżej szukamy gracza po jego nazwie | |
| 60 | -- czyli rodzica obiektu, który dotknął przycisk | |
| 61 | -- ponieważ dzieci modelu postaci mogą dotknąć przycisk, | |
| 62 | - | -- a rodzic tych części czyli model postaci zawiera nazwę gracza |
| 62 | + | – a rodzic tych części czyli model postaci zawiera nazwę gracza |
| 63 | local player = game.Players:FindFirstChild(hit.Parent.Name) | |
| 64 | ||
| 65 | -- Jeżeli gracz został znaleziony, co oznacza, że to on dotknął przycisk | |
| 66 | if player then | |
| 67 | -- Tworzymy kolejną zmienną zakup, | |
| 68 | -- do której wrzucamy element do zakupu z magazynu | |
| 69 | local zakup = magazyn[nazwa] | |
| 70 | -- Jeżeli zakup został prawidłowo znaleziony w magazynie | |
| 71 | if zakup then | |
| 72 | -- Ustawiamy rodzina zakupu na folder zakupy, | |
| 73 | -- co spowoduje, że dany zakup pojawi się w grze | |
| 74 | zakup.Parent = zakupy | |
| 75 | end | |
| 76 | ||
| 77 | -- Tworzymy pętle for, która wykona się tyle razy | |
| 78 | -- ile będzie znajdowało się elementów w przycisku | |
| 79 | for i, element in pairs(przycisk:GetChildren()) do | |
| 80 | -- Jeżeli element ma nazwę Kolejny | |
| 81 | -- to oznacza, że po tym przycisku ma się pojawić kolejny przycisk | |
| 82 | if element.Name == "Kolejny" then | |
| 83 | -- informacja o nazwie przycisku, który odkrywamy | |
| 84 | -- znajduje się w wartości obiektu element pod nazwą Kolejny | |
| 85 | local przyciskDoOdkrycia = przyciski:FindFirstChild(element.Value) | |
| 86 | -- Jeżeli przycisk do odkrycia został znaleziony | |
| 87 | if przyciskDoOdkrycia then | |
| 88 | -- Uruchamiamy funkcję odkryjPrzycisk | |
| 89 | odkryjPrzycisk(przyciskDoOdkrycia) | |
| 90 | else -- w przeciwnym razie | |
| 91 | -- W oknie output pojawi się ostrzeżenie, że np. Brakuje przycisku: 3 | |
| 92 | warn("Brakuje przycisku: " .. element.Value)
| |
| 93 | end | |
| 94 | ||
| 95 | end | |
| 96 | end | |
| 97 | -- W tym miejscu usuwamy dany przycisk z gry | |
| 98 | przycisk:Destroy() | |
| 99 | ||
| 100 | end | |
| 101 | end) | |
| 102 | end | |
| 103 | ||
| 104 | -- Kiedy gracz zostanie dodany wykonaj funkcję | |
| 105 | game.Players.PlayerAdded:Connect(function(gracz) | |
| 106 | -- Tworzymy pętle for, która wykona się tyle razy | |
| 107 | -- ile będzie znajdowało się przycisków w folderze z przyciskami | |
| 108 | for i, przycisk in pairs(przyciski:GetChildren()) do | |
| 109 | -- Uruchamiamy funkcję nowyPrzycisk | |
| 110 | nowyPrzycisk(przycisk) | |
| 111 | end | |
| 112 | end) |