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 |
| 29 | - | v.Button.CanCollide = false |
| 29 | + | -- czyli moment kiedy zostanie dotknięty przez inny obiekt w grze będzie ignorowany |
| 30 | v.Button.CanTouch = false | |
| 31 | -- umieszczenie przycisku w tablicy (pod nazwą obiektu po którym ma się pojawić) | |
| 32 | DButtons[v.Dependency.Value] = v | |
| 33 | end | |
| 34 | ||
| 35 | -- dodanie zdarzenia do każdego przycisku | |
| 36 | v.Button.Touched:Connect(function(Hit) | |
| 37 | -- sprawdzenie czy obiekt, który dotknął przycisk jest właścicielem tego Tycoona | |
| 38 | if ValidateHitByOwner(Hit) then | |
| 39 | -- jeżeli ten przycisk ma przezroczystość równą 0 | |
| 40 | if v.Button.Transparency == 0 then | |
| 41 | -- do zmiennej object przypisz obiekt, który miał być zakupiony przez ten przycisk | |
| 42 | local object = Objects[v.Object.Value] | |
| 43 | -- przypisz object do folderu Purchases | |
| 44 | object.Parent = Purchases | |
| 45 | -- zniszcz przycisk | |
| 46 | v:Destroy() | |
| 47 | ||
| 48 | -- jeżeli przycisk zależny istnieje (co oznacza, że ma się pojawić gdy dany obiekt zostanie kupiony) | |
| 49 | if DButtons[object.Name] then | |
| 50 | -- ustawienie przezroczystości części Button na 0 (spowoduje to, że przycisk pojawi się) | |
| 51 | - | -- ustawienie właściwości CanCollide części Button na true spowoduje, że kolizje będą go dotyczyć. |
| 51 | + | |
| 52 | - | DButtons[object.Name].Button.CanCollide = true |
| 52 | + | -- ustawienie właściwości CanTouch części Button na true spowoduje, że zdarzenie Touched będzie go dotyczyć czyli |
| 53 | --moment kiedy zostanie dotknięty przez inny obiekt w grze będzie wykryty | |
| 54 | DButtons[object.Name].Button.CanTouch = true | |
| 55 | end | |
| 56 | end | |
| 57 | end | |
| 58 | end) | |
| 59 | end | |
| 60 | ||
| 61 | -- funkcja sprawdzająca właściciela Tycoona | |
| 62 | function ValidateHitByOwner(Hit) | |
| 63 | -- sprawdź czy istnieje obiekt Hit i czy ma rodzica i czy znajduje się w nim Humanoid | |
| 64 | if Hit and Hit.Parent and Hit.Parent:FindFirstChild("Humanoid") then
| |
| 65 | -- pobierz gracza z characteru | |
| 66 | local Player = game.Players:GetPlayerFromCharacter(Hit.Parent) | |
| 67 | -- jeżeli gracz został znaleziony i gracz jest właścicielem Tycoona | |
| 68 | if Player and Player == Owner.Value then | |
| 69 | -- zwróć true | |
| 70 | return true | |
| 71 | end | |
| 72 | end | |
| 73 | ||
| 74 | -- jeżeli, któraś z powyższych instrukcji nie wykonała się, zwróć false | |
| 75 | return false | |
| 76 | end | |
| 77 | ||
| 78 | ||
| 79 |