From b35ffcce0b67e62032f550523ef61b4b5f4c5ef6 Mon Sep 17 00:00:00 2001 From: Jim Shield Date: Thu, 18 Aug 2022 14:14:21 +0100 Subject: [PATCH] Optimized and converted to FiveM Key Mappings --- client/client.lua | 174 ++++++++++++++++++++++++++++++++++++---------- 1 file changed, 136 insertions(+), 38 deletions(-) diff --git a/client/client.lua b/client/client.lua index bbd6a12..10b46f0 100644 --- a/client/client.lua +++ b/client/client.lua @@ -106,7 +106,138 @@ end) }, distance = 2.5, }) end)]] +RegisterKeyMapping('skategetoff', 'Skateboard: Get Off', 'keyboard', 'G') +RegisterCommand('skategetoff', function() + if IsEntityAttachedToEntity(PlayerPedId(), skateboard.Entity) then + if not IsEntityInAir(skateboard.Entity) then + DetachEntity(PlayerPedId(), false, false) + TaskVehicleTempAction(skateboard.Driver, skateboard.Entity, 1, 100) + Attached = false + StopAnimTask(PlayerPedId(), "move_strafe@stealth", "idle", 1.0) + end + end +end) + +local forward = false +RegisterKeyMapping('skateforward', 'Skateboard: Forward', 'keyboard', 'W') +RegisterCommand('+skateforward', function() + if IsEntityAttachedToEntity(PlayerPedId(), skateboard.Entity) and not overSpeed then + CreateThread(function() + if not forward then + forward = true + while forward do + TaskVehicleTempAction(skateboard.Driver, skateboard.Entity, 9, 0.1) + Wait(50) + end + else return end + end) + end +end) +RegisterCommand('-skateforward', function() + if IsEntityAttachedToEntity(PlayerPedId(), skateboard.Entity) then + forward = false + TaskVehicleTempAction(skateboard.Driver, skateboard.Entity, 1, 1) + end +end) +local backward = false +RegisterKeyMapping('+skatebackward', 'Skateboard: Backward', 'keyboard', 'S') +RegisterCommand('+skatebackward', function() + if IsEntityAttachedToEntity(PlayerPedId(), skateboard.Entity) and not overSpeed then + CreateThread(function() + if not backward then + backward = true + while backward do + TaskVehicleTempAction(skateboard.Driver, skateboard.Entity, 22, 0.1) + Wait(50) + end + else return end + end) + end +end) +RegisterCommand('-skatebackward', function() + if IsEntityAttachedToEntity(PlayerPedId(), skateboard.Entity) then + backward = false + TaskVehicleTempAction(skateboard.Driver, skateboard.Entity, 1, 1) + end +end) +local left = false +RegisterKeyMapping('+skateleft', 'Skateboard: Left', 'keyboard', 'A') +RegisterCommand('+skateleft', function() + if IsEntityAttachedToEntity(PlayerPedId(), skateboard.Entity) and not overSpeed then + CreateThread(function() + if not left then + left = true + while left do + if backward then + TaskVehicleTempAction(skateboard.Driver, skateboard.Entity, 13, 0.1) + elseif forward then + TaskVehicleTempAction(skateboard.Driver, skateboard.Entity, 7, 0.1) + else + TaskVehicleTempAction(skateboard.Driver, skateboard.Entity, 4, 0.1) + end + Wait(50) + end + else return end + end) + end +end) +RegisterCommand('-skateleft', function() + if IsEntityAttachedToEntity(PlayerPedId(), skateboard.Entity) then + left = false + end +end) + +local right = false +RegisterKeyMapping('+skateright', 'Skateboard: Right', 'keyboard', 'D') +RegisterCommand('+skateright', function() + if IsEntityAttachedToEntity(PlayerPedId(), skateboard.Entity) and not overSpeed then + CreateThread(function() + if not right then + right = true + while right do + if backward then + TaskVehicleTempAction(skateboard.Driver, skateboard.Entity, 14, 0.1) + elseif forward then + TaskVehicleTempAction(skateboard.Driver, skateboard.Entity, 8, 0.1) + else + TaskVehicleTempAction(skateboard.Driver, skateboard.Entity, 5, 0.1) + end + Wait(50) + end + else return end + end) + end +end) +RegisterCommand('-skateright', function() + if IsEntityAttachedToEntity(PlayerPedId(), skateboard.Entity) then + right = false + end +end) + +RegisterKeyMapping('skatejump', 'Skateboard: Jump', 'keyboard', 'SPACE') +RegisterCommand('skatejump', function() + if IsEntityAttachedToEntity(PlayerPedId(), skateboard.Entity) then + if not IsEntityInAir(skateboard.Entity) then + local vel = GetEntityVelocity(skateboard.Entity) + TaskPlayAnim(PlayerPedId(), "move_crouch_proto", "idle_intro", 5.0, 8.0, -1, 0, 0, false, false, false) + local duration = 0 + local boost = 0 + while IsControlPressed(0, 22) do + Wait(10) + duration = duration + 10.0 + ForceVehicleEngineAudio(skateboard.Entity, 0) + end + boost = 6.0 * duration / 250.0 + if boost > 6.0 then boost = 6.0 end + StopAnimTask(PlayerPedId(), "move_crouch_proto", "idle_intro", 1.0) + SetEntityVelocity(skateboard.Entity, vel.x, vel.y, vel.z + boost) + TaskPlayAnim(PlayerPedId(), "move_strafe@stealth", "idle", 8.0, 2.0, -1, 1, 1.0, false, false, false) + end + end +end) + local Attached = false +local overSpeed RegisterNetEvent("jim-skateboard:GetOn", function() loadAnimDict("move_strafe@stealth") loadAnimDict("move_crouch_proto") @@ -117,7 +248,6 @@ RegisterNetEvent("jim-skateboard:GetOn", function() CreateThread(function() while Attached do StopCurrentPlayingAmbientSpeech(skateboard.Driver) - local x = GetEntityRotation(skateboard.Entity).x local y = GetEntityRotation(skateboard.Entity).y if (-40.0 < x and x > 40.0) or (-40.0 < y and y > 40.0) then @@ -128,49 +258,17 @@ RegisterNetEvent("jim-skateboard:GetOn", function() SetPedToRagdoll(PlayerPedId(), 5000, 4000, 0, true, true, false) end - if IsControlJustReleased(0, 113) then DetachEntity(PlayerPedId(), false, false) end - local overSpeed = (GetEntitySpeed(skateboard.Entity)*3.6) > 90 + --if IsControlJustReleased(0, 113) then DetachEntity(PlayerPedId(), false, false) end + overSpeed = (GetEntitySpeed(skateboard.Entity)*3.6) > 90 TaskVehicleTempAction(skateboard.Driver, skateboard.Entity, 1, 1) ForceVehicleEngineAudio(skateboard.Entity, 0) - if IsControlPressed(0, 87) and not IsControlPressed(0, 88) and not overSpeed then - TaskVehicleTempAction(skateboard.Driver, skateboard.Entity, 9, 1) - end - if IsControlPressed(0, 22) then - -- Jump system - if not IsEntityInAir(skateboard.Entity) then - local vel = GetEntityVelocity(skateboard.Entity) - TaskPlayAnim(PlayerPedId(), "move_crouch_proto", "idle_intro", 5.0, 8.0, -1, 0, 0, false, false, false) - local duration = 0 - local boost = 0 - while IsControlPressed(0, 22) do - Wait(10) - duration = duration + 10.0 - ForceVehicleEngineAudio(skateboard.Entity, 0) - end - boost = 6.0 * duration / 250.0 - if boost > 6.0 then boost = 6.0 end - StopAnimTask(PlayerPedId(), "move_crouch_proto", "idle_intro", 1.0) - SetEntityVelocity(skateboard.Entity, vel.x, vel.y, vel.z + boost) - TaskPlayAnim(PlayerPedId(), "move_strafe@stealth", "idle", 8.0, 2.0, -1, 1, 1.0, false, false, false) - end - end - if IsControlJustReleased(0, 87) or IsControlJustReleased(0, 88) and not overSpeed then TaskVehicleTempAction(skateboard.Driver, skateboard.Entity, 6, 2500) end - if IsControlPressed(0, 88) and not IsControlPressed(0, 87) and not overSpeed then TaskVehicleTempAction(skateboard.Driver, skateboard.Entity, 22, 1) end - if IsControlPressed(0, 89) and IsControlPressed(0, 88) and not overSpeed then TaskVehicleTempAction(skateboard.Driver, skateboard.Entity, 13, 1) end - if IsControlPressed(0, 90) and IsControlPressed(0, 88) and not overSpeed then TaskVehicleTempAction(skateboard.Driver, skateboard.Entity, 14, 1) end - if IsControlPressed(0, 87) and IsControlPressed(0, 88) and not overSpeed then TaskVehicleTempAction(skateboard.Driver, skateboard.Entity, 30, 100) end - if IsControlPressed(0, 89) and IsControlPressed(0, 87) and not overSpeed then TaskVehicleTempAction(skateboard.Driver, skateboard.Entity, 7, 1) end - if IsControlPressed(0, 90) and IsControlPressed(0, 87) and not overSpeed then TaskVehicleTempAction(skateboard.Driver, skateboard.Entity, 8, 1) end - if IsControlPressed(0, 89) and not IsControlPressed(0, 87) and not IsControlPressed(0, 88) and not overSpeed then TaskVehicleTempAction(skateboard.Driver, skateboard.Entity, 4, 1) end - if IsControlPressed(0, 90) and not IsControlPressed(0, 87) and not IsControlPressed(0, 88) and not overSpeed then TaskVehicleTempAction(skateboard.Driver, skateboard.Entity, 5, 1) end - if not DoesEntityExist(skateboard.Entity) then Attached = false Wait(100) TaskPlayAnim(PlayerPedId(), "pickup_object", "pickup_low", 8.0, -8.0, -1, 0, 0, false, false, false) Wait(600) - AttachEntityToEntity(skateboard.Entity, PlayerPedId(), GetPedBoneIndex(PlayerPedId(), 28422), -0.1, 0.0, -0.2, 70.0, 0.0, 270.0, 1, 1, 0, 0, 2, 1) + AttachEntityToEntity(skateboard.Entity, PlayerPedId(), GetPedBoneIndex(PlayerPedId(), 28422), -0.1, 0.0, -0.2, 70.0, 0.0, 270.0, 1, 1, 0, 0, 2, 1) Wait(900) DeleteVehicle(skateboard.Entity) destroyProp(skateboard.Skate) @@ -183,7 +281,7 @@ RegisterNetEvent("jim-skateboard:GetOn", function() Attached = false StopAnimTask(PlayerPedId(), "move_strafe@stealth", "idle", 1.0) end - Wait(7) + Wait(100) end end) end) @@ -197,4 +295,4 @@ AddEventHandler('onResourceStop', function(resource) if resource ~= GetCurrentRe DeleteVehicle(skateboard.Entity) DeleteObject(skateboard.Skate) end -end) \ No newline at end of file +end)