SHOW:
|
|
- or go back to the newest paste.
1 | local Buttons = script.Parent:WaitForChild("Buttons") | |
2 | local Essentials = script.Parent:WaitForChild("Essentials") | |
3 | local Purchases = script.Parent:WaitForChild("Purchases") | |
4 | local TycoonInfo = script.Parent:WaitForChild("TycoonInfo") | |
5 | local Owner = TycoonInfo:WaitForChild("Owner") | |
6 | ||
7 | local Objects = {} | |
8 | local DButtons = {} | |
9 | ||
10 | for i, v in pairs (Buttons:GetChildren()) do | |
11 | ||
12 | -- zmienna Object do której zostanie przypisany obiekt do zakupu, | |
13 | -- jego nazwa została określona w Object danego przycisku (dany obiekt musi znajdować się w folderze Purchases). | |
14 | local Object = Purchases:FindFirstChild(v.Object.Value) | |
15 | ||
16 | -- jeżeli obiekt został znaleziony | |
17 | if Object then | |
18 | -- zostaje on sklonowany do tablicy Objects | |
19 | Objects[Object.Name] = Object:Clone() | |
20 | -- następnie jest niszczony | |
21 | Object:Destroy() | |
22 | end | |
23 | ||
24 | -- jeżeli w przycisku zostanie znaleziony obiekt o nazwie Dependency | |
25 | if v:FindFirstChild("Dependency") then | |
26 | -- ustawienie przezroczystości części Button na 1 (spowoduje to, że przycisk zniknie) | |
27 | v.Button.Transparency = 1 | |
28 | - | -- ustawienie właściwości CanCollide części Button na false spowoduje, że kolizje nie będą go dotyczyć. |
28 | + | -- ustawienie właściwości CanTouch części Button na false spowoduje, że ten przycisk nie będzie reagować na zdarzenie Touched czyli moment kiedy zostanie dotknięty przez inny obiekt w grze będzie ignorowany |
29 | - | v.Button.CanCollide = false |
29 | + | v.Button.CanTouch = false |
30 | -- wyłączenie widoczności BillboardGui | |
31 | v.Button.BillboardGui.Enabled = false | |
32 | -- umieszczenie przycisku w tablicy (pod nazwą obiektu po którym ma się pojawić) | |
33 | DButtons[v.Dependency.Value] = v | |
34 | end | |
35 | ||
36 | -- dodanie zdarzenia do każdego przycisku | |
37 | v.Button.Touched:Connect(function(Hit) | |
38 | -- sprawdzenie czy obiekt, który dotknął przycisk jest właścicielem tego Tycoona | |
39 | if ValidateHitByOwner(Hit) then | |
40 | -- jeżeli ten przycisk ma przezroczystość równą 0 | |
41 | if v.Button.Transparency == 0 then | |
42 | -- do zmiennej object przypisz obiekt, który miał być zakupiony przez ten przycisk | |
43 | local object = Objects[v.Object.Value] | |
44 | -- przypisz object do folderu Purchases | |
45 | object.Parent = Purchases | |
46 | -- zniszcz przycisk | |
47 | v:Destroy() | |
48 | ||
49 | -- jeżeli przycisk zależny istnieje (co oznacza, że ma się pojawić gdy dany obiekt zostanie kupiony) | |
50 | if DButtons[object.Name] then | |
51 | -- ustawienie przezroczystości części Button na 0 (spowoduje to, że przycisk pojawi się) | |
52 | DButtons[object.Name].Button.Transparency = 0 | |
53 | - | -- ustawienie właściwości CanCollide części Button na true spowoduje, że kolizje będą go dotyczyć. |
53 | + | -- ustawienie właściwości CanTouch części Button na true spowoduje, że zdarzenie Touched będzie go dotyczyć czyli moment kiedy zostanie dotknięty przez inny obiekt w grze będzie wykryty |
54 | - | DButtons[object.Name].Button.CanCollide = true |
54 | + | DButtons[object.Name].Button.CanTouch = true |
55 | -- włączenie widoczności BillboardGui | |
56 | DButtons[object.Name].Button.BillboardGui.Enabled = true | |
57 | end | |
58 | end | |
59 | end | |
60 | end) | |
61 | end | |
62 | ||
63 | -- funkcja sprawdzająca właściciela Tycoona | |
64 | function ValidateHitByOwner(Hit) | |
65 | -- sprawdź czy istnieje obiekt Hit i czy ma rodzica i czy znajduje się w nim Humanoid | |
66 | if Hit and Hit.Parent and Hit.Parent:FindFirstChild("Humanoid") then | |
67 | -- pobierz gracza z characteru | |
68 | local Player = game.Players:GetPlayerFromCharacter(Hit.Parent) | |
69 | -- jeżeli gracz został znaleziony i gracz jest właścicielem Tycoona | |
70 | if Player and Player == Owner.Value then | |
71 | -- zwróć true | |
72 | return true | |
73 | end | |
74 | end | |
75 | ||
76 | -- jeżeli, któraś z powyższych instrukcji nie wykonała się, zwróć false | |
77 | return false | |
78 | end | |
79 |