hey I’m trying to make a script to ragdoll when pressing space twice. Currently whenever I press Space my player just ragdolls immediately I want it to get a little into the jump before falling face first. Any idea?
This is what I’ve got so far on client.lua. I’ve been messing with a tackle script trying to get it to do what I need.
Using ESX extended
local TackleKey = 51 -- Change to a number which can be found here: https://wiki.fivem.net/wiki/Controls
local TackleTime = 1500 -- In milliseconds
local key = 22 -- INPUT_JUMP (SPACE)
function DoublePressed()
print("double pressed")
end
Citizen.CreateThread(function()
while true do
Citizen.Wait(0)
if (IsControlJustReleased(0, key)) then
local pressedAgain = false
local timer = GetGameTimer()
while true do
Citizen.Wait(32)
if (IsControlJustPressed(0, key)) then
pressedAgain = true
break
end
if (GetGameTimer() - timer >= 100) then
break
end
end
if (pressedAgain) then
DoublePressed()
end
end
end
end)
Citizen.CreateThread(function()
while true do
Citizen.Wait(0)
if IsPedJumping(PlayerPedId()) and DoublePressed then
if IsPedInAnyVehicle(PlayerPedId()) then
TriggerEvent('chatMessage', 'Tackle', {255, 255, 255}, 'You cannot tackle someone in a vehicle')
else
local ForwardVector = GetEntityForwardVector(PlayerPedId())
local Tackled = {}
SetPedToRagdollWithFall(PlayerPedId(), 1500, 2000, 0, ForwardVector, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
while IsPedRagdoll(PlayerPedId()) do
Citizen.Wait(0)
for Key, Value in ipairs(GetTouchedPlayers()) do
if not Tackled[Value] then
Tackled[Value] = true
TriggerServerEvent('Tackle:Server:TacklePlayer', GetPlayerServerId(Value), ForwardVector.x, ForwardVector.y, ForwardVector.z, GetPlayerName(PlayerId()))
end
end
end
end
end
end
end)
RegisterNetEvent('Tackle:Client:TacklePlayer')
AddEventHandler('Tackle:Client:TacklePlayer', function(ForwardVectorX, ForwardVectorY, ForwardVectorZ, Tackler)
TriggerEvent('chatMessage', 'Tackle', {255, 0, 0}, Tackler .. ' tackled you!')
SetPedToRagdollWithFall(PlayerPedId(), TackleTime, TackleTime, 0, ForwardVectorX, ForwardVectorY, ForwardVectorZ, 10.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
end)
function GetPlayers()
local Players = {}
for i = 0, 31 do
if NetworkIsPlayerActive(i) then
table.insert(Players, i)
end
end
return Players
end
function GetTouchedPlayers()
local TouchedPlayer = {}
for Key, Value in ipairs(GetPlayers()) do
if IsEntityTouchingEntity(PlayerPedId(), GetPlayerPed(Value)) then
table.insert(TouchedPlayer, Value)
end
end
return TouchedPlayer
end