Top.Mail.Ru
Ответы
Аватар пользователя
Изменено

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

Как создать скрипт на парт, который при нажатии E он воспроизводит звук, но только для того человека который его и нажал

По дате
По Рейтингу
Аватар пользователя
Мыслитель
Изменено

Чтобы создать скрипт в Roblox на Part, который при нажатии E воспроизводит звук только для игрока, который нажал, нужно использовать:

  1. LocalScript, чтобы обрабатывать нажатие клавиши E и запускать звук локально.

  2. RemoteEvent, чтобы передать информацию с клиента на сервер и обратно (если нужно).

  3. Sound, привязанный к Part или к PlayerGui.
    Структура объектов в Explorer

    • Workspace

      • YourPart (Part, на который реагирует)

        • ClickSound (Sound)

    • ReplicatedStorage

      • PlaySoundEvent (RemoteEvent)

    • StarterPlayer

      • StarterPlayerScripts

        • SoundTriggerClient (LocalScript)
          Шаг 1: Создай RemoteEvent

          В ReplicatedStorage:

          -- Название: PlaySoundEvent (RemoteEvent)
          Шаг 2: LocalScript (в StarterPlayerScripts)

          JavaScript

          1234567891011121314151617181920212223
          local UserInputService = game:GetService("UserInputService")
          local Players = game:GetService("Players")
          local ReplicatedStorage = game:GetService("ReplicatedStorage")
          
          local player = Players.LocalPlayer
          local character = player.Character or player.CharacterAdded:Wait()
          local remoteEvent = ReplicatedStorage:WaitForChild("PlaySoundEvent")
          
          local part = workspace:WaitForChild("YourPart")
          
          -- Расстояние, на котором игрок может активировать объект
          local MAX_DISTANCE = 10
          
          UserInputService.InputBegan:Connect(function(input, gameProcessed)
          	if gameProcessed then return end
          
          	if input.KeyCode == Enum.KeyCode.E then
          		local root = character:FindFirstChild("HumanoidRootPart")
          		if root and (root.Position - part.Position).Magnitude <= MAX_DISTANCE then
          			remoteEvent:FireServer()
          		end
          	end
          end)

        • Шаг 3: Server Script (в ServerScriptService)

          JavaScript

          1234567891011121314
          local ReplicatedStorage = game:GetService("ReplicatedStorage")
          local remoteEvent = ReplicatedStorage:WaitForChild("PlaySoundEvent")
          local part = workspace:WaitForChild("YourPart")
          
          remoteEvent.OnServerEvent:Connect(function(player)
          	-- Клонируем звук и играем его ТОЛЬКО для клиента
          	local sound = part:FindFirstChild("ClickSound")
          	if sound then
          		local clone = sound:Clone()
          		clone.Parent = player:WaitForChild("PlayerGui")  -- Можно также parent в character или workspace
          		clone:Play()
          		game:GetService("Debris"):AddItem(clone, clone.TimeLength + 1)
          	end
          end)

          Шаг 4: Настройка звука

          Убедись, что у тебя в Part (YourPart) есть Sound с названием ClickSound и свойством PlayOnRemove = false.