Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local Buttons = script.Parent:WaitForChild("Buttons")
- local Essentials = script.Parent:WaitForChild("Essentials")
- local Purchases = script.Parent:WaitForChild("Purchases")
- local TycoonInfo = script.Parent:WaitForChild("TycoonInfo")
- local Owner = TycoonInfo:WaitForChild("Owner")
- local Objects = {}
- local DButtons = {}
- for i, v in pairs (Buttons:GetChildren()) do
- -- zmienna Object do której zostanie przypisany obiekt do zakupu,
- -- jego nazwa została określona w Object danego przycisku (dany obiekt musi znajdować się w folderze Purchases).
- local Object = Purchases:FindFirstChild(v.Object.Value)
- -- jeżeli obiekt został znaleziony
- if Object then
- -- zostaje on sklonowany do tablicy Objects
- Objects[Object.Name] = Object:Clone()
- -- następnie jest niszczony
- Object:Destroy()
- end
- -- jeżeli w przycisku zostanie znaleziony obiekt o nazwie Dependency
- if v:FindFirstChild("Dependency") then
- -- ustawienie przezroczystości części Button na 1 (spowoduje to, że przycisk zniknie)
- v.Button.Transparency = 1
- -- 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
- v.Button.CanTouch = false
- -- wyłączenie widoczności BillboardGui
- v.Button.BillboardGui.Enabled = false
- -- umieszczenie przycisku w tablicy (pod nazwą obiektu po którym ma się pojawić)
- DButtons[v.Dependency.Value] = v
- end
- -- dodanie zdarzenia do każdego przycisku
- v.Button.Touched:Connect(function(Hit)
- -- sprawdzenie czy obiekt, który dotknął przycisk jest właścicielem tego Tycoona
- if ValidateHitByOwner(Hit) then
- -- jeżeli ten przycisk ma przezroczystość równą 0
- if v.Button.Transparency == 0 then
- -- do zmiennej object przypisz obiekt, który miał być zakupiony przez ten przycisk
- local object = Objects[v.Object.Value]
- -- przypisz object do folderu Purchases
- object.Parent = Purchases
- -- zniszcz przycisk
- v:Destroy()
- -- jeżeli przycisk zależny istnieje (co oznacza, że ma się pojawić gdy dany obiekt zostanie kupiony)
- if DButtons[object.Name] then
- -- ustawienie przezroczystości części Button na 0 (spowoduje to, że przycisk pojawi się)
- DButtons[object.Name].Button.Transparency = 0
- -- 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
- DButtons[object.Name].Button.CanTouch = true
- -- włączenie widoczności BillboardGui
- DButtons[object.Name].Button.BillboardGui.Enabled = true
- end
- end
- end
- end)
- end
- -- funkcja sprawdzająca właściciela Tycoona
- function ValidateHitByOwner(Hit)
- -- sprawdź czy istnieje obiekt Hit i czy ma rodzica i czy znajduje się w nim Humanoid
- if Hit and Hit.Parent and Hit.Parent:FindFirstChild("Humanoid") then
- -- pobierz gracza z characteru
- local Player = game.Players:GetPlayerFromCharacter(Hit.Parent)
- -- jeżeli gracz został znaleziony i gracz jest właścicielem Tycoona
- if Player and Player == Owner.Value then
- -- zwróć true
- return true
- end
- end
- -- jeżeli, któraś z powyższych instrukcji nie wykonała się, zwróć false
- return false
- end
Add Comment
Please, Sign In to add comment