Загрузка данных
-- ⚙️ НАСТРОЙКИ -- ⚙️ НАСТРОЙКИ -- ⚙️ НАСТРОЙКИ -- ⚙️ НАСТРОЙКИ -- ⚙️ НАСТРОЙКИ -- ⚙️ НАСТРОЙКИ -- ⚙️ НАСТРОЙКИ -- ⚙️ НАСТРОЙКИ -- ⚙️ НАСТРОЙКИ
-- ⚙️ НАСТРОЙКИ -- ⚙️ НАСТРОЙКИ -- ⚙️ НАСТРОЙКИ -- ⚙️ НАСТРОЙКИ -- ⚙️ НАСТРОЙКИ -- ⚙️ НАСТРОЙКИ -- ⚙️ НАСТРОЙКИ -- ⚙️ НАСТРОЙКИ -- ⚙️ НАСТРОЙКИ
local sensitivity_pc = 0.8 -- Чуствительность камеры на пк
local sensitivity_mobile = 1.5 -- Чуствительность камеры на телефонах
local first_person_key = Enum.KeyCode.F -- На какую клавишу будет 3 лицо и 1 лицо, открываться/закрываться
-- (ПОСТАВЬТЕ ТУТ ПРОСТО "local first_person_key = 0" ЕСЛИ ХОТИТЕ УБРАТЬ ВОЗМОЖНОСТЬ ПЕРЕКЛЮЧЕИЯ КАМЕРЫ!)
local head_hig = 1.2 -- Высота камеры над головой
local forw_offset = 1.2 -- дальность камеры впереди головы
local max_angl = math.rad(80) -- До скольки можно поворачивать камеру градусов максимум
local mouse_cursor = false -- Будет ли виден курсор на экране (ПК) true - да, false - нет
local smoth = 0.15 -- Насколько будет сглаживание камеры при повороте
-- ⚙️ НАСТРОЙКИ -- ⚙️ НАСТРОЙКИ -- ⚙️ НАСТРОЙКИ -- ⚙️ НАСТРОЙКИ -- ⚙️ НАСТРОЙКИ -- ⚙️ НАСТРОЙКИ -- ⚙️ НАСТРОЙКИ -- ⚙️ НАСТРОЙКИ -- ⚙️ НАСТРОЙКИ
-- ⚙️ НАСТРОЙКИ -- ⚙️ НАСТРОЙКИ -- ⚙️ НАСТРОЙКИ -- ⚙️ НАСТРОЙКИ -- ⚙️ НАСТРОЙКИ -- ⚙️ НАСТРОЙКИ -- ⚙️ НАСТРОЙКИ -- ⚙️ НАСТРОЙКИ -- ⚙️ НАСТРОЙКИ
-- РАЗБЛОКАТЬ МЫШКУ НА ПКМ!!
-- крейес.
local cur_pit = 0
local cu_ya = 0
local targ_pic = 0
local targ_ya = 0
local drag_cam = false
local last_tou = Vector2.new(0, 0)
local fir_pes = true
local dis_3 = 8
local thirdPersonHeight = 2
local uis = game:GetService("UserInputService")
local player = game.Players.LocalPlayer
local camera = workspace.CurrentCamera
local he_of = Vector3.new(0, 0.5, 0)
local hide_parts = {}
local sensa = uis.TouchEnabled and sensitivity_mobile or sensitivity_pc
local function hideHeadAndAccessories(character)
local head = character:FindFirstChild("Head")
if head then
head.LocalTransparencyModifier = 1
table.insert(hide_parts, head)
local face = head:FindFirstChild("face")
if face and face:IsA("Decal") then
face.Transparency = 1
table.insert(hide_parts, face)
end
end
for _, accessory in character:GetDescendants() do
if accessory:IsA("Accessory") then
local handle = accessory:FindFirstChild("Handle")
if handle then
local weld = handle:FindFirstChildOfClass("Weld") or handle:FindFirstChildOfClass("WeldConstraint") or handle:FindFirstChildOfClass("Motor6D")
if weld then
local part0 = weld.Part0
local part1 = weld.Part1
if (part0 and part0.Name == "Head") or (part1 and part1.Name == "Head") then
handle.LocalTransparencyModifier = 1
table.insert(hide_parts, handle)
end
end
end
end
end
end
-- КРЕЙЕС
local function showHeadAndAccessories()
for _, part in hide_parts do
if part and part.Parent then
if part:IsA("Decal") then
part.Transparency = 0
else
part.LocalTransparencyModifier = 0
end
end
end
hide_parts = {}
end
local function update_cam()
local chara = player.Character
if not chara then return end
local head = chara:FindFirstChild("Head")
if not head then return end
local hrp = chara:FindFirstChild("HumanoidRootPart")
if not hrp then return end
cu_ya = cu_ya + (targ_ya - cu_ya) * smoth
cur_pit = cur_pit + (targ_pic - cur_pit) * smoth
local chara_frame = hrp.CFrame
local chara_pos1 = chara_frame.Position
local yar = CFrame.Angles(0, cu_ya, 0)
local pir = CFrame.Angles(cur_pit, 0, 0)
local cam_rot = yar * pir
if fir_pes then
local chara_forward = Vector3.new(chara_frame.LookVector.X, 0, chara_frame.LookVector.Z).Unit
local cam_poss = chara_pos1 + Vector3.new(0, head_hig, 0) + (chara_forward * forw_offset)
camera.CFrame = CFrame.new(cam_poss) * cam_rot
local lookDirection = cam_rot.LookVector
local lok_do = Vector3.new(lookDirection.X, 0, lookDirection.Z).Unit
if lok_do.Magnitude > 0 then
hrp.CFrame = CFrame.lookAt(chara_pos1, chara_pos1 + lok_do)
end
else
local cameraOffset = cam_rot.LookVector * -dis_3 + Vector3.new(0, thirdPersonHeight, 0)
local cam_poss = chara_pos1 + cameraOffset
camera.CFrame = CFrame.lookAt(cam_poss, chara_pos1 + Vector3.new(0, 2, 0))
end
end
local function toggleViewMode()
local chara = player.Character
if not chara then return end
fir_pes = not fir_pes
if fir_pes then
hideHeadAndAccessories(chara)
camera.FieldOfView = 70
else
showHeadAndAccessories()
camera.FieldOfView = 60
end
end
local function setupCamera(character)
camera.CameraType = Enum.CameraType.Scriptable
camera.FieldOfView = 70
uis.MouseIconEnabled = mouse_cursor
-- by kreyes
hideHeadAndAccessories(character)
if uis.TouchEnabled == true then
local playerGui = player:WaitForChild("PlayerGui")
local buttonGui = Instance.new("ScreenGui")
buttonGui.Name = "MobileViewToggle"
buttonGui.ResetOnSpawn = false
buttonGui.Parent = playerGui
local tog_but = Instance.new("TextButton")
tog_but.Name = "ToggleButton"
tog_but.Size = UDim2.new(0, 30, 0, 30)
tog_but.Position = UDim2.new(0, 20, 0, 20)
tog_but.BackgroundColor3 = Color3.new(0.2, 0.2, 0.2)
tog_but.BackgroundTransparency = 0.3
tog_but.BorderSizePixel = 0
tog_but.Text = "1"
tog_but.TextColor3 = Color3.new(1, 1, 1)
tog_but.TextScaled = true
tog_but.Parent = buttonGui
if first_person_key == 0 then
tog_but.Visible =false
end
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 10)
corner.Parent = tog_but
local strok = Instance.new("UIStroke")
strok.Color = Color3.new(0.5, 0.5, 0.5)
strok.Thickness = 2
strok.Parent = tog_but
tog_but.MouseButton1Click:Connect(function()
toggleViewMode()
tog_but.Text = fir_pes and "1" or "3"
end)
end
update_cam()
end
-- чо смотришь?
local function onCharacterAdded(character)
local head = character:WaitForChild("Head")
local hrp = character:WaitForChild("HumanoidRootPart")
cur_pit = 0
cu_ya = 0
targ_pic = 0
targ_ya = 0 -- by крeyеc
setupCamera(character)
uis.MouseBehavior = Enum.MouseBehavior.LockCurrentPosition
end
uis.InputChanged:Connect(function(input, gameProcessed)
if gameProcessed then return end
if input.UserInputType == Enum.UserInputType.MouseMovement then
local delta = input.Delta
targ_ya = targ_ya - delta.X * sensa * 0.005
targ_pic = targ_pic - delta.Y * sensa * 0.005
targ_pic = math.clamp(targ_pic, -max_angl, max_angl)
elseif input.UserInputType == Enum.UserInputType.Touch and drag_cam then
local currentPosition = Vector2.new(input.Position.X, input.Position.Y)
local delta = currentPosition - last_tou
last_tou = currentPosition
targ_ya = targ_ya - delta.X * sensa * 0.005
targ_pic = targ_pic - delta.Y * sensa * 0.005
targ_pic = math.clamp(targ_pic, -max_angl, max_angl)
end
end)
-- от кpeйеca
uis.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
if input.UserInputType == Enum.UserInputType.MouseButton2 then
if uis.MouseBehavior == Enum.MouseBehavior.LockCurrentPosition then
uis.MouseBehavior = Enum.MouseBehavior.Default
else
uis.MouseBehavior = Enum.MouseBehavior.LockCurrentPosition
end
elseif input.UserInputType == Enum.UserInputType.Touch then
drag_cam = true
last_tou = Vector2.new(input.Position.X, input.Position.Y)
elseif input.KeyCode == first_person_key and first_person_key ~= 0 then
toggleViewMode()
end
end)
uis.InputEnded:Connect(function(input, gameProcessed)
if gameProcessed then
else
if input.UserInputType == Enum.UserInputType.Touch then
drag_cam = false
end
end
end)
game:GetService("RunService").RenderStepped:Connect(function()
update_cam()
end) -- канал KPЕйeс
if player.Character then
onCharacterAdded(player.Character)
end
player.CharacterAdded:Connect(onCharacterAdded)
player.AncestryChanged:Connect(function()
if not player.Parent then
showHeadAndAccessories()
uis.MouseBehavior = Enum.MouseBehavior.Default
end
end)