Optimized and converted to FiveM Key Mappings

This commit is contained in:
Jim Shield
2022-08-18 14:14:21 +01:00
committed by GitHub
parent 76b5849d8b
commit b35ffcce0b

View File

@@ -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)