Kupowanie Ulepszeń

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

To prowadzi nas do ostatniego etapu łańcucha gry - kupowania ulepszeń. Ponieważ pozwala graczom kupować ulepszenia, które zwiększają rozmiar ich torby na przedmioty, mogą zebrać więcej przedmiotów na wycieczce i zarobić jeszcze więcej złota.

Tworzenie sklepu

Każdy sklep będzie miał przycisk, który gracze klikają, aby kupić większy torebkę na przedmioty. Sam sklep będzie częścią z interfejsem użytkownika, która umożliwia pisanie tekstu na częściach.

Tworzenie znaku

  1. W Workspace'ie stwórz nowy model nazywający się Shop.

  2. W sklepie stwórz nową część bloku nazyającą się BuyButton.

  3. W przycisku Kup kupuj nową interfejs użytkownika, klikając + i przesuwając się do GUI.

  4. W GUI na powierzchni, dodaj nowy Tag tekstowy nazyający się BuyText. Mały Tag pojawi się gdzieś na części.

  5. W zależności od tego, jak część została wykonana, etykieta może być gdzie indziej. Jeśli nie widzisz tekstu na stronie, którą chcesz, wejdź do SurfaceGUI i znajdź właściwość Oblicze. Zmień tę właściwość, aż zobaczysz tekstowe okienko.

Zmiana tekstu znaku

W tym momencie tekstowy label jest naprawdę mały i trudny do zobaczenia dla graczy. Musi być skalowany.

  1. W właściwościach Kup tekst, kliknij na strzałkę obok Rozmiar . Zmień Offset dla X (lewo i prawo) i Y (w górę i w dół) do 0.

  2. Zmień skalę X i Y do 0,5, aby stworzyć kadręt.

  3. Zakręć w górę właściwości TextLabel i kliknij strzałkę po lewej stronie AnchorPoint . Wpisz 0,5 dla X i Y. To przeniesie część Twojego etykietu z poziomu widoku, ale poprawisz go następnie.

  4. Zrób scroll-down w właściwościach i otwórz Pozycję . Zmień rozmiar X i Y do 0,5, aby pudełko było w centrum.

  5. W właściwościach Kup tekst, przewinęć w dół i zmień tekst na coś opisującego. Na instancja: "Buy Larger Bag: 100 gold" .

  6. Sprawdź TextScaled , aby być na . To automatycznie skala twoją tekst, aby pasował do kutki.

Dodanie wykrywacza kliknięć

Gracze będą kupować przedmioty, klikając na sklep, zamiast po prostu dotykać go. Skrypt będzie używać wykrywaczy kliknięć, aby powiedzieć, czy gracz kliknął na znak sklepu. KlikDetectors są obiektami, które umożliwiają użytkownikom interakcję z czymś w środowisko, takim jak otwarcie drzwi.

  1. W przycisku Kup, dodaj detektor kliczeń.

  2. W przycisku Kup, dodaj nowy skrypt o nazwie BuyScript i dodaj komentowaćopisowy.

  3. W BuyScript utwórz zmienne, aby przechować część przycisku i kliknąć wykrywacz.


    -- Pozwól graczom na kliknięcie przyciska, aby kupić ulepszenie, które zwiększa przestrzeń
    local buyButton = script.Parent
    local clickDetector = buyButton.ClickDetector
  4. Utwórz nową funkcję o nazwie giveUpgrade(), która otrzymuje parametr nazyający się player. Funkcja ulepszy przestrzeni gracza za każdym razem, gdy kliknie przycisk.


    local buyButton = script.Parent
    local clickDetector = buyButton.ClickDetector
    local function giveUpgrade(player)
    end
  5. Po funkcji, wpisz MouseClick wydarzenie funkcji giveUpgrade() do funkcji giveUpgrade.


    local function giveUpgrade(player)
    end
    clickDetector.MouseClick:Connect(giveUpgrade)
  6. Dodaj oświadczenie o drukowaniu w giveUpgrade() , aby przetestować funkcję.


    local function giveUpgrade(player)
    print("Someone clicked the button.")
    end
  7. Graj w swoje projekty. Kliknij przycisk i sprawdź, czy widzisz tekst w oknie wyjściowym.

Wskazówki dotyczące rozwiązywania problemów

Problem: Nie możesz kliknąć przycisku lub kursora myszy nie pojawia się na przycisku.

  • Upewnij się, że obiekt ClickDetector jest dzieckiem części, na którą próbujesz kliknąć.
  • Sprawdź, czy twoja postać jest wystarczająco bliska przyciskowi. Albo upewnij się, że narzędzie nie jest założone.

Kupowanie Ulepszeń

