Первым шагом будет создание скрипта на чекпоинте, который будет запускать проигрывание музыки, если этап пройден:
local checkpoint = script.Parent -- Предположим, что скрипт находится внутри объекта чекпоинта
local musicId = "rbxassetid://your-music-id" -- Замените на фактический ID вашей музыки
local function PlayMusicForPlayer(player)
local music =
Instance.new ("Sound")
music.Parent = player.PlayerGui
music.SoundId = musicId
music:Play()
-- После завершения проигрывания музыки, удаляем объект Sound
music.Ended:Connect(function()
music:Destroy()
end)
end
checkpoint.Touched:Connect(function(other)
local character = other.Parent -- Предположим, что другой объект - персонаж игрока
local player = game.Players:GetPlayerFromCharacter(character)
if player and not player:FindFirstChild("HasPassedCheckpoint") then
player:WaitForChild("PlayerGui")
PlayMusicForPlayer(player)
player:WaitForChild("HasPassedCheckpoint").Value = true
end
end)
Далее, у вас должен быть механизм для отслеживания, что игрок прошел чекпоинт и можно проигрывать музыку на следующем этапе. Создайте локальный скрипт внутри объекта игрока:
local player = game.Players.LocalPlayer
local nextCheckpoint = "Checkpoint2" -- Замените на имя следующего чекпоинта
player.CharacterAdded:Connect(function(character)
local hasPassedCheckpoint = player:WaitForChild("HasPassedCheckpoint", 10)
if hasPassedCheckpoint and not hasPassedCheckpoint.Value then
local music =
Instance.new ("Sound")
music.Parent = player.PlayerGui
music.SoundId = "rbxassetid://your-next-music-id" -- Замените на ID следующей музыки
music:Play()
hasPassedCheckpoint.Value = true
end
end)
Многое от скрипта не жди на скорую руку написал