SHOW:
|
|
- or go back to the newest paste.
| 1 | local player = game.Players.LocalPlayer -- odwołanie do lokalnego gracza | |
| 2 | local character = player.Character -- odwołanie do characteru | |
| 3 | local purchased = false -- zmienna logiczna czy zostało kupione | |
| 4 | local price = 0 -- cena przedmiotu | |
| 5 | -- zdarzenie do sprawdzenia pieniędzy gracza | |
| 6 | local checkMoney = game.ReplicatedStorage:WaitForChild("CheckMoney")
| |
| 7 | -- nazwa przedmiotu | |
| 8 | local objectName = "Sword" | |
| 9 | ||
| 10 | -- jeżeli nie ma characteru lub nie został on przypisany do gry | |
| 11 | if not character or not character.Parent then | |
| 12 | -- czekamy, aż character zostanie dodany | |
| 13 | character = player.CharacterAdded:wait() | |
| 14 | end | |
| 15 | ||
| 16 | -- jeżeli przycisk został kliknięty | |
| 17 | script.Parent.MouseButton1Click:Connect(function() | |
| 18 | -- jeżeli jest dostępny character | |
| 19 | if player.Character then | |
| 20 | -- wyślij zdarzenie na serwer z ceną przedmiotu i nazwą obiektu, który chce kupić gracz | |
| 21 | checkMoney:FireServer(price, objectName) | |
| 22 | end | |
| 23 | end) | |
| 24 | ||
| 25 | -- funkcja z dwoma argumentami, czy możemy kupić oraz nazwą przedmiotu do zakupu | |
| 26 | function Buy(canBuy, name) | |
| 27 | -- jeżeli nazwa przesłana z serwera jest taka sama jak nazwa obiektu w tym skrypcie | |
| 28 | if name == objectName then | |
| 29 | -- jeżeli możemy kupić ten obiekt, ponieważ mamy wystarczająca ilość gotówki -- oraz nie został ten przedmiot kupiony przez gracza | |
| 30 | if canBuy and not purchased then | |
| 31 | -- wyślij zdarzenie na serwer ReduceMoney, spowoduje to zabranie gotówki -- graczowi, o wartość ceny przedmiotu | |
| 32 | game.ReplicatedStorage:WaitForChild("ReduceMoney"):FireServer(price)
| |
| 33 | -- cena przedmiotu zmienia się na 0 | |
| 34 | price = 0 | |
| 35 | -- wyślij zdarzenie na serwer AddSword, spowoduje to dodanie miecza graczowi | |
| 36 | game.ReplicatedStorage:WaitForChild("AddSword"):FireServer(player)
| |
| 37 | -- zmień kolor tekstu na zielony | |
| 38 | script.Parent.TextLabel.TextColor3 = Color3.new(0,1,0) | |
| 39 | -- zmień napis na PURCHASED | |
| 40 | script.Parent.TextLabel.Text = "PURCHASED" | |
| 41 | -- zmień wartość purchased na true (przedmiot został już zakupiony) | |
| 42 | purchased = true | |
| 43 | else -- w przeciwnym przypadku | |
| 44 | ||
| 45 | -- jeżeli nie zostało kupione | |
| 46 | if not purchased then | |
| 47 | -- zmień kolor tekstu na czerwony | |
| 48 | script.Parent.TextLabel.TextColor3 = Color3.new(1,0,0) | |
| 49 | -- poczekaj sekundę | |
| 50 | wait(1) | |
| 51 | -- zmień kolor tekstu na czarny | |
| 52 | script.Parent.TextLabel.TextColor3 = Color3.new(0,0,0) | |
| 53 | end | |
| 54 | end | |
| 55 | end | |
| 56 | end | |
| 57 | -- jeżeli serwer wywoła zdarzenie checkMoney na kliencie połącz się z funkcją Buy | |
| 58 | checkMoney.OnClientEvent:Connect(Buy) | |
| 59 |