Comprare Miglioramenti

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Questo ci porta all'ultimo livello della catena di raccolta dei giochi - l'acquisto di aggiornamenti. Permettendo ai giocatori di acquistare aggiornamenti che aumentano la dimensione della loro borsa dell'articolo, possono raccogliere più articoli per viaggio e guadagnare ancora più oro.

Creazione di un negozio

Ogni negozio avrà un pulsante che i giocatori fanno clic per acquistare una grande borsa per gli articoli. Il negozio stesso sarà una parte con un SurfaceGUI, un oggetto che consente di scrivere sulle parti.

Creazione del segno

  1. Nell'area di lavoro, crea un nuovo modello chiamato Shop.

  2. In Shop, crea una nuova parte del blocco chiamata BuyButton.

  3. In BuyButton, aggiungi una nuova GUI della superficie facendo clic sul + e scorrendo verso GUI or Intefaccia grafica utente.

  4. Nella GUI or Intefaccia grafica utentedi superficie, aggiungi un nuovo TextLabel chiamato BuyText. Un piccolo label appare da qualche parte sulla parte.

  5. A seconda di come è stata creata la parte, l'etichetta può essere in un altro luogo. Se non vedi il testo sul lato che vuoi, vai nella SurfaceGUI e trova la ProprietàFace. Cambia quella proprietà fino a quando non vedi l'Etichettadel testo.

Cambiare il testo del segno

In questo momento, il TextLabel è davvero piccolo e difficile da vedere per i giocatori. È necessario ingrandirlo.

  1. Nelle proprietà di BuyText, fai clic sulla freccia accanto a Dimensione . Cambia il Offset per X (a sinistra e a destra) e Y (su e giù) a 0.

  2. Cambia lo scala di X e Y a 0.5 per creare un quadrato.

  3. Scorri verso l'alto nelle proprietà TextLabel e fai clic sulla freccia a sinistra di AnchorPoint . Scrivi 0.5 per X e Y. Questo sposta la parte della tua etichetta fuori dalla visuale, ma la posizionerai correttamente la prossima volta.

  4. Scorri verso il basso nelle proprietà e apri Posizione . Cambia la dimensione di X e Y a 0,5 per cento in modo che la casella sia al centro.

  5. Nelle proprietà di BuyText, scorri verso il basso e cambia Text in qualcosa di descrittivo. Ad esempio: "Buy Larger Bag: 100 gold" .

  6. Controlla TextScaled per essere su . Questo scala automaticamente il tuo testo in modo che si adatti alla Quadro di selezione.

Aggiungere un Click Detector

I giocatori acquisteranno oggetti facendo clic sul negozio invece di toccarlo. Lo script userà un rilevatore di clic per dire se un giocatore ha cliccato sul negozio. ClickDetectors sono oggetti che consentono agli utenti di interagire con qualcosa nell'Ambiente, come aprire una porta.

  1. Nel pulsante Acquista, aggiungi un ClickDetector.

  2. In BuyButton, aggiungi uno script nuovo chiamato BuyScript e dargli un Commentaredescrittivo.

  3. In BuyScript, crea variabili per memorizzare la parte del pulsante e fai clic su detector.


    -- Permetti ai giocatori di fare clic su un pulsante per acquistare un aggiornamento che aumenta gli spazi
    local buyButton = script.Parent
    local clickDetector = buyButton.ClickDetector
  4. Crea una nuova funzione chiamata giveUpgrade() che ottiene un parametro chiamato player . La funzione aggiorerà gli spazi di un Giocatoreogni volta che clicca il pulsante.


    local buyButton = script.Parent
    local clickDetector = buyButton.ClickDetector
    local function giveUpgrade(player)
    end
  5. Dopo la funzione, digita connect the click detector's MouseClick event to the giveUpgrade() function.


    local function giveUpgrade(player)
    end
    clickDetector.MouseClick:Connect(giveUpgrade)
  6. Aggiungi una dichiarazione di stampa in giveUpgrade() per testare la funzione.


    local function giveUpgrade(player)
    print("Someone clicked the button.")
    end
  7. Gioca il tuo progetto. Fai clic sul pulsante e assicurati di vedere il testo nella finestra di uscita.

Risolvere i problemi

Problema: Non sei in grado di fare clic sul pulsante o un cursore del mouse non appare sul pulsante.

  • Assicurati che l'oggetto ClickDetector sia un figlio della parte che stai cercando di fare clic.
  • Assicurati che il tuo personaggio sia abbastanza vicino al pulsante. O, assicurati che lo strumento non sia equipaggiato.

Comprare Miglioramenti

