Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+1

Помогите хочу сделать скрипт в roblox studio

хочу сделать чтобы появилась первая платформа после того как наступишь на нее появится ещё одна а прошлая удалится но создаётся только первая платформа скажите что добавить чтобы скрипт работал

-- Параметры для создания платформ
local platformHeight = 10 -- Высота каждой платформы
local platformSpacing = 15 -- Вертикальное расстояние между платформами

-- Создаем список для хранения платформ
local platforms = {}

-- Получаем базовую платформу (baseplate), на которой будем создавать платформы
local baseplate = game.Workspace.Baseplate

-- Функция для создания новой платформы
local function createPlatform()
local platform = Instance.new ("Part")
platform.Size = Vector3.new (10, 1, 10) -- Устанавливаем размер платформы

-- Рандомно устанавливаем позицию платформы
local randomX = math.random(-50, 50) -- Случайная позиция по X
local randomZ = math.random(-50, 50) -- Случайная позиция по Z
platform.Position = Vector3.new (randomX, baseplate.Size.Y, randomZ)

platform.Anchored = true -- Закрепляем платформу, чтобы она не падала
platform.Parent = baseplate -- Устанавливаем родителя для платформы (baseplate)

-- Настраиваем внешний вид платформы (по желанию)
platform.BrickColor = BrickColor.new ("Bright blue")
platform.Material = Enum.Material.SmoothPlastic

return platform
end

-- Создаем первую платформу
local currentPlatform = createPlatform()
table.insert(platforms, currentPlatform)

-- Бесконечный цикл для обработки движения персонажа
while true do
local character = game.Players.LocalPlayer.Character
local humanoid = character:FindFirstChild("Humanoid")

if humanoid then
-- Если персонаж наступил на текущую платформу, создаем следующую
if humanoid:GetState() == Enum.HumanoidStateType.Freefall and humanoid:GetState() ~= Enum.HumanoidStateType.Seated then
local nextPlatform = createPlatform()
table.insert(platforms, nextPlatform)

-- Удаляем предыдущую платформу (если есть)
if #platforms > 1 then
local previousPlatform = table.remove(platforms, 1)
previousPlatform:Destroy()
end
end
end

wait(0.1) -- Ждем некоторое время перед следующей проверкой
end

По дате
По рейтингу
Аватар пользователя
Новичок
12345678910111213141516171819202122
 -- Бесконечный цикл для обработки движения персонажа  
while true do  
    local character = game.Players.LocalPlayer.Character  
    local humanoid = character:FindFirstChild("Humanoid")  
 
    if humanoid then  
        -- Если персонаж наступил на текущую платформу, создаем следующую  
        if humanoid:GetState() == Enum.HumanoidStateType.Landed then  
            local nextPlatform = createPlatform()  
            table.insert(platforms, nextPlatform)  
 
            -- Удаляем предыдущую платформу (если есть)  
            if #platforms > 1 then  
                local previousPlatform = table.remove(platforms, 1)  
                previousPlatform:Destroy()  
            end  
        end  
    end  
 
    wait(0.1)  -- Ждем некоторое время перед следующей проверкой  
end 
 
Аватар пользователя
Ученик

Я плохо понял но давай так:



Добавьте следующий код перед циклом while true do:

local character = game.Players.LocalPlayer.Character
local humanoid = character:FindFirstChild("Humanoid")


Этот код получает игрока и гуманоида, что позволит вам проверить, находится ли игрок в состоянии свободного падения, как указано в if humanoid:GetState() == Enum.HumanoidStateType.Freefall.

Аватар пользователя
Мыслитель

много хочешь