它那个插件似乎没有潜行啊用个插件试试
local stage = 0
local movingForward = false
local walkSet = "default"
local function RequestWalking(set)
if HasAnimSetLoaded(set) then return end
RequestAnimSet(set)
while not HasAnimSetLoaded(set) do
Wait(10)
end
end
local function ResetAnimSet()
local ped = PlayerPedId()
if walkSet == "default" then
ResetPedMovementClipset(ped, 0)
ResetPedWeaponMovementClipset(ped)
ResetPedStrafeClipset(ped)
else
ResetPedMovementClipset(ped, 0)
ResetPedWeaponMovementClipset(ped)
ResetPedStrafeClipset(ped)
Wait(100)
RequestWalking(walkSet)
SetPedMovementClipset(ped, walkSet, 1)
RemoveAnimSet(walkSet)
end
end
RegisterNetEvent('crouchprone:client:SetWalkSet', function(clipset)
walkSet = clipset
end)
CreateThread(function()
local sleep
while true do
sleep = 1000
local ped = PlayerPedId()
if not IsPedSittingInAnyVehicle(ped) and not IsPedFalling(ped) and not IsPedSwimming(ped) and not IsPedSwimmingUnderWater(ped) then
sleep = 0
if IsControlJustReleased(2, 36) then
stage += 1
if stage == 2 then
-- Crouch stuff
ClearPedTasks(ped)
RequestWalking("move_ped_crouched")
SetPedMovementClipset(ped, "move_ped_crouched",1.0)
SetPedWeaponMovementClipset(ped, "move_ped_crouched")
SetPedStrafeClipset(ped, "move_ped_crouched_strafing")
elseif stage == 3 then
ClearPedTasks(ped)
RequestWalking("move_crawl")
elseif stage > 3 then
stage = 0
ClearPedTasksImmediately(ped)
ResetAnimSet()
SetPedStealthMovement(ped, false, "DEFAULT_ACTION")
end
end
if stage == 2 then
if GetEntitySpeed(ped) > 1.0 then
SetPedWeaponMovementClipset(ped, "move_ped_crouched")
SetPedStrafeClipset(ped, "move_ped_crouched_strafing")
elseif GetEntitySpeed(ped) < 1.0 and (GetFollowPedCamViewMode() == 4 or GetFollowVehicleCamViewMode() == 4) then
ResetPedWeaponMovementClipset(ped)
ResetPedStrafeClipset(ped)
end
elseif stage == 3 then
DisableControlAction(0, 21, true ) -- sprint
DisableControlAction(1, 140, true)
DisableControlAction(1, 141, true)
DisableControlAction(1, 142, true)
if (IsControlPressed(0, 32) and not movingForward) and Config.EnableProne then
movingForward = true
SetPedMoveAnimsBlendOut(ped)
local pronepos = GetEntityCoords(ped)
TaskPlayAnimAdvanced(ped, "move_crawl", "onfront_fwd", pronepos.x, pronepos.y, pronepos.z+0.1, 0.0, 0.0, GetEntityHeading(ped), 100.0, 0.4, 1.0, 7, 2.0, 1, 1)
Wait(500)
elseif not IsControlPressed(0, 32) and movingForward then
local pronepos = GetEntityCoords(ped)
TaskPlayAnimAdvanced(ped, "move_crawl", "onfront_fwd", pronepos.x, pronepos.y, pronepos.z+0.1, 0.0, 0.0, GetEntityHeading(ped), 100.0, 0.4, 1.0, 6, 2.0, 1, 1)
Wait(500)
movingForward = false
end
if IsControlPressed(0, 34) then
SetEntityHeading(ped,GetEntityHeading(ped) + 1)
end
if IsControlPressed(0, 9) then
SetEntityHeading(ped,GetEntityHeading(ped) - 1)
end
end
else
stage = 0
end
Wait(sleep)
end
end)
感谢qb-smallresources/client/crouchprone.lua中包含了这个功能,我把我的放在下边,你看看你和我的文件的差别:
Lua:local stage = 0 local movingForward = false local walkSet = "default" local function RequestWalking(set) if HasAnimSetLoaded(set) then return end RequestAnimSet(set) while not HasAnimSetLoaded(set) do Wait(10) end end local function ResetAnimSet() local ped = PlayerPedId() if walkSet == "default" then ResetPedMovementClipset(ped, 0) ResetPedWeaponMovementClipset(ped) ResetPedStrafeClipset(ped) else ResetPedMovementClipset(ped, 0) ResetPedWeaponMovementClipset(ped) ResetPedStrafeClipset(ped) Wait(100) RequestWalking(walkSet) SetPedMovementClipset(ped, walkSet, 1) RemoveAnimSet(walkSet) end end RegisterNetEvent('crouchprone:client:SetWalkSet', function(clipset) walkSet = clipset end) CreateThread(function() local sleep while true do sleep = 1000 local ped = PlayerPedId() if not IsPedSittingInAnyVehicle(ped) and not IsPedFalling(ped) and not IsPedSwimming(ped) and not IsPedSwimmingUnderWater(ped) then sleep = 0 if IsControlJustReleased(2, 36) then stage += 1 if stage == 2 then -- Crouch stuff ClearPedTasks(ped) RequestWalking("move_ped_crouched") SetPedMovementClipset(ped, "move_ped_crouched",1.0) SetPedWeaponMovementClipset(ped, "move_ped_crouched") SetPedStrafeClipset(ped, "move_ped_crouched_strafing") elseif stage == 3 then ClearPedTasks(ped) RequestWalking("move_crawl") elseif stage > 3 then stage = 0 ClearPedTasksImmediately(ped) ResetAnimSet() SetPedStealthMovement(ped, false, "DEFAULT_ACTION") end end if stage == 2 then if GetEntitySpeed(ped) > 1.0 then SetPedWeaponMovementClipset(ped, "move_ped_crouched") SetPedStrafeClipset(ped, "move_ped_crouched_strafing") elseif GetEntitySpeed(ped) < 1.0 and (GetFollowPedCamViewMode() == 4 or GetFollowVehicleCamViewMode() == 4) then ResetPedWeaponMovementClipset(ped) ResetPedStrafeClipset(ped) end elseif stage == 3 then DisableControlAction(0, 21, true ) -- sprint DisableControlAction(1, 140, true) DisableControlAction(1, 141, true) DisableControlAction(1, 142, true) if (IsControlPressed(0, 32) and not movingForward) and Config.EnableProne then movingForward = true SetPedMoveAnimsBlendOut(ped) local pronepos = GetEntityCoords(ped) TaskPlayAnimAdvanced(ped, "move_crawl", "onfront_fwd", pronepos.x, pronepos.y, pronepos.z+0.1, 0.0, 0.0, GetEntityHeading(ped), 100.0, 0.4, 1.0, 7, 2.0, 1, 1) Wait(500) elseif not IsControlPressed(0, 32) and movingForward then local pronepos = GetEntityCoords(ped) TaskPlayAnimAdvanced(ped, "move_crawl", "onfront_fwd", pronepos.x, pronepos.y, pronepos.z+0.1, 0.0, 0.0, GetEntityHeading(ped), 100.0, 0.4, 1.0, 6, 2.0, 1, 1) Wait(500) movingForward = false end if IsControlPressed(0, 34) then SetEntityHeading(ped,GetEntityHeading(ped) + 1) end if IsControlPressed(0, 9) then SetEntityHeading(ped,GetEntityHeading(ped) - 1) end end else stage = 0 end Wait(sleep) end end)