mirror of
https://github.com/jimathy/jim-boarding.git
synced 2026-03-31 06:33:43 -04:00
Optimized and converted to FiveM Key Mappings
This commit is contained in:
@@ -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)
|
||||
end)
|
||||
|
||||
Reference in New Issue
Block a user