-- Example of rotating a vehicle 360 degrees
RegisterCommand('360', function()
local playerPed = PlayerPedId() -- Get the player's Ped
local vehicle = GetVehiclePedIsIn(playerPed, false) -- Get the vehicle the player is currently in.
if not vehicle or not DoesEntityExist(vehicle) then
print("You are not in a vehicle")
return
end
local rot = GetEntityRotation(vehicle, 2)
local roll, pitch, yaw = rot.x, rot.y, rot.z
local finalYaw = yaw + 360
local steps = 20 -- Reduced the number of steps so each rotation is larger
-- Function to perform the rotation gradually
local function doRotation()
local currentYaw = yaw
-- Loop to adjust the rotation in steps
for i = 1, steps do
Citizen.Wait(20) -- Increases the delay between each adjustment to make the animation slower
currentYaw = currentYaw + (360 / steps) -- Increments the rotation
if currentYaw >= finalYaw then
currentYaw = finalYaw
end
-- Apply the current rotation
SetEntityRotation(vehicle, roll, pitch, currentYaw % 360, 2, true)
if currentYaw == finalYaw then
break -- Stops the loop once the rotation is complete
end
end
end
-- Execute the rotation in a coroutine to not block the main thread
Citizen.CreateThread(doRotation)
end, false)