OnUnoccupiedVehicleUpdate
Description:
Callback OnUnoccupiedVehicleUpdate is called when a player's client updates/syncs the position of a vehicle they're not driving. This can happen outside of the vehicle or when the player is a passenger of a vehicle that has no driver.
Known Bug(s): This public is not called for trains. |
Callback OnUnoccupiedVehicleUpdate was added in 0.3c R3 and will not work in earlier versions! |
|
Parameters:
(vehicleid, playerid, passenger_seat, Float:new_x, Float:new_y, Float:new_z, Float:vel_x, Float:vel_y, Float:vel_z)
int | vehicleid | The ID of the vehicle that's position was updated. |
int | playerid | The ID of the player that sent a vehicle position sync update. |
int | passenger_seat | The ID of the seat if the player is a passenger. |
float | new_x | The new X coordinate of the vehicle. This parameter was added in 0.3z. Leave it out if using an earlier version. |
float | new_y | The new Y coordinate of the vehicle. This parameter was added in 0.3z. Leave it out if using an earlier version. |
float | new_z | The new Z coordinate of the vehicle. This parameter was added in 0.3z. Leave it out if using an earlier version. |
float | vel_x | The new X velocity of the vehicle. This parameter was added in 0.3z R4. Leave it out if using an earlier version. |
float | vel_y | The new Y velocity of the vehicle. This parameter was added in 0.3z R4. Leave it out if using an earlier version. |
float | vel_z | The new Z velocity of the vehicle. This parameter was added in 0.3z R4. Leave it out if using an earlier version. |
Passenger seat: 0 = not in vehicle, 1 = front passenger, 2 = backleft, 3 = backright, 4+ is for coach/bus etc. with many passenger seats.
Return Values:
Returning 0 in this callback will stop the vehicle's position being synced to other players. Update is still sent to the updating player. Useful for combating vehicle teleport hacks.
- It is always called first in filterscripts so returning 0 there also blocks other scripts from seeing it.
Examples:
public OnUnoccupiedVehicleUpdate(vehicleid, playerid, passenger_seat, Float:new_x, Float:new_y, Float:new_z, Float:vel_x, Float:vel_y, Float:vel_z) { // Check if it moved far if(GetVehicleDistanceFromPoint(vehicleid, new_x, new_y, new_z) > 50.0) { // Reject the update return 0; } return 1; }
Related Callbacks
The following callbacks might be useful as well, as they are related to this callback in one way or another.
- OnTrailerUpdate: Called when a trailer's position is synced by a client.