Kup ulepszenia

*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 pętla gry - kupowania ulepszeń.Pozwalając graczom kupować ulepszenia, które zwiększają rozmiar ich torby na przedmioty, mogą zbierać więcej przedmiotów za każdą podróż i zarabiać jeszcze więcej złota.

Stwórz robić zakupy

Każdy sklep będzie miał przycisk, który gracze klikną, aby kupić większą torbę na przedmioty.Sam sklep będzie częścią z interfejsem SurfaceGUI, przedmiotem, który pozwala na pisanie tekstu na częściach.

Stwórz znak

  1. W przestrzeni roboczej utwórz nowy model o nazwie Sklep.

  2. W sklepie utwórz nową część bloku o nazwie BuyButton.

  3. W BuyButton dodaj nową powierzchniową GUI, klikając + i przewijając do GUI.

  4. W powierzchniowej GUI dodaj nową etykietę tekstową o nazwie BuyText. Niewielka etykieta 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 po stronie, której chcesz, wejdź do SurfaceGUI i znajdź właściwość Twarz.Zmień tę właściwość, aż zobaczysz etykietę tekstową.

Zmień tekst znaku

Obecnie etykieta tekstowa jest bardzo mała i trudna do zobaczenia dla graczy. Musi zostać rozszerzona.

  1. W właściwościach Kupuj tekst kliknij strzał obok Rozmiaru . Zmień Odległość dla X (lewo i prawo) i Y (w górę i w dół) na 0.

  2. Zmień skalę z X i Y na 0,5 , aby stworzyć kwadrat.

  3. Przewiń w górę w właściwościach TextLabel i kliknij strzał lewo od Punktu Anchora .Wpisz 0.5 dla X i Y.Przesuwa to część twojej etykiety z pola widzenia, ale następnie pozycjonujesz ją prawidłowo.

  4. Przewiń w dół właściwości i otwórz Pozycję . Zmień skalę X i Y na 0,5, aby pudełko znajdowało się w środku.

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

  6. Sprawdź Skalowanie tekstu , aby było na . To automatycznie skaluje Twój tekst, aby pasował do pudełka.

Dodaj detektor kliknięć

Gracze będą kupować przedmioty, klikając na sklep, a nie tylko dotykając go.Skrypt wykorzysta wykrywacz kliknięć, aby powiedzieć, czy gracz kliknął znak sklepu. Detektory kliknięć są obiektami, które pozwalają użytkownikom interaktywnie wchodzić w interakcję z czymś w środowisko, takim jak otwarcie drzwi.

  1. W przycisku kupowania dodaj detektor kliknięć.

  2. W BuyButton dodaj nowy skrypt o nazwie BuyScript i dodaj do niego komentowaćopisowy.

  3. W BuyScript utwórz zmienne, aby przechować część przycisku i detektor kliknięć.


    -- Pozwól graczom kliknąć przycisk, aby kupić ulepszenie, które zwiększa przestrzenie
    local buyButton = script.Parent
    local clickDetector = buyButton.ClickDetector
  4. Stwórz nową funkcję o nazwie giveUpgrade(), która otrzymuje parametr o nazwie player.Funkcja ulepszy przestrzenie gracza za każdym razem, gdy klikną przycisk.


    local buyButton = script.Parent
    local clickDetector = buyButton.ClickDetector
    local function giveUpgrade(player)
    end
  5. Po funkcji wprowadź wydarzenie MouseClick klik wykrywacza do funkcji giveUpgrade().


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


    local function giveUpgrade(player)
    print("Someone clicked the button.")
    end
  7. Odtwórz swój projekt. 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 myszka nie pojawia się na przycisku.

  • Upewnij się, że obiekt ClickDetector jest dzieckiem części, na którą próbujesz kliknąć.
  • Sprawdź, czy twój charakter jest wystarczająco blisko przycisku. Lub upewnij się, że narzędzie nie jest wyposażone.

Kup ulepszenia

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

Dodaj zmienne ulepszeń

Każde ulepszenie będzie miało dwie zmienne: koszt ulepszenia i ilu miejsc ma.

  1. W BuyScript, pod local clickDetector, stwórz dwie zmienne:

    • newSpace : Ile miejsc dodaje aktualizacja po zakupie.
    • upgradeCost : Koszt pojedynczej uaktualnienie

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

Przyznaj ulepszenia

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

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


    local function giveUpgrade(player)
    print("Someone clicked the button")
    -- Zdobywa tabelę wyników gracza, aby uzyskać inne IntValues
    local playerStats = player:FindFirstChild("leaderstats")
    if playerStats then
    -- Zdobywa pieniądze i przestrzeń gracza, aby wprowadzać zmiany
    local playerGold = playerStats:FindFirstChild("Gold")
    local playerSpaces = playerStats:FindFirstChild("Spaces")
    end
    end
  2. Po napisaniu zmiennych dla przestrzeni stwórz oświadczenie if, jeśli wartość playerGold jest większa lub równa kosztowi 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 sobie pozwolić na uaktualnienie
    if playerGold and playerSpaces and playerGold.Value >= upgradeCost then
    end
    end
    end
  3. W oświadczeniu if odejmij koszt ulepszenia z złota gracza.


    if playerGold and playerSpaces and playerGold.Value >= upgradeCost then
    -- Odejmij koszt przedmiotu od pieniędzy gracza
    playerGold.Value -= upgradeCost
    end
  4. Na następnej linii dodaj liczbę obecnych przestrzeni gracza wraz z nowymi przestrzeniami przyznanymi za uaktualnienie.


    if playerGold and playerSpaces and playerGold.Value >= upgradeCost then
    playerGold.Value -= upgradeCost
    playerSpaces.Value += newSpaces
    end
  5. Odtwórz swój projekt i sprawdź tabelę wyników, aby sprawdzić, czy aktualizacja przestrzeni zadziałała.

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

W tym momencie ulepszenia nie działają tak, jak zakładano, spróbuj jednego z poniższych.

  • Upewnij się, że wszystko w () z FindFirstChild() z obu stron ma cytaty na obu stronach, tak jak "leaderstats" .
  • Sprawdź, czy każda struna w FindFirstChild jest dokładnie taka sama jak nazwa IntValue w skrypcie PlayerSetup.Na przykład, jeśli twój kod używa rubinów jako pieniędzy, powinieneś mieć FindFirstChild("Rubies").
  • Upewnij się, że giveUpgrade() jest powyżej clickDetector.MouseClick.

Zakończ skrypt BuyScript

Zakończona wersja skryptu może być odwołana poniżej.


-- Pozwól graczom kliknąć przycisk, aby kupić ulepszenie, które zwiększa MaxSpaces
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")
-- Zdobywa tabelę wyników gracza, aby uzyskać inne IntValues
local playerStats = player:FindFirstChild("leaderstats")
if playerStats then
-- Zdobywa pieniądze i przestrzeń gracza, aby wprowadzać zmiany
local playerGold = playerStats:FindFirstChild("Gold")
local playerSpaces = playerStats:FindFirstChild("Spaces")
-- Sprawdza, czy gracz ma wystarczająco pieniędzy, aby sobie pozwolić na uaktualnienie
if playerGold and playerSpaces and playerGold.Value >= upgradeCost then
print("Player can buy item")
-- Odejmij koszt przedmiotu od pieniędzy gracza
playerGold.Value -= upgradeCost
playerSpaces.Value += newSpaces
end
end
end
clickDetector.MouseClick:Connect(giveUpgrade)