Con un pulsante funzionante, è ora di aggiungere il codice a giveUpgrade per rimuovere l'oro di un Giocatorein cambio di una borsa aggiornata.

Aggiungere variabili di aggiornamento

Ogni aggiornamento avrà due variabili: il costo dell'aggiornamento e quante aree contiene.

  1. In BuyScript, under local clickDetector , create two variables:

    • newSpace : Quanti spazi un aggiornamento aggiunge quando viene acquistato.
    • upgradeCost : Il costo di un singolo Aggiornarmento

    -- 变量 per l'Aggiornarmento
    local newSpaces = 10
    local upgradeCost = 100

Garantire aggiornamenti

Prima di vendere il giocatore l'Aggiornarmento, devi controllare se hanno abbastanza soldi. Se lo fanno, aggiungerai alla loro quantità massima di spazi.

  1. In giveUpgrade() , digita quanto segue per ottenere le statistiche del leader del Giocatorein modo da poter accedere alle loro variabili d'oro e spazio.


    local function giveUpgrade(player)
    print("Someone clicked the button")
    -- Ottiene la classifica del Giocatoreper ottenere altri IntVal
    local playerStats = player:FindFirstChild("leaderstats")
    if playerStats then
    -- Ottiene i soldi e gli spazi del Giocatoreper apportare modifiche
    local playerGold = playerStats:FindFirstChild("Gold")
    local playerSpaces = playerStats:FindFirstChild("Spaces")
    end
    end
  2. Dopo aver scritto le variabili per gli spazi, crea un if statement to if the value of playerGold è più o uguale al costo di aggiornamento.


    local function giveUpgrade(player)
    local playerStats = player:FindFirstChild("leaderstats")
    if playerStats then
    local playerGold = playerStats:FindFirstChild("Gold")
    local playerSpaces = playerStats:FindFirstChild("Spaces")
    -- Controlla se il giocatore ha abbastanza soldi per Aggiornarmento
    if playerGold and playerSpaces and playerGold.Value >= upgradeCost then
    end
    end
    end
  3. Nell'if statement, sottrai il costo dell'Aggiornarmentodal gold del Giocatore.


    if playerGold and playerSpaces and playerGold.Value >= upgradeCost then
    -- Sottrai il costo dell'Articolodal denaro del Giocatore
    playerGold.Value -= upgradeCost
    end
  4. Nella prossima riga, aggiungi il numero di spazi attuali del Giocatore, nonché i nuovi spazi concessi per l'Aggiornarmento.


    if playerGold and playerSpaces and playerGold.Value >= upgradeCost then
    playerGold.Value -= upgradeCost
    playerSpaces.Value += newSpaces
    end
  5. Gioca il tuo progetto e controlla la classifica per controllare se l'aggiornamento delle aree ha funzionato.

Risolvere i problemi

A questo punto, le miglioramenti non funzionano come previsto, prova uno dei seguenti sotto.

  • Assicurati che qualsiasi cosa in () of FindFirstChild() abbia le citazioni su ambide lati, come 2> leaderstats2> .
  • Assicurati che ogni riga in FindFirstChild sia esattamente la stessa di quella IntValue nel script PlayerSetup. Ad esempio, se il tuo codice usa i rubini come nome, dovresti avere FindFirstChild("Rubies") .
  • Assicurati che giveUpgrade() sia sopra clickDetector.MouseClick .

Completa lo script di BuyScript

Una versione finita dello script può essere riferita qui sotto.


-- Permetti ai giocatori di fare clic su un pulsante per acquistare un aggiornamento che aumenta MaxSpaces
local buyButton = script.Parent
local clickDetector = buyButton.ClickDetector
-- 变量 per l'Aggiornarmento
local newSpaces = 10
local upgradeCost = 100
local function giveUpgrade(player)
print("Someone clicked the button")
-- Ottiene la classifica del Giocatoreper ottenere altri IntVal
local playerStats = player:FindFirstChild("leaderstats")
if playerStats then
-- Ottiene i soldi e gli spazi del Giocatoreper apportare modifiche
local playerGold = playerStats:FindFirstChild("Gold")
local playerSpaces = playerStats:FindFirstChild("Spaces")
-- Controlla se il giocatore ha abbastanza soldi per Aggiornarmento
if playerGold and playerSpaces and playerGold.Value >= upgradeCost then
print("Player can buy item")
-- Sottrai il costo dell'Articolodal denaro del Giocatore
playerGold.Value -= upgradeCost
playerSpaces.Value += newSpaces
end
end
end
clickDetector.MouseClick:Connect(giveUpgrade)