Najedź na ServerScriptService, kliknij + i dodaj Script. Nazwij go Stats.
Usuń linijkę, która już tam jest, i wklej ten kod.
Naciśnij Play. Na liście graczy widać Power 0 i 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 robi każda część
Pętla tworzy dwie wartości jednym kawałkiem kodu: Power i Coins.
Multiplier mówi, ile power daje jedno kliknięcie. Zaczyna od 1.
Multiplier jest w graczu, a nie w leaderstats, więc jest ukryty na liście graczy.
Więcej szczegółów
Po kliknięciu + wpisz słowo Script, żeby szybko go znaleźć.
Skrypt otwiera się w nowej karcie. Kliknij w kodzie, naciśnij Ctrl+A, a potem Ctrl+V, żeby wszystko zastąpić.
Zmień nazwę skryptu w Explorer klawiszem F2. Nazwa jest tylko dla ciebie. Pomaga ci znaleźć skrypt później.
Lista graczy jest w prawym górnym rogu gry.
Ten krok mi nie działa
Najpierw sprawdź te trzy rzeczy
Nazwa każdego klocka i skryptu jest dokładnie taka jak w poradniku, z tymi samymi wielkimi literami.
Skrypt jest w odpowiednim obiekcie. Spójrz na podpis nad polem z kodem.
Otwórz okno Output z menu Window. Czerwony tekst pokazuje skrypt i linijkę, w której jest problem.
Dodaj Part. Ustaw Size na 6, 8, 6, włącz Anchored i nazwij go Crystal. Wybierz jasny kolor i ustaw Material na Neon.
Najedź na Crystal, kliknij + i dodaj ClickDetector.
Dodaj do Crystal Script i wklej ten kod.
Naciśnij Play i kliknij kryształ. Power rośnie o 1 przy każdym kliknięciu.
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 robi każda część
ClickDetector sprawia, że klocek można klikać. Działa też przy dotknięciu na telefonie.
MouseClick mówi skryptowi, który gracz kliknął.
Skrypt dodaje do Power wartość Multiplier gracza, więc ulepszenia wzmacniają każde kliknięcie.
Więcej szczegółów
Wpisz rozmiar w pole Size w Properties i naciśnij Enter. Potem podnieś kryształ narzędziem Move, aż stanie na podłodze.
Po kliknięciu + wpisz ClickDetector, żeby go znaleźć. W Explorer musi być o jeden krok w prawo, pod Crystal.
W grze wskaźnik myszy zmienia się w rączkę, gdy jest nad kryształem.
Musisz stać wystarczająco blisko. ClickDetector działa z odległości 32 studs lub mniej.
Częsty błąd. Po kliknięciu nic się nie dzieje: ClickDetector musi być bezpośrednio w Crystal, obok skryptu.
Ten krok mi nie działa
Najpierw sprawdź te trzy rzeczy
Nazwa każdego klocka i skryptu jest dokładnie taka jak w poradniku, z tymi samymi wielkimi literami.
Skrypt jest w odpowiednim obiekcie. Spójrz na podpis nad polem z kodem.
Otwórz okno Output z menu Window. Czerwony tekst pokazuje skrypt i linijkę, w której jest problem.
Dodaj Part na podłodze. Ustaw Size na 8, 1, 8, włącz Anchored, zrób go żółtym i nazwij go Sell.
Dodaj do Sell Script i wklej ten kod.
Naciśnij Play, kliknij kryształ kilka razy i wejdź na pole. Power zamienia się w 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 robi każda część
GetPlayerFromCharacter znajduje gracza, który wszedł na pole.
Pole dodaje cały Power gracza do Coins, a potem ustawia Power z powrotem na 0.
Więcej szczegółów
Płyta to płaski klocek, na który wchodzą gracze.
Połóż płytę płasko na podłodze. Jeśli jest za wysoko, gracze nie mogą na nią wejść.
Wejście na płytę z 0 siły nic nie robi. To jest poprawne.
Test: kliknij kryształ 10 razy, wejdź na płytę, a lista graczy pokaże Power 0 i Coins 10.
Ten krok mi nie działa
Najpierw sprawdź te trzy rzeczy
Nazwa każdego klocka i skryptu jest dokładnie taka jak w poradniku, z tymi samymi wielkimi literami.
Skrypt jest w odpowiednim obiekcie. Spójrz na podpis nad polem z kodem.
Otwórz okno Output z menu Window. Czerwony tekst pokazuje skrypt i linijkę, w której jest problem.
Dodaj kolejny Part na podłodze. Ustaw Size na 8, 1, 8, włącz Anchored, zrób go niebieskim i nazwij go Upgrade.
Dodaj do Upgrade Script i wklej ten kod.
Naciśnij Play, zdobądź 25 coins i wejdź na pole. Każde kliknięcie daje teraz 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 robi każda część
Cena to Multiplier gracza razy 25, więc każde ulepszenie kosztuje więcej niż poprzednie.
Tabela waiting nie pozwala, żeby jedno długie stanie na polu kupiło wiele ulepszeń naraz.
Po zakupie Multiplier rośnie o 1.
Więcej szczegółów
Połóż płytę kilka kroków od płyty sprzedaży, żeby gracze nie kupowali przez przypadek.
Pierwsze ulepszenie kosztuje 25 coins. Po nim Coins spada o 25, a jedno kliknięcie daje 2 siły.
Gdy masz mniej coins niż cena, płyta nic nie robi. Zejdź z niej, zarób więcej i wróć.
Pauza 1 sekundy sprawia, że stanie w miejscu na płycie kupuje tylko jedno ulepszenie naraz.
Ten krok mi nie działa
Najpierw sprawdź te trzy rzeczy
Nazwa każdego klocka i skryptu jest dokładnie taka jak w poradniku, z tymi samymi wielkimi literami.
Skrypt jest w odpowiednim obiekcie. Spójrz na podpis nad polem z kodem.
Otwórz okno Output z menu Window. Czerwony tekst pokazuje skrypt i linijkę, w której jest problem.