SetVehicleParamsForPlayer
From SA-MP Wiki
Description:
Set the parameters of a vehicle for a player.
(vehicleid, playerid, objective, doorslocked)
vehicle | The ID of the vehicle to set the parameters of. |
playerid | The ID of the player to set the vehicle's parameters for. |
objective | 0 to disable the objective or 1 to show it. This is a bobbing yellow arrow above the vehicle. |
doorslocked | 0 to unlock the doors or 1 to lock them. |
Return Values:
- 1: The function executed successfully.
- 0: The function failed to execute. The player and/or vehicle specified do not exist.
Note | Vehicles must be respawned for the 'objective' to be removed. |
This can be circumvented somewhat using Get/SetVehicleParamsEx which do not require the vehicle to be respawned. It is worth noting however that the object will be disabled on a global scale, and this is only useful if only one player has the vehicle as an objective:
Example Usage:
// sometime earlier: SetVehicleParamsForPlayer(iPlayerVehicle, iPlayerID, 1, 0); // sometime later when you want the vehicle to respawn: new iEngine, iLights, iAlarm, iDoors, iBonnet, iBoot, iObjective; GetVehicleParamsEx(iPlayerVehicle, iEngine, iLights, iAlarm, iDoors, iBonnet, iBoot, iObjective); SetVehicleParamsEx(iPlayerVehicle, iEngine, iLights, iAlarm, iDoors, iBonnet, iBoot, 0);
Important | Since 0.3a you will have to reapply this function when OnVehicleStreamIn is called. |
// Locks own car for all players, except the player who used the command. public OnPlayerCommandText(playerid, cmdtext[]) { if(!strcmp(cmdtext,"/lock",true)) { if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,0xFFFFFFAA,"You have to be inside a vehicle."); for(new i=0; i < MAX_PLAYERS; i++) { if(i == playerid) continue; SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i,0,1); } return 1; } return 0; }
// Will show vehicle markers for players streaming in for 0.3a+ new iVehicleObjective[MAX_VEHICLES][2]; public OnGameModeInit() //Or another callback { new temp = AddStaticVehicleEx(400, 0.0, 0.0, 5.0, 0.0, 0,0, -1); //ID 1 iVehicleObjective[temp][0] = 1; //Marker iVehicleObjective[temp][1] = 0; //Door Lock return 1; } stock SetVehicleParamsForPlayerEx(vehicleid, playerid, objective, doorslocked) { SetVehicleParamsForPlayer(vehicleid, playerid, objective, doorslocked); iVehicleObjective[vehicleid][0] = objective; iVehicleObjective[vehicleid][1] = doorslocked; } public OnVehicleStreamIn(vehicleid, forplayerid) { SetVehicleParamsForPlayer(vehicleid, forplayerid, iVehicleObjective[vehicleid][0], iVehicleObjective[vehicleid][1]); }
Another way by theAlone
//Top new myMarkedCar; public OnGameModeInit() //Or another callback { myMarkedCar = AddStaticVehicleEx(400, 0.0, 0.0, 5.0, 0.0, 0,0, -1); //For example: Black Landstalker near Blueberry Acres return 1; } //Whatever your want public OnVehicleStreamIn(vehicleid, forplayerid) { if(vehicleid == myMarkedCar) { SetVehicleParamsForPlayer(myMarkedCar, forplayerid, 1, 0); // marker can be visible only if the vehicle streamed for player } return 1; }
Related Functions
The following functions may be useful, as they are related to this function in one way or another.
- SetVehicleParamsEx: Sets a vehicle's params for all players.