Загрузка данных


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)