Как сделать чекпоинт в Роблокс Студио

Чекпоинт в Роблокс Студио можно сделать из обычного блока Part, к которому необходимо будет привязать скрипт с кодом (скопируйте чуть ниже).

Пошаговая инструкция

1. Активируйте окно Explorer во вкладке VIEW

Как сделать чекпоинт в Роблокс Студио

2. Прейдите на вкладку HOME, создайте Part и растяните его при необходимости с помощью инструмента Scale

Как сделать чекпоинт в Роблокс Студио

3. В окне Explorer найдите созданный Part и нажмите на + что бы добавить к нему Script

Как сделать чекпоинт в Роблокс Студио

4. Пропишите в файле Script следующий код

local spawn = script.Parent
spawn.Touched:connect(function(hit)
if hit and hit.Parent and hit.Parent:FindFirstChild("Humanoid") then
local player = game.Players:GetPlayerFromCharacter(hit.Parent)
local checkpointData = game.ServerStorage:FindFirstChild("CheckpointData")
if not checkpointData then
checkpointData = Instance.new("Model", game.ServerStorage)
checkpointData.Name = "CheckpointData"
end
local checkpoint = checkpointData:FindFirstChild(tostring(player.userId))
if not checkpoint then
checkpoint = Instance.new("ObjectValue", checkpointData)
checkpoint.Name = tostring(player.userId)
player.CharacterAdded:connect(function(character)
wait()
character:WaitForChild("HumanoidRootPart").CFrame = game.ServerStorage.CheckpointData[tostring(player.userId)].Value.CFrame + Vector3.new(0, 4, 0)
end)
end
checkpoint.Value = spawn
end
end)

Как сделать чекпоинт в Роблокс Студио

Теперь как только вы наступите на блок активируется чекпоинт и после смерти вы будите возрождены на нем.

Как работает код

Этот скрипт написан на языке Lua и предназначен для использования в игровом движке Roblox. Его цель — создание системы контрольных точек (чекпоинтов) для игроков. Вот как он работает:

  1. Инициализация:
    • local spawn = script.Parent — задает переменную spawn как родительский объект для этого скрипта (предположительно, это контрольная точка).
  2. Обработка столкновений:
    • spawn.Touched:connect(function(hit) — подключает функцию к событию Touched объекта spawn . Эта функция будет вызываться при касании игроком этой точки.
    • Внутри функции проверяется, является ли объект, коснувшийся точки, персонажем игрока: if hit and hit.Parent and hit.Parent:FindFirstChild("Humanoid") then .
  3. Получение игрока и создание хранилища данных чекпоинтов:
    • local player = game.Players:GetPlayerFromCharacter(hit.Parent) — определяет игрока, чей персонаж коснулся контрольной точки.
    • local checkpointData = game.ServerStorage:FindFirstChild("CheckpointData") — ищет модель CheckpointData в ServerStorage . Если модель не найдена, создается новая модель: checkpointData = Instance.new("Model", game.ServerStorage) , и ей присваивается имя CheckpointData .
  4. Создание и обновление чекпоинта для игрока:
    • local checkpoint = checkpointData:FindFirstChild(tostring(player.userId)) — проверяет, есть ли уже сохраненный чекпоинт для данного игрока.
    • Если чекпоинт не найден, создается новый объект ObjectValue для хранения чекпоинта игрока.
    • Подписывается на событие CharacterAdded игрока, чтобы переместить его персонажа к сохраненному чекпоинту при возрождении: player.CharacterAdded:connect(function(character) .
    • Обновляется значение чекпоинта на текущую контрольную точку checkpoint.Value = spawn .

Таким образом, этот скрипт позволяет игрокам сохранять свои позиции в игре, и при возрождении их персонажи будут телепортированы к последней сохраненной контрольной точке.

Видео инструкция