SA-MP Forums Archive
[DUDA] Detectar vehнculo cercano - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: [DUDA] Detectar vehнculo cercano (/showthread.php?tid=385101)



[DUDA] Detectar vehнculo cercano - rubensm - 14.10.2012

Buenas, tengo una duda, estoy haciendo un sistema para cerrar vehнculos y demбs, pero tengo un problema, їcуmo podrнa detectar un vehнculo cercano?

No tengo idea de como empezar con esa funciуn ahora mismo, mirare funciones de samp a ver...


Re: [DUDA] Detectar vehнculo cercano - Glimma - 14.10.2012

Primero, debes colocar un if que detecte si el vehнculo es de esa persona, y luego, йsto:

pawn Код:
GetVehiclePos(keycar, x, y, z);
                    if(PlayerToPoint(20.0,playerid, x, y, z))
Donde dice 20, lo puedes modificar por la distancia que tъ quieras.


Respuesta: [DUDA] Detectar vehнculo cercano - OTACON - 14.10.2012

pawn Код:
COMMAND:comando(playerid, params[])
{
    new counter, result;
    for(new i; i != MAX_VEHICLES; i++)
    {
        new dist = CheckPlayerDistanceToVehicle(3.5, playerid, i);
        if(dist)
        {
            result = i;
            counter++;
        }
    }
    if(counter == 0) return Message(playerid, -1, "Ningъn vehнculo cerca de usted.");
    if(counter > 1) return Message(playerid, -1, "Encontrado mбs de un vehнculo acercate bien.");
   
    //aca tu funcion
    return 1;
}

//[*] Utiliza result como  la variable para detectar el id del vehiculo   Ejemplo: if(variable[result] == 1)
Para definir CheckPlayerDistanceToVehicle, colocalo abajo de todo del script.
pawn Код:
stock CheckPlayerDistanceToVehicle(Float:radi, playerid, vehicleid)
{
    if(IsPlayerConnected(playerid))
    {
        new Float:PX,Float:PY,Float:PZ,Float:X,Float:Y,Float:Z;
        GetPlayerPos(playerid,PX,PY,PZ);
        GetVehiclePos(vehicleid, X,Y,Z);
        new Float:Distance = (X-PX)*(X-PX)+(Y-PY)*(Y-PY)+(Z-PZ)*(Z-PZ);
        if(Distance <= radi*radi)
        {
            return 1;
        }
    }
    return 0;
}