Obtener ID de un vehнculo sin estar ocupado
#1

Hello, quisiera saber si hay alguna funciуn para obtener la id de un vehнculo sin estar ocupado, muchas gracias.
Reply
#2

Ejemplo:
pawn Код:
new vVehicleID[3];

vVehicleID[0] = AddStaticVehicleEx(model, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay);
vVehicleID[1] = AddStaticVehicleEx(model, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay);
vVehicleID[2] = AddStaticVehicleEx(model, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay);
Reply
#3

Sн, eso ya se, la cosa es que se almacenan de forma dinбmica en la carpeta "Autos".

Lo que intento hacer es asн:
pawn Код:
CMD:abrir(playerid, params[])
{
    new engine, lights, alarm, doors, bonnet, boot, objective, Float:x, Float:y, Float:z, text[64];
    foreach(aAutos, i)
    {
        GetVehiclePos(i, x, y, z);
        if(IsPlayerInRangeOfPoint(playerid, 2.0, x, y, z)) return 1;
        if(Informacion[playerid][pLlaves1] == i || Informacion[playerid][pLlaves2] == i)
        {
            format(text, sizeof(text), "%s abriу las puertas de su vehнculo");
            ProxDetector(30, playerid, text, Color_Purpura);
            GetVehicleParamsEx(i, engine, lights, alarm, doors, bonnet, boot, objective);
            SetVehicleParamsEx(i, engine, lights, alarm, true, bonnet, boot, objective);
        }
    }
    return 1;
}
Pero no sй como obtener la ID de la variable 'i'.
Reply
#4

te refieres a 'vVehicleID[i]' ?
Reply
#5

No no, yo utilizo un Iterator para almacenar todos los vehнculos, lo que estoy haciendo con Foreach(aAutos, i) es recorrer todos los vehнculos, nada mбs, la cosa es que no sй obtener la ID.
Reply
#6

Aqui esta un ejemplo:
pawn Код:
#define MAX_OWNED_VEHICLES 3

new vVehicleID[3];

public OnGameModeInit()
{
    vVehicleID[0] = AddStaticVehicleEx(model, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay);
    vVehicleID[1] = AddStaticVehicleEx(model, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay);
    vVehicleID[2] = AddStaticVehicleEx(model, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay);
    return 1;
}

CMD:abrir(playerid, params[])
{
    new engine, lights, alarm, doors, bonnet, boot, objective, Float:x, Float:y, Float:z, text[64];
    for(new i = 0; i < MAX_OWNED_VEHICLES; i ++)
    {
        GetVehiclePos(vVehicleID[i], x, y, z);
        if(!IsPlayerInRangeOfPoint(playerid, 2.0, x, y, z)) return 1;
        if(Informacion[playerid][pLlaves1] == i || Informacion[playerid][pLlaves2] == i)
        {
            format(text, sizeof(text), "%s abriу las puertas de su vehнculo");
            ProxDetector(30, playerid, text, Color_Purpura);
            GetVehicleParamsEx(vVehicleID[i], engine, lights, alarm, doors, bonnet, boot, objective);
            SetVehicleParamsEx(vVehicleID[i], engine, lights, alarm, true, bonnet, boot, objective);
        }
    }
    return 1;
}
Si eso no te sirve, porfavor postea algo de tu sistema.
Reply
#7

Este es el sistema que hice:
pawn Код:
#define MAX_CARS 500
new Iterator:aAutos<MAX_CARS>;

CMD:crearauto(playerid, params[])
{
    new modelo, precio, color1, color2;
    new Float:x, Float:y, Float:z, Float:angulo;
    new i = SlotAutoLibre();
    if(Informacion[playerid][pAdmin] < 5) return SendClientMessage(playerid, -1, "No eres administrador");
    if(sscanf(params,"iiii",modelo,precio,color1,color2)) return SendClientMessage(playerid, -1, "/crearauto (Modelo) (Precio) (Color1) (Color2)");
    if(modelo < 400 || modelo > 611) return SendClientMessage(playerid, -1, "El modelo ingresado es invalido.");
    if(i == -1) return SendClientMessage(playerid, -1, "No se pueden crear mбs coches");
    GetPlayerPos(playerid, x, y, z);
    GetPlayerFacingAngle(playerid, angulo);
    InformacionA[i][aModelo] = modelo;
    InformacionA[i][aPrecio] = precio;
    InformacionA[i][aPosX] = x;
    InformacionA[i][aPosY] = y;
    InformacionA[i][aPosZ] = z;
    InformacionA[i][aRotacion] = angulo;
    InformacionA[i][aColor1] = color1;
    InformacionA[i][aColor2] = color2;
    InformacionA[i][aComprado] = false;
    CreateVehicle(modelo, x, y, z, angulo, color1, color2, -1);
    Iter_Add(aAutos,i);
    ActualizarAutos(i);
    return 1;
}
Asн tengo echo eso, lo demбs del sistema es lo de guardado, etc.
Reply
#8

Otro ejemplo:
pawn Код:
#define MAX_CARS 500
new Iterator:vVehicleID<MAX_CARS>;

public OnGameModeInit()
{
    new vehicleid;
    vehicleid = AddStaticVehicle(400, 1015.3524, -1343.9974, 13.0929, 88.6509, -1, -1);
    Iter_Add(vVehicleID, vehicleid);
    vehicleid = AddStaticVehicle(400, 1015.3524, -1343.9974, 13.0929, 88.6509, -1, -1);
    Iter_Add(vVehicleID, vehicleid);
    vehicleid = AddStaticVehicle(400, 1015.3524, -1343.9974, 13.0929, 88.6509, -1, -1);
    Iter_Add(vVehicleID, vehicleid);
    vehicleid = AddStaticVehicle(400, 1015.3524, -1343.9974, 13.0929, 88.6509, -1, -1);
    Iter_Add(vVehicleID, vehicleid);
    vehicleid = AddStaticVehicle(400, 1015.3524, -1343.9974, 13.0929, 88.6509, -1, -1);
    Iter_Add(vVehicleID, vehicleid);
    return 1;
}

CMD:abrir(playerid, params[])
{
    new string[144], Float:x, Float:y, Float:z, engine, lights, alarm, doors, bonnet, boot, objective;
    foreach(new vehicleid: vVehicleID)
    {
        GetVehiclePos(vehicleid, x, y, z);
        if(IsPlayerInRangeOfPoint(playerid, 5.0, x, y, z))
        {
            GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
            SetVehicleParamsEx(vehicleid, engine, lights, alarm, true, bonnet, boot, objective);
            format(string, sizeof(string), "%s (%d) abrio las puertas de su vehiculo!", PlayerName(playerid), playerid);
            SendClientMessage(playerid, 0xFFFF00FF, string);
            break;
        }
    }
    return 1;
}

stock PlayerName(playerid)
{
    new name[25];
    GetPlayerName(playerid, name, sizeof(name));
    return name;
}
Reply
#9

Pero haciendo eso, tendrнa que hacerlo con cada vehнculo que creo, їno es asн?
Reply
#10

Quote:
Originally Posted by Ghost112397
Посмотреть сообщение
Pero haciendo eso, tendrнa que hacerlo con cada vehнculo que creo, їno es asн?
para que? por que no en vez de tomar la id tomas las llaves id del user?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)