Zaznacz Start i naciśnij Ctrl+D, żeby go skopiować. Przesuń kopię do przodu narzędziem Move (Ctrl+2).
Zmniejsz ją narzędziem Scale (Ctrl+3). Dobrze działa rozmiar 6, 1, 6.
Zostaw między platformami przerwę od 5 do 7 studs. Powtarzaj, aż będziesz mieć od 6 do 8 platform.
Podnieś niektóre platformy trochę wyżej, żeby tor wspinał się w górę.
Więcej szczegółów
Kopia pojawia się dokładnie na oryginale, więc wygląda, jakby nic się nie stało. Przeciągnij niebieską lub czerwoną strzałkę narzędzia Move, a kopia się wysunie.
Narzędziem Scale przeciągnij jedną z małych kulek na klocku, żeby zmienić jego rozmiar. Możesz też wpisać rozmiar w Properties.
Pole Position w Properties pokazuje, gdzie stoi klocek. Porównaj liczby dwóch platform, żeby zmierzyć przerwę między nimi.
Każda platforma musi mieć włączone Anchored. Kopie zakotwiczonego klocka też są zakotwiczone, więc sprawdzaj to tylko przy klockach, które zrobiłeś od nowa.
Naciśnij F5, żeby sam wypróbować skoki, a Shift+F5, żeby przerwać. Rób tak po każdych dwóch lub trzech platformach.
Wskazówka. Zwykła postać skacze na 7.2 studs w górę i pokonuje około 8 studs do przodu. Przerwy większe niż 8 studs są prawie niemożliwe do przeskoczenia.
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 nowy Part między dwiema platformami. Zrób go czerwonym, ustaw Material na Neon, włącz Anchored i nazwij go Lava.
W Explorer najedź na Lava, kliknij przycisk + i wybierz Script.
Usuń linijkę, która już tam jest, i wklej ten kod.
Lava > Script
local lava = script.Parent
lava.Touched:Connect(function(hit)
local humanoid = hit.Parent:FindFirstChildOfClass("Humanoid")
if humanoid then
humanoid.Health = 0
end
end)
Co robi każda część
script.Parent to klocek, w którym jest skrypt. Tutaj jest to lawa.
Touched uruchamia się za każdym razem, gdy coś dotknie klocka. hit to to, co go dotknęło, na przykład stopa.
hit.Parent to cała postać. Jeśli ma Humanoid, to jest to gracz, więc skrypt ustawia Health na 0.
Więcej szczegółów
Material to lista w Properties. Kliknij ją i wybierz Neon. Neon sprawia, że klocek świeci.
Gdy dodasz Script, otworzy się w nowej karcie z jedną linijką kodu. Kliknij w kodzie, naciśnij Ctrl+A, żeby zaznaczyć wszystko, i Ctrl+V, żeby wkleić na wierzch.
Wróć do swojego świata, klikając kartę z nazwą twojego miejsca.
Test: naciśnij F5 i wejdź w lawę. Twoja postać się rozpada i wraca na start.
Zrób lawę szeroką i płaską, na przykład Size 12, 1, 6, i połóż ją trochę niżej niż platformy, żeby nieudany skok kończył się w niej.
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.
W Explorer najedź na Workspace, kliknij + i dodaj Folder. Nazwij go Checkpoints.
Ustaw trzy zakotwiczone klocki wzdłuż toru i przeciągnij je do folderu. Nazwij je 1, 2 i 3. Klocek 1 stoi na platformie startowej.
Najedź na ServerScriptService, kliknij + i dodaj Script. Wklej ten kod.
ServerScriptService > Script
local Players = game:GetService("Players")
local checkpoints = workspace:WaitForChild("Checkpoints")
Players.PlayerAdded:Connect(function(player)
local stats = Instance.new("Folder")
stats.Name = "leaderstats"
stats.Parent = player
local stage = Instance.new("IntValue")
stage.Name = "Stage"
stage.Value = 1
stage.Parent = stats
player.CharacterAdded:Connect(function(character)
local root = character:WaitForChild("HumanoidRootPart")
local point = checkpoints:FindFirstChild(tostring(stage.Value))
if point then
task.wait(0.1)
root.CFrame = point.CFrame + Vector3.new(0, 4, 0)
end
end)
end)
for _, point in ipairs(checkpoints:GetChildren()) do
point.Touched:Connect(function(hit)
local player = Players:GetPlayerFromCharacter(hit.Parent)
local stats = player and player:FindFirstChild("leaderstats")
if not stats then return end
local number = tonumber(point.Name)
if number == stats.Stage.Value + 1 then
stats.Stage.Value = number
end
end)
end
Co robi każda część
leaderstats to specjalna nazwa folderu. Wartości w środku pojawiają się na liście graczy, więc każdy widzi swój Stage.
Gdy postać się pojawia, skrypt przenosi ją do punktu kontrolnego, którego nazwa jest taka sama jak Stage gracza.
Dotknięcie punktu kontrolnego podnosi Stage tylko wtedy, gdy jest to następny punkt. Dzięki temu gracze nie mogą pomijać etapów.
Więcej szczegółów
Folder trzyma inne obiekty, tak jak folder na komputerze. Sam z siebie nic nie robi w grze.
Żeby przeciągnąć klocek do folderu, przeciągnij jego nazwę w Explorer na nazwę Checkpoints i puść. Klocek stoi wtedy o jeden krok w prawo, pod folderem.
Zrób punkty kontrolne cienkie i szerokie, na przykład Size 6, 0.4, 6, i połóż je na platformach. Inny kolor pomaga graczom je zauważyć.
Test: naciśnij F5 i spójrz na listę graczy w prawym górnym rogu. Pokazuje Stage 1. Dotknij punktu kontrolnego 2, a zmieni się na 2.
Punkty kontrolne trzeba dotykać po kolei. Dotknięcie 3 przed 2 nic nie daje.
Częsty błąd. Nazwanie klocków Checkpoint1 albo Jeden. Skrypt szuka dokładnie nazw 1, 2 i 3.
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.
Postaw duży zakotwiczony klocek na końcu toru i nazwij go Finish. Zrób go złotym, żeby gracze widzieli cel.
Dodaj do Finish Script i wklej ten kod.
Finish > Script
local Players = game:GetService("Players")
local finish = script.Parent
local cooldown = {}
finish.Touched:Connect(function(hit)
local player = Players:GetPlayerFromCharacter(hit.Parent)
local stats = player and player:FindFirstChild("leaderstats")
if not stats or cooldown[player] then return end
cooldown[player] = true
stats.Stage.Value = 1
player:LoadCharacter()
task.wait(2)
cooldown[player] = nil
end)
Co robi każda część
GetPlayerFromCharacter znajduje gracza, który dotknął mety.
Tabela cooldown nie pozwala, żeby kod uruchomił się wiele razy w tej samej sekundzie.
Stage wraca do 1, a LoadCharacter wysyła gracza na start, żeby mógł przejść tor jeszcze raz.
Więcej szczegółów
Żeby była złota, kliknij pole Color w Properties i wybierz żółty. Material Neon sprawia, że błyszczy.
Size 12, 1, 12 to dobra meta. Postaw ją po ostatnim skoku, trochę wyżej niż resztę.
Test: naciśnij F5, przejdź cały tor i stań na złotym klocku. Wracasz na start, a Stage znów pokazuje 1.
Przerwa 2 sekundy jest po to, że jeden krok dotyka klocka wiele razy.
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.
Naciśnij F5, żeby zagrać. Przejdź cały tor od startu do mety.
Wpadnij do lawy specjalnie. Powinieneś wrócić do ostatniego punktu kontrolnego.
Naciśnij Shift+F5, żeby zatrzymać grę.
Otwórz okno Output z menu Window. Czerwony tekst oznacza, że skrypt ma błąd, i pokazuje numer linijki.
Więcej szczegółów
F5 uruchamia grę z twoją postacią w środku. Pasek narzędzi zmienia się, gdy gra działa.
Zmiany zrobione, gdy gra działa, przepadają po zatrzymaniu. Zawsze najpierw naciśnij Shift+F5, a potem edytuj.
W oknie Output kliknij czerwoną linijkę, a Studio otworzy skrypt w miejscu błędu.
Gdy coś nie działa, sprawdź trzy rzeczy: nazwę klocka, miejsce skryptu i to, czy Anchored jest włączone.
Częsty błąd. Platforma spada, gdy gra się zaczyna: Anchored jest wyłączone. Nic się nie dzieje po dotknięciu klocka: skrypt jest w złym obiekcie albo w nazwie jest literówka.
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.