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) |