rendered paste body//In OnPlayerSpawn
SetTimerEx("TowPlayerVehicle", 500, 1, "d", playerid);
//==========================================================================
forward TowPlayerVehicle(playerid);
public TowPlayerVehicle(playerid)
{
new vehiclet;
if(IsPlayerInAnyVehicle(playerid))
{
new vehid = GetPlayerVehicleID(playerid);
if(!IsTrailerAttachedToVehicle(vehid))
{
if(GetVehicleModel(vehid) == 525)
{
new Float:x, Float:y, Float:z;
GetVehiclePos(vehid, x, y, z );
GetVehicleWithinDistance(playerid, x, y, z, 100.0, vehiclet);
if(IsPlayerInFrontOfVehicle(playerid,vehiclet))
{
AttachTrailerToVehicle(vehiclet, vehid);
}
}
}
}
}
GetVehicleWithinDistance( playerid, Float:x1, Float:y1, Float:z1, Float:dist, &vehic){
for(new i = 1; i < MAX_VEHICLES; i++){
if(GetVehicleModel(i) > 0){
if(GetPlayerVehicleID(playerid) != i ){
new Float:x, Float:y, Float:z;
new Float:x2, Float:y2, Float:z2;
GetVehiclePos(i, x, y, z);
x2 = x1 - x; y2 = y1 - y; z2 = z1 - z;
new Float:iDist = (x2*x2+y2*y2+z2*z2);
if( iDist < dist){
vehic = i;
}
}
}
}
}
forward GetXYInFrontOfVehicle(vehicleid, &Float:x, &Float:y, Float:distance);
public GetXYInFrontOfVehicle(vehicleid, &Float:x, &Float:y, Float:distance)
{
new Float:a;
GetVehiclePos(vehicleid, x, y, a);
GetVehicleZAngle(vehicleid, a);
x += (distance * floatsin(-a, degrees));
y += (distance * floatcos(-a, degrees));
}
forward IsPlayerInFrontOfVehicle(playerid,vehicleid);
public IsPlayerInFrontOfVehicle(playerid,vehicleid)
{
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
GetXYInFrontOfVehicle(vehicleid, X, Y, 5.0);
return(1);
}