Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Здравствуйте. Нужна помощь, роблокс студио, помощь с кодом нужна.

Никита Сычёв Знаток (433), на голосовании 1 год назад
Как сделать так, чтобы мой чекпоинт проигрывал музыку игроку(локальный скрипт), когда проходишь этап и эта музыка не повторялась снова, а могла проигрываться только на следующем этапе?
Дополнен 1 год назад
Тоесть, наступил на парт и она проигралась, потом проигралась только на следующем парте.
Нужно чтобы игрок только мог её слышать
Голосование за лучший ответ
vadim boj Ученик (105) 1 год назад
Первым шагом будет создание скрипта на чекпоинте, который будет запускать проигрывание музыки, если этап пройден:

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)

Многое от скрипта не жди на скорую руку написал
Никита СычёвЗнаток (433) 1 год назад
Спасибо Вам!!! Я очень скоро попробую его! Я и не думал, что скрипт может быть такой большой для простого проигрывания музыки на чекпоинте!
Никита СычёвЗнаток (433) 1 год назад
Я если что сам, что нужно подправлю, не волнуйтесь. Было кучу попыток сделать его самим, но безуспешно, спасибо!
Никита СычёвЗнаток (433) 1 год назад
Я, кстати, свою первую игру делаю. Банально, но я делаю обби, постараюсь сделать его необычным, примерно на 30% завершил, хочу сделать что-то, чего нет у других обби.
Похожие вопросы