All pastes #673538 Raw Edit

Anonymous

public text v1 · immutable
#673538 ·published 2007-08-28 14:25 UTC
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);
}