In Range Respawn [ Help Pleas]
#1

Hello, can eny one help me with that code ?

Код:
	if(strcmp(cmdtext, "/rcars", true) == 0)
	{
		new currentveh;
		currentveh = GetPlayerVehicleID(playerid);

		new Float:vehx, Float:vehy, Float:vehz;
		GetVehiclePos(currentveh, vehx, vehy, vehz);
		if(IsPlayerInRangeOfPoint(playerid, 20.0, vehx, vehy, vehz))
		{
		    new vehicleid = GetPlayerVehicleID(playerid);
		    SetVehicleHealth(vehicleid, 1000.0);
		    SetVehicleToRespawn(vehicleid);
		}
		return 1;
	}
I can't find out, how to make a command, to respawn car, in range of player .
Reply
#2

If the cmd not working just place it into the code " GetPlayerNearestVehicle "
pawn Код:
if(strcmp(cmdtext, "/rcars", true) == 0)
    {
        new currentveh;
        currentveh = GetPlayerVehicleID(playerid);
       
        new carid = GetPlayerNearestVehicle(playerid);
        SetVehicleToRespawn(carid);
       
        new Float:vehx, Float:vehy, Float:vehz;
        GetVehiclePos(currentveh, vehx, vehy, vehz);
        if(IsPlayerInRangeOfPoint(playerid, 20.0, vehx, vehy, vehz))
        {
            new vehicleid = GetPlayerVehicleID(playerid);
            SetVehicleHealth(vehicleid, 1000.0);
            SetVehicleToRespawn(vehicleid);
        }
        return 1;
    }
Add this code some where into script.
pawn Код:
stock GetPlayerNearestVehicle(playerid)
{
    new closest = -1;
    if(IsPlayerInAnyVehicle(playerid)) return GetPlayerVehicleID(playerid);
    for(new i = 0; i < MAX_VEHICLES; i++)
    {
        if(GetDistanceFromPlayerToVehicle(playerid, i) < GetDistanceFromPlayerToVehicle(playerid, closest) && closest != -1 && IsVehicleConnected(i))
        {
            closest = i;
        }
        if(closest == -1 && IsVehicleConnected(i)) closest = i;
    }
    return closest;
}

stock GetDistanceFromPlayerToVehicle(playerid, vehicleid2)
{
    new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
    new Float:tmpdis;
    GetPlayerPos(playerid,x1,y1,z1);
    GetVehiclePos(vehicleid2,x2,y2,z2);
    tmpdis = floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
    return floatround(tmpdis);
}

stock IsVehicleConnected(vehicleid)
{
    new Float:x1,Float:y1,Float:z1;
    GetVehiclePos(vehicleid,x1,y1,z1);
    if(x1==0.0 && y1==0.0 && z1==0.0)
    {
        return 0;
    }
    return 1;
}
Reply
#3

Thank you dude, that is f**king amazing, added rep for you!
Reply
#4

Quote:
Originally Posted by EasyMan
Посмотреть сообщение
Thank you dude, that is f**king amazing, added rep for you!
Your welcome ! Anymore help you can feel free to PM me !
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)