GetVehiclePos(GetPlayerVehicleID(playerid),p[0],p[1],p[2]); GetVehicleZAngle(GetPlayerVehicleID(playerid),p[3]); GetVehicleModelInfo(GetVehicleModel(vehicleid), VEHICLE_MODEL_INFO_PETROLCAP, X, Y, Z); SetPlayerCheckpoint(playerid,p[0]+X,p[1]+Y,p[2]+Z,3.0); p[0] += (floatsin(-p[3], degrees)); p[1] += (floatcos(-p[3], degrees)); testpick = CreatePickup(1318,23,p[0]+X,p[1]+Y,p[2]+Z,-1);
new Float: x, Float: y, Float: z, Float: a, Float: vX, Float: vY, Float: vZ, vehicleid = GetPlayerVehicleID(playerid), Float: fDistance = 1.0; GetVehiclePos(vehicleid, x, y, z); GetVehicleZAngle(vehicleid, a); a += 90; GetVehicleModelInfo(GetVehicleModel(vehicleid), VEHICLE_MODEL_INFO_PETROLCAP, vX, vY, vZ); x += (fDistance * floatsin(a, degrees)); y += (fDistance * floatcos(a, degrees)); SetPlayerCheckpoint(playerid, x + vX, y + vY, z + vZ, 3.0); CreatePickup(1318, 23, x + vX, y + vY, z + vZ, -1);
Код:
new Float: x, Float: y, Float: z, Float: a, Float: vX, Float: vY, Float: vZ, vehicleid = GetPlayerVehicleID(playerid), Float: fDistance = 1.0; GetVehiclePos(vehicleid, x, y, z); GetVehicleZAngle(vehicleid, a); a += 90; GetVehicleModelInfo(GetVehicleModel(vehicleid), VEHICLE_MODEL_INFO_PETROLCAP, vX, vY, vZ); x += (fDistance * floatsin(a, degrees)); y += (fDistance * floatcos(a, degrees)); SetPlayerCheckpoint(playerid, x + vX, y + vY, z + vZ, 3.0); CreatePickup(1318, 23, x + vX, y + vY, z + vZ, -1); Use 0.0 if you want the exact pos, positive numbers (> 0.0) if you want it in front of it, negative if behind (< 0.0) |
CMD:petrolcap(playerid){
new vid = GetPlayerVehicleID(playerid),
Float:x, Float:y, Float:z, Float:rx, Float:rz,
Float:vx, Float:vy, Float:vz, Float:angle;
GetVehiclePos(vid,vx,vy,vz);
GetVehicleZAngle(vid,angle);
GetVehicleModelInfo(GetVehicleModel(vid),VEHICLE_MODEL_INFO_PETROLCAP,x,y,z);
if(GetRotationFor2Point3D(0.0,0.0,0.0,x,y,z,rx,rz)){
new Float:dist = VectorSize(x,y,z) + 1.0;
GetPointInFront3D(vx,vy,vz,rx,CompRotationFloat(angle+rz),dist,x,y,z);
SetPlayerCheckpoint(playerid,x,y,z,3.0);
} else {
//doesn't have petrolcap (0.0,0.0,0.0)
}
return 1;
}