monitor/resource/menu/vendor/freecam/config.lua
2025-04-16 22:30:27 +07:00

113 lines
3.7 KiB
Lua

local CTRL_MOUSE_LR, CTRL_MOUSE_UD, CTRL_SLOW, CTRL_FAST, CTRL_FRONT_BACK, CTRL_LEFT_RIGHT, CTRL_GO_UP, CTRL_GO_DOWN, CTRL_RIGHT_TRIGGER, CTRL_LEFT_TRIGGER
if IS_FIVEM then
CTRL_MOUSE_LR = 1 -- INPUT_LOOK_LR
CTRL_MOUSE_UD = 2 -- INPUT_LOOK_UD
CTRL_SLOW = 19 -- INPUT_CHARACTER_WHEEL
CTRL_FAST = 21 -- INPUT_SPRINT
CTRL_GO_UP = 152 -- INPUT_PARACHUTE_BRAKE_LEFT
CTRL_GO_DOWN = 153 -- INPUT_PARACHUTE_BRAKE_RIGHT
CTRL_FRONT_BACK = 31 -- INPUT_MOVE_UD
CTRL_LEFT_RIGHT = 30 -- INPUT_MOVE_LR
CTRL_RIGHT_TRIGGER = 71 -- INPUT_VEH_ACCELERATE
CTRL_LEFT_TRIGGER = 72 -- INPUT_VEH_BRAKE
else
CTRL_MOUSE_LR = 0xA987235F -- INPUT_LOOK_LR
CTRL_MOUSE_UD = 0xD2047988 -- INPUT_LOOK_UD
CTRL_SLOW = 0x580C4473 -- INPUT_HUD_SPECIAL
CTRL_FAST = 0x8FFC75D6 -- INPUT_SPRINT
CTRL_GO_UP = 0x06052D11 -- INPUT_DIVE
CTRL_GO_DOWN = 0xD51B784F -- INPUT_CONTEXT_Y
CTRL_FRONT_BACK = 0xFDA83190 -- INPUT_MOVE_UD
CTRL_LEFT_RIGHT = 0x4D8FB4C1 -- INPUT_MOVE_LR
CTRL_RIGHT_TRIGGER = 0x5B9FD4E2 -- INPUT_VEH_ACCELERATE
CTRL_LEFT_TRIGGER = 0x6E1F639B -- INPUT_VEH_BRAKE
end
--------------------------------------------------------------------------------
local BASE_CONTROL_MAPPING = protect({
-- Rotation
LOOK_X = CTRL_MOUSE_LR,
LOOK_Y = CTRL_MOUSE_UD,
-- Position
MOVE_X = CTRL_LEFT_RIGHT,
MOVE_Y = CTRL_FRONT_BACK,
MOVE_Z = { CTRL_GO_UP, CTRL_GO_DOWN },
-- Multiplier
MOVE_FAST = CTRL_FAST,
MOVE_SLOW = CTRL_SLOW
})
--------------------------------------------------------------------------------
local BASE_CONTROL_SETTINGS = protect({
-- Rotation
LOOK_SENSITIVITY_X = 5,
LOOK_SENSITIVITY_Y = 5,
-- Position
BASE_MOVE_MULTIPLIER = 0.85,
FAST_MOVE_MULTIPLIER = 6,
SLOW_MOVE_MULTIPLIER = 6,
})
--------------------------------------------------------------------------------
local BASE_CAMERA_SETTINGS = protect({
--Camera
FOV = 50.0,
-- On enable/disable
ENABLE_EASING = true,
EASING_DURATION = 250,
-- Keep position/rotation
KEEP_POSITION = false,
KEEP_ROTATION = false
})
--------------------------------------------------------------------------------
_G.KEYBOARD_CONTROL_MAPPING = table.copy(BASE_CONTROL_MAPPING)
_G.GAMEPAD_CONTROL_MAPPING = table.copy(BASE_CONTROL_MAPPING)
-- Swap up/down movement (LB for down, RB for up)
_G.GAMEPAD_CONTROL_MAPPING.MOVE_Z[1] = CTRL_GO_UP
_G.GAMEPAD_CONTROL_MAPPING.MOVE_Z[2] = CTRL_GO_DOWN
-- Use LT and RT for speed
_G.GAMEPAD_CONTROL_MAPPING.MOVE_FAST = CTRL_RIGHT_TRIGGER
_G.GAMEPAD_CONTROL_MAPPING.MOVE_SLOW = CTRL_LEFT_TRIGGER
protect(_G.KEYBOARD_CONTROL_MAPPING)
protect(_G.GAMEPAD_CONTROL_MAPPING)
--------------------------------------------------------------------------------
_G.KEYBOARD_CONTROL_SETTINGS = table.copy(BASE_CONTROL_SETTINGS)
_G.GAMEPAD_CONTROL_SETTINGS = table.copy(BASE_CONTROL_SETTINGS)
-- Gamepad sensitivity can be reduced by BASE.
_G.GAMEPAD_CONTROL_SETTINGS.LOOK_SENSITIVITY_X = 2
_G.GAMEPAD_CONTROL_SETTINGS.LOOK_SENSITIVITY_Y = 2
protect(_G.KEYBOARD_CONTROL_SETTINGS)
protect(_G.GAMEPAD_CONTROL_SETTINGS)
--------------------------------------------------------------------------------
_G.CAMERA_SETTINGS = table.copy(BASE_CAMERA_SETTINGS)
protect(_G.CAMERA_SETTINGS)
--------------------------------------------------------------------------------
-- Create some convenient variables.
-- Allows us to access controls and config without a gamepad switch.
_G.CONTROL_MAPPING = CreateGamepadMetatable(_G.KEYBOARD_CONTROL_MAPPING, _G.GAMEPAD_CONTROL_MAPPING)
_G.CONTROL_SETTINGS = CreateGamepadMetatable(_G.KEYBOARD_CONTROL_SETTINGS, _G.GAMEPAD_CONTROL_SETTINGS)