Najeď myší na ServerScriptService, klikni na + a přidej Script. Pojmenuj ho Stats.
Smaž řádek, který tam už je, a vlož tento kód.
Stiskni Play. V seznamu hráčů uvidíš Power 0 a 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)
Co která část dělá
Smyčka vytvoří dvě hodnoty jedním kouskem kódu: Power a Coins.
Multiplier říká, kolik power dá jeden klik. Začíná na 1.
Multiplier je uložený na hráči a ne v leaderstats, takže se v seznamu hráčů neukazuje.
Více podrobností
Když klikneš na +, napiš slovo Script, abys ho rychle našel.
Skript se otevře na nové kartě. Klikni dovnitř kódu, stiskni Ctrl+A a potom Ctrl+V, aby se všechno přepsalo.
Skript v Explorer přejmenuj klávesou F2. Název je jen pro tebe. Pomůže ti skript později najít.
Seznam hráčů je v pravém horním rohu hry.
Tenhle krok mi nefunguje
Nejdřív zkontroluj tyto tři věci
Název každého Partu a skriptu je přesně jako v návodu, se stejnými velkými písmeny.
Skript leží ve správném objektu. Podívej se na popisek nad polem s kódem.
Otevři okno Output z nabídky Window. Červený text ukáže skript a řádek, na kterém je problém.
Přidej Part. Nastav Size na 6, 8, 6, zapni Anchored a pojmenuj ho Crystal. Vyber jasnou barvu a nastav Material na Neon.
Najeď myší na Crystal, klikni na + a přidej ClickDetector.
Přidej do Crystal Script a vlož tento kód.
Stiskni Play a klikni na krystal. Power stoupne při každém kliknutí o 1.
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)
Co která část dělá
ClickDetector udělá z Partu něco, na co se dá kliknout. Funguje i při klepnutí na telefonu.
MouseClick řekne skriptu, který hráč klikl.
Skript přidá hráčův Multiplier k Power, takže vylepšení dělají každý klik silnější.
Více podrobností
Napiš velikost do pole Size v Properties a stiskni Enter. Pak krystal zvedni nástrojem Move, až bude stát na podlaze.
Když klikneš na +, napiš ClickDetector, abys ho našel. V Explorer musí ležet o krok doprava, pod Crystal.
Ve hře se kurzor myši změní na ruku, když je nad krystalem.
Musíš stát dost blízko. ClickDetector funguje z 32 studs nebo méně.
Častá chyba. Po kliknutí se nic neděje: ClickDetector musí být přímo uvnitř Crystal, vedle skriptu.
Tenhle krok mi nefunguje
Nejdřív zkontroluj tyto tři věci
Název každého Partu a skriptu je přesně jako v návodu, se stejnými velkými písmeny.
Skript leží ve správném objektu. Podívej se na popisek nad polem s kódem.
Otevři okno Output z nabídky Window. Červený text ukáže skript a řádek, na kterém je problém.
Přidej Part na podlahu. Nastav Size na 8, 1, 8, zapni Anchored, udělej ho žlutý a pojmenuj ho Sell.
Přidej do Sell Script a vlož tento kód.
Stiskni Play, párkrát klikni na krystal a vejdi na podložku. Power se změní na 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)
Co která část dělá
GetPlayerFromCharacter zjistí hráče, který na podložku vstoupil.
Podložka přidá všechen hráčův Power k Coins a pak nastaví Power zpátky na 0.
Více podrobností
Podložka je plochý Part, na který hráči vstupují.
Polož podložku naplocho na podlahu. Když je moc vysoko, hráči na ni nemohou vstoupit.
Vstoupit na podložku s 0 síly nic neudělá. To je správně.
Vyzkoušej: klikni na krystal 10krát, vstup na podložku a seznam hráčů ukáže Power 0 a Coins 10.
Tenhle krok mi nefunguje
Nejdřív zkontroluj tyto tři věci
Název každého Partu a skriptu je přesně jako v návodu, se stejnými velkými písmeny.
Skript leží ve správném objektu. Podívej se na popisek nad polem s kódem.
Otevři okno Output z nabídky Window. Červený text ukáže skript a řádek, na kterém je problém.
Přidej na podlahu další Part. Nastav Size na 8, 1, 8, zapni Anchored, udělej ho modrý a pojmenuj ho Upgrade.
Přidej do Upgrade Script a vlož tento kód.
Stiskni Play, vydělej 25 coins a vejdi na podložku. Každý klik teď dává 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)
Co která část dělá
Cena je hráčův Multiplier krát 25, takže každé vylepšení stojí víc než to předchozí.
Tabulka waiting zabrání tomu, aby jedno dlouhé stání na podložce koupilo spoustu vylepšení najednou.
Po nákupu se Multiplier zvýší o 1.
Více podrobností
Polož podložku pár kroků od podložky pro prodej, aby hráči nenakupovali omylem.
První vylepšení stojí 25 coins. Potom Coins klesne o 25 a jedno kliknutí dá 2 síly.
Když máš méně coins, než je cena, podložka nic neudělá. Slez z ní, vydělej víc a vrať se.
Pauza 1 sekundu je důvod, proč při stání na podložce koupíš vždy jen jedno vylepšení.
Tenhle krok mi nefunguje
Nejdřív zkontroluj tyto tři věci
Název každého Partu a skriptu je přesně jako v návodu, se stejnými velkými písmeny.
Skript leží ve správném objektu. Podívej se na popisek nad polem s kódem.
Otevři okno Output z nabídky Window. Červený text ukáže skript a řádek, na kterém je problém.