forked from Simnation/Main
50 lines
1.4 KiB
Lua
50 lines
1.4 KiB
Lua
local isCrouching = false
|
|
local walkSet = 'default'
|
|
|
|
local function loadAnimSet(anim)
|
|
if not HasAnimSetLoaded(anim) then
|
|
RequestAnimSet(anim)
|
|
while not HasAnimSetLoaded(anim) do
|
|
Wait(10)
|
|
end
|
|
end
|
|
end
|
|
|
|
local function resetAnimSet()
|
|
local ped = PlayerPedId()
|
|
ResetPedMovementClipset(ped, 1.0)
|
|
ResetPedWeaponMovementClipset(ped)
|
|
ResetPedStrafeClipset(ped)
|
|
|
|
if walkSet ~= 'default' then
|
|
loadAnimSet(walkSet)
|
|
SetPedMovementClipset(ped, walkSet, 1.0)
|
|
RemoveAnimSet(walkSet)
|
|
end
|
|
end
|
|
|
|
RegisterNetEvent('crouchprone:client:SetWalkSet', function(clipset)
|
|
walkSet = clipset
|
|
end)
|
|
|
|
RegisterCommand('togglecrouch', function()
|
|
local ped = PlayerPedId()
|
|
if IsPedSittingInAnyVehicle(ped) or IsPedFalling(ped) or IsPedSwimming(ped) or IsPedSwimmingUnderWater(ped) or IsPauseMenuActive() then
|
|
return
|
|
end
|
|
|
|
ClearPedTasks(ped)
|
|
if isCrouching then
|
|
resetAnimSet()
|
|
SetPedStealthMovement(ped, false, 'DEFAULT_ACTION')
|
|
isCrouching = false
|
|
else
|
|
loadAnimSet('move_ped_crouched')
|
|
SetPedMovementClipset(ped, 'move_ped_crouched', 1.0)
|
|
SetPedStrafeClipset(ped, 'move_ped_crouched_strafing')
|
|
isCrouching = true
|
|
end
|
|
end, false)
|
|
|
|
-- Optional: Register a keybind so they can press CTRL (36) to toggle
|
|
RegisterKeyMapping('togglecrouch', 'Toggle Crouch', 'keyboard', 'LCONTROL')
|