PDA

View Full Version : PullVehicleIntoDirection pulls my car....

iWhite
14/06/2012, 11:28 AM
Function:
stock PullVehicleIntoDirection(vehicleid, Float:x, Float:y, Float:z, Float:speed)
{
new
Float:distance,
Float:vehicle_pos[3];

GetVehiclePos(vehicleid, vehicle_pos[0], vehicle_pos[1], vehicle_pos[2]);
SetVehicleZAngle(vehicleid, atan2VehicleZ(vehicle_pos[0], vehicle_pos[1], x, y));
x -= vehicle_pos[0];
y -= vehicle_pos[1];
//z -= vehicle_pos[2];
distance = floatsqroot((x * x) + (y * y)/* + (z * z)*/);
x = (speed * x) / distance;
y = (speed * y) / distance;
//z = (speed * z) / distance;
GetVehicleVelocity(vehicleid, z, z, z);
SetVehicleVelocity(vehicleid, x, y, z);
}
forward Float:atan2VehicleZ(Float:Xb,Float:Yb,Float:Xe,Flo at:Ye);// Dunno how to name it...
stock Float:atan2VehicleZ(Float:Xb,Float:Yb,Float:Xe,Flo at:Ye)
{
new Float:a = floatabs(360.0 - atan2( Xe-Xb,Ye-Yb));
if(360 > a > 180)return a;
return a-360.0;
}

Command to create the car:

if(!strcmp(cmdtext, "/car1", true))
{
GetPlayerPos(playerid, xs, ys, zs);
car1 = AddStaticVehicleEx(411, xs, ys, zs, 0, 1, 1, 15000);
return 1;
}

And Command to drive to my position:

if(!strcmp(cmdtext, "/go", true))
{
SetTimerEx("Drive", 1000, true, "i", playerid);
return 1;
}
In "Drive" public:

GetVehiclePos(GetPlayerVehicleID(playerid), xs, ys, zs);
PullVehicleIntoDirection(car1, xs, ys, zs, 1);
PullVehicleIntoDirection(car2, xs, ys, zs, 1);

Pulls my vehicle, but "car1" not moving....

Any ideas?

Vince
14/06/2012, 11:59 AM
As far as I know the car must be occupied for SetVehicleVelocity to work.

Faisal_khan
14/06/2012, 12:04 PM
Why don't just make a bot and let him be seated in your car for only the process of moving.

darkowner
14/06/2012, 12:08 PM
As far as I know the car must be occupied for SetVehicleVelocity to work.

Agreed