Z pracującym przyciskiem nadszedł czas, aby dodać kod do giveUpgrade, aby usunąć złoto gracza w zamian za ulepszony torebkę.

Dodawanie zmiennej ulepszenia

Każde ulepszenie będzie miało dwa zmienne: koszt ulepszenia i liczbę przestrzeni.

  1. W BuyScript, pod local clickDetector, twórz dwa zmienne:

    • newSpace : Ilość miejsc, które ulepszenie dodaje po zakupie.
    • upgradeCost : Koszt jednej uaktualnienie

    -- Zmienne dla uaktualnienie
    local newSpaces = 10
    local upgradeCost = 100

Udzielanie Ulepszeń

Zanim sprzedasz gracz uaktualnienie, musisz sprawdzić, czy ma wystarczająco pieniędzy. Jeśli tak, dodasz do ich maksymalnej ilości miejsc.

  1. W giveUpgrade() , wpisz następujące pola poniżej, aby uzyskać statystyki lidera gracza, abyś mógł uzyskać dostęp do ich złota i zmiennej przestrzeni.


    local function giveUpgrade(player)
    print("Someone clicked the button")
    -- Zdobądź tabelę liderów gracza, aby uzyskać inne IntColors
    local playerStats = player:FindFirstChild("leaderstats")
    if playerStats then
    -- Dostarcza graczom pieniądze i przestrzenie, aby dokonać zmian
    local playerGold = playerStats:FindFirstChild("Gold")
    local playerSpaces = playerStats:FindFirstChild("Spaces")
    end
    end
  2. Po napisaniu zmienne dla przestrzeni, utwórz if statement, aby playerGold wartość była większa lub równa koszcie ulepszenia.


    local function giveUpgrade(player)
    local playerStats = player:FindFirstChild("leaderstats")
    if playerStats then
    local playerGold = playerStats:FindFirstChild("Gold")
    local playerSpaces = playerStats:FindFirstChild("Spaces")
    -- Sprawdza, czy gracz ma wystarczająco pieniędzy, aby uaktualnienie
    if playerGold and playerSpaces and playerGold.Value >= upgradeCost then
    end
    end
    end
  3. W if statement, odejmij koszty uaktualnieniez złota gracza.


    if playerGold and playerSpaces and playerGold.Value >= upgradeCost then
    -- Odejmij koszt przedmiotu z pieniędzy gracza
    playerGold.Value -= upgradeCost
    end
  4. W następnej linii dodać liczbę obecnych miejsc gracza wraz z nowymi miejscami przyznanymi za uaktualnienie.


    if playerGold and playerSpaces and playerGold.Value >= upgradeCost then
    playerGold.Value -= upgradeCost
    playerSpaces.Value += newSpaces
    end
  5. Zagraj w swoją projektę i sprawdź tabelę liderów, aby sprawdzić, czy ulepszenie miejsc działało.

Wskazówki dotyczące rozwiązywania problemów

W tym momencie ulepszenia nie działają tak, jak były, spróbuj jednej z poniższych opcji.

  • Upewnij się, że wszystko w () of FindFirstChild() ma cytaty na obu stronach, jak #leaderstats .
  • Sprawdź, czy każda wartość znalezionych dzieci jest taka sama jak nazwa IntValue w skrypcie PlayerSetup. Na przykład, jeśli używasz kodu Ruby jako pieniądza, powinieneś mieć FindFirstChild("Rubies") .
  • Upewnij się, że giveUpgrade() jest powyżej clickDetector.MouseClick .

Ukończ nabycie kryptu script

Ukończona wersja skryptu może być odniesiona poniżej.


-- Pozwól graczom na kliknięcie przyciska, aby kupić ulepszenie, które zwiększa maksymalną ilość miejsc
local buyButton = script.Parent
local clickDetector = buyButton.ClickDetector
-- Zmienne dla uaktualnienie
local newSpaces = 10
local upgradeCost = 100
local function giveUpgrade(player)
print("Someone clicked the button")
-- Zdobądź tabelę liderów gracza, aby uzyskać inne IntColors
local playerStats = player:FindFirstChild("leaderstats")
if playerStats then
-- Dostarcza graczom pieniądze i przestrzenie, aby dokonać zmian
local playerGold = playerStats:FindFirstChild("Gold")
local playerSpaces = playerStats:FindFirstChild("Spaces")
-- Sprawdza, czy gracz ma wystarczająco pieniędzy, aby uaktualnienie
if playerGold and playerSpaces and playerGold.Value >= upgradeCost then
print("Player can buy item")
-- Odejmij koszt przedmiotu z pieniędzy gracza
playerGold.Value -= upgradeCost
playerSpaces.Value += newSpaces
end
end
end
clickDetector.MouseClick:Connect(giveUpgrade)