View difference between Paste ID: a4yTqMLB and KjZ6dxDB
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)