Ошибка в том, что скрипт пытается получить доступ к `Character` игрока до того, как он полностью загружен. Исправить это можно, добавив событие, которое будет ждать полной загрузки персонажа. Вот как это сделать:
-- Infinite loop to handle character movement
while true do
local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:FindFirstChild("Humanoid")
if humanoid then
-- Тут оставляем всё без изменений
end
wait(0.1) -- Wait for some time before the next check
end
Здесь мы добавили `player.Character or player.CharacterAdded:Wait()`, чтобы дождаться, когда персонаж игрока загрузится, прежде чем продолжить выполнение скрипта.
-- Parameters for creating platforms
local platformHeight = 10
local platformSpacing = 15
-- Create a list to store platforms
local platforms = {}
-- Get the baseplate where we will create platforms
local baseplate = game.Workspace.Baseplate
-- Function to create a new platform
local function createPlatform()
local platform = Instance.new ("Part")
platform.Size = Vector3.new (10, 1, 10)
-- Randomly set the position of the platform
local randomX = math.random(-50, 50)
local randomZ = math.random(-50, 50)
platform.Position = Vector3.new (randomX, baseplate.Size.Y, randomZ)
platform.Anchored = true
platform.Parent = baseplate
-- Customize the appearance of the platform (optional)
platform.BrickColor = BrickColor.new ("Bright blue")
platform.Material = Enum.Material.SmoothPlastic
return platform
end
-- Create the first platform
local currentPlatform = createPlatform()
table.insert(platforms, currentPlatform)
-- Infinite loop to handle character movement
while true do
local character = game.Players.LocalPlayer.Character
local humanoid = character:FindFirstChild("Humanoid")
if humanoid then
-- If the character is in freefall state, create the next platform
if humanoid:GetState() == Enum.HumanoidStateType.Freefall and humanoid:GetState() ~= Enum.HumanoidStateType.Seated then
local nextPlatform = createPlatform()
table.insert(platforms, nextPlatform)
-- Remove the previous platform (if any)
if #platforms > 1 then
local previousPlatform = table.remove(platforms, 1)
previousPlatform:Destroy()
end
end
end
wait(0.1) -- Wait for some time before the next check
end