Загрузка данных
local jacket = script.Parent
local isCollected = false
local userInputService = game:GetService("UserInputService")
local players = game:GetService("Players")
local function scareEvent(player)
local character = player.Character
if not character then return end
local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
local camera = workspace.CurrentCamera
if humanoidRootPart and camera then
-- Разворачиваем камеру ровно на 180 градусов назад относительно персонажа
local rootCFrame = humanoidRootPart.CFrame
-- Ставим камеру позади игрока, развернув её в противоположную сторону
camera.CFrame = rootCFrame + Vector3.new(0, 2, 0) + (rootCFrame.LookVector * -5)
end
if humanoidRootPart then
-- Звук шагов за спиной
local sound = Instance.new("Sound")
sound.SoundId = "rbxassetid://9114221327"
sound.Volume = 2
sound.Parent = humanoidRootPart
sound:Play()
sound.Ended:Connect(function()
sound:Destroy()
end)
end
end
local function showChoiceGui(player)
local playerGui = player:FindFirstChild("PlayerGui")
if not playerGui then return end
if playerGui:FindFirstChild("DetectiveChoiceGui") then return end
-- Разблокируем мышь для выбора в меню
userInputService.MouseBehavior = Enum.MouseBehavior.Default
userInputService.MouseIconEnabled = true
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "DetectiveChoiceGui"
screenGui.ResetOnSpawn = false
screenGui.Parent = playerGui
local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 400, 0, 200)
frame.Position = UDim2.new(0.5, -200, 0.5, -100)
frame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
frame.BorderSizePixel = 2
frame.BorderColor3 = Color3.fromRGB(80, 80, 80)
frame.Parent = screenGui
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, 0, 0, 60)
title.BackgroundTransparency = 1
title.TextColor3 = Color3.fromRGB(255, 255, 255)
title.TextScaled = true
title.Text = "Ты нашел куртку Джереми. Сзади послышался хруст веток... Что делаем?"
title.Parent = frame
local btnBushes = Instance.new("TextButton")
btnBushes.Size = UDim2.new(0.9, 0, 0, 45)
btnBushes.Position = UDim2.new(0.05, 0, 0.4, 0)
btnBushes.BackgroundColor3 = Color3.fromRGB(50, 150, 50)
btnBushes.TextColor3 = Color3.fromRGB(255, 255, 255)
btnBushes.TextScaled = true
btnBushes.Text = "Осмотреть кусты"
btnBushes.Parent = frame
local btnBack = Instance.new("TextButton")
btnBack.Size = UDim2.new(0.9, 0, 0, 45)
btnBack.Position = UDim2.new(0.05, 0, 0.7, 0)
btnBack.BackgroundColor3 = Color3.fromRGB(150, 50, 50)
btnBack.TextColor3 = Color3.fromRGB(255, 255, 255)
btnBack.TextScaled = true
btnBack.Text = "Вернуться к Дэвиду"
btnBack.Parent = frame
-- Функция закрытия меню и возврата управления мышей
local function closeMenu()
userInputService.MouseBehavior = Enum.MouseBehavior.LockCenter
screenGui:Destroy()
end
btnBushes.MouseButton1Click:Connect(function()
print("Игрок выбрал: осмотреть кусты!")
closeMenu()
end)
btnBack.MouseButton1Click:Connect(function()
print("Игрок выбрал: вернуться к Дэвиду.")
closeMenu()
end)
end
local function onTouch(otherPart)
local character = otherPart.Parent
local humanoid = character:FindFirstChildOfClass("Humanoid")
if humanoid and not isCollected then
isCollected = true
local player = players:GetPlayerFromCharacter(character)
if player then
scareEvent(player)
showChoiceGui(player)
end
jacket.Transparency = 1
jacket.CanTouch = false
task.wait(1)
jacket:Destroy()
end
end
jacket.Touched:Connect(onTouch)