Passa il mouse su ServerScriptService, clicca + e aggiungi uno Script. Chiamalo Stats.
Cancella la riga che c'è già e incolla questo codice.
Premi Play. La lista dei giocatori mostra Power 0 e Coins 0.
ServerScriptService > Stats
local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(player)
local stats = Instance.new("Folder")
stats.Name = "leaderstats"
stats.Parent = player
for _, name in ipairs({"Power", "Coins"}) do
local value = Instance.new("IntValue")
value.Name = name
value.Parent = stats
end
local multiplier = Instance.new("IntValue")
multiplier.Name = "Multiplier"
multiplier.Value = 1
multiplier.Parent = player
end)
Che cosa fa ogni parte
Il ciclo crea due valori con un solo pezzo di codice: Power e Coins.
Multiplier è quanto power dà un clic. Parte da 1.
Multiplier sta sul giocatore e non in leaderstats, quindi resta nascosto nella lista dei giocatori.
Più dettagli
Quando clicchi +, scrivi la parola Script per trovarlo in fretta.
Lo script si apre in una nuova scheda. Clicca dentro il codice, premi Ctrl+A e poi Ctrl+V per sostituire tutto.
Rinomina lo script in Explorer con F2. Il nome serve solo a te. Ti aiuta a ritrovare lo script più tardi.
La lista dei giocatori è in alto a destra nel gioco.
Questo passo non funziona per me
Controlla prima queste tre cose
Il nome di ogni Part e di ogni script è uguale a quello della guida, con le stesse lettere maiuscole.
Lo script si trova nell'oggetto giusto. Guarda l'etichetta sopra il riquadro del codice.
Apri la finestra Output dal menu Window. Il testo rosso mostra lo script e la riga con il problema.
Aggiungi una Part. Imposta Size su 6, 8, 6, attiva Anchored e chiamala Crystal. Scegli un colore brillante e imposta Material su Neon.
Passa il mouse su Crystal, clicca + e aggiungi un ClickDetector.
Aggiungi uno Script a Crystal e incolla questo codice.
Premi Play e clicca il cristallo. Power sale di 1 a ogni clic.
Crystal > Script
local crystal = script.Parent
local clickDetector = crystal.ClickDetector
clickDetector.MouseClick:Connect(function(player)
local power = player.leaderstats.Power
power.Value += player.Multiplier.Value
end)
Che cosa fa ogni parte
Un ClickDetector rende cliccabile una Part. Funziona anche con i tocchi sul telefono.
MouseClick dice allo script quale giocatore ha cliccato.
Lo script aggiunge il Multiplier del giocatore a Power, così i potenziamenti rendono più forte ogni clic.
Più dettagli
Scrivi la dimensione nel campo Size in Properties e premi Enter. Poi alza il cristallo con lo strumento Move finché sta sul pavimento.
Quando clicchi +, scrivi ClickDetector per trovarlo. In Explorer deve stare un passo più a destra, sotto Crystal.
Nel gioco il puntatore del mouse diventa una mano quando è sopra il cristallo.
Devi stare abbastanza vicino. Un ClickDetector funziona da 32 studs o meno.
Errore comune. Non succede niente al clic: il ClickDetector deve stare direttamente dentro Crystal, accanto allo script.
Questo passo non funziona per me
Controlla prima queste tre cose
Il nome di ogni Part e di ogni script è uguale a quello della guida, con le stesse lettere maiuscole.
Lo script si trova nell'oggetto giusto. Guarda l'etichetta sopra il riquadro del codice.
Apri la finestra Output dal menu Window. Il testo rosso mostra lo script e la riga con il problema.
Aggiungi una Part sul pavimento. Imposta Size su 8, 1, 8, attiva Anchored, falla gialla e chiamala Sell.
Aggiungi uno Script a Sell e incolla questo codice.
Premi Play, clicca il cristallo qualche volta e cammina sulla pedana. Power si trasforma in Coins.
Sell > Script
local Players = game:GetService("Players")
local pad = script.Parent
pad.Touched:Connect(function(hit)
local player = Players:GetPlayerFromCharacter(hit.Parent)
if not player then return end
local stats = player.leaderstats
if stats.Power.Value > 0 then
stats.Coins.Value += stats.Power.Value
stats.Power.Value = 0
end
end)
Che cosa fa ogni parte
GetPlayerFromCharacter trova il giocatore che è salito sulla pedana.
La pedana aggiunge a Coins tutto il Power del giocatore e poi rimette Power a 0.
Più dettagli
Una pedana è una Part piatta su cui i giocatori camminano.
Metti la pedana piatta sul pavimento. Se è troppo alta, i giocatori non riescono a salirci.
Salire sulla pedana con 0 power non fa niente. È giusto così.
Per provare: clicca il cristallo 10 volte, sali sulla pedana di vendita e la lista dei giocatori mostra Power 0 e Coins 10.
Questo passo non funziona per me
Controlla prima queste tre cose
Il nome di ogni Part e di ogni script è uguale a quello della guida, con le stesse lettere maiuscole.
Lo script si trova nell'oggetto giusto. Guarda l'etichetta sopra il riquadro del codice.
Apri la finestra Output dal menu Window. Il testo rosso mostra lo script e la riga con il problema.
Aggiungi un'altra Part sul pavimento. Imposta Size su 8, 1, 8, attiva Anchored, falla blu e chiamala Upgrade.
Aggiungi uno Script a Upgrade e incolla questo codice.
Premi Play, guadagna 25 coins e sali sulla pedana. Ora ogni clic dà 2 power.
Upgrade > Script
local Players = game:GetService("Players")
local pad = script.Parent
local waiting = {}
pad.Touched:Connect(function(hit)
local player = Players:GetPlayerFromCharacter(hit.Parent)
if not player or waiting[player] then return end
local price = player.Multiplier.Value * 25
local coins = player.leaderstats.Coins
if coins.Value < price then return end
waiting[player] = true
coins.Value -= price
player.Multiplier.Value += 1
task.wait(1)
waiting[player] = nil
end)
Che cosa fa ogni parte
Il prezzo è il Multiplier del giocatore per 25, quindi ogni potenziamento costa più del precedente.
La tabella waiting impedisce che restare a lungo sulla pedana compri tanti potenziamenti insieme.
Dopo l'acquisto il Multiplier sale di 1.
Più dettagli
Metti la pedana a qualche passo da quella di vendita, così i giocatori non comprano per sbaglio.
Il primo potenziamento costa 25 coins. Dopo, Coins scende di 25 e un clic dà 2 power.
Con meno coins del prezzo la pedana non fa niente. Scendi, guadagna di più e torna.
La pausa di 1 secondo è il motivo per cui restare fermo sulla pedana compra un solo potenziamento alla volta.
Questo passo non funziona per me
Controlla prima queste tre cose
Il nome di ogni Part e di ogni script è uguale a quello della guida, con le stesse lettere maiuscole.
Lo script si trova nell'oggetto giusto. Guarda l'etichetta sopra il riquadro del codice.
Apri la finestra Output dal menu Window. Il testo rosso mostra lo script e la riga con il problema.