natives.taskCarDriveWander
void natives.taskCarDriveWander(Ped ped, Vehicle veh, float driveSpeed, int driveStyle)
parameters
- parameter1 = The Ped to drive the Vehicle.
- parameter2 = The Vehicle to drive with.
- parameter3 = The speed of driving in meters per second. (default = 20)
- parameter4 = The AI driving style (behavior) to use. (0-7)
used for
Make the vehicle randomly drive around using internal game path data.
driving style behavior
traffic lights | other cars | pedestrians | blinkers | when stuck | |
---|---|---|---|---|---|
0 | ignore | drive around | drive around | not used | reverse |
1 | stop on red | stay behind | stop and honk | used on crossings | wait |
2 | ignore | drive around | drive around | not used | reverse |
3 | ignore | ignore | ignore | not used | reverse |
4 | ignore | stay behind | stop and honk | not used | wait |
5 | stop on red | drive around | drive around | not used | reverse |
6 | stop+reversing | drive around | drive around | not used | reverse |
7 | stop on red | stay behind | stop and honk | used on crossings | wait |
notes
- driving styles 0 and 2 seem to be identical.
- driving styles 1 and 7 seem to be identical.
- using values < 0 or > 7 will behave like 3
There could be small distance and/or speed differences when "drive around" is used.
It is also unclear if the AI drivers are able to see light poles (objects) while evading.
example code (javascript)
/* example code provided by DrFauli */ addCommandHandler("drivestyle", function(cmdName, params) { // current vehicle/ped handle let thisVeh = null; let thisPed = null; // check if player is in a car if (!localPlayer.vehicle) { natives.requestModel(-1685021548) // sabre GT natives.requestModel(1424670436); // french tom natives.loadAllObjectsNow(); // spawn the car thisVeh = createVehicle2(-1685021548, localPlayer.position, true); thisVeh.heading = localPlayer.heading; // spawn the driver thisPed = natives.createCharInsideCar(thisVeh, 1, 1424670436); // prevent ped from leaving the car screaming by marking it as mission_char first natives.setCharAsMissionChar(thisPed, true); natives.setCharStayInCarWhenJacked(thisPed, true); // warp player into passenger seat natives.warpCharIntoCarAsPassenger(localPlayer, thisVeh, 0); } else { thisVeh = localPlayer.vehicle; thisPed = thisVeh.getOccupant(0); } // get speed and driveStyle from params let splitParams = params.split(" "); let driveSpeed = (Number(splitParams[0]) || 20); // default is 20 let driveStyle = (Number(splitParams[1]) || 2); // let this car drive around natives.taskCarDriveWander(thisPed, thisVeh, driveSpeed, driveStyle); return true; });