[aYUDA] Error con DestroyVehicle
#1

Bueno, lo que necesito es que se borren los autos que no son de los jugadores, los autos publicos.. pero al utilizar el comando se van todos..

Код:
CMD:borrarautos(playerid,params[])
{
    for(new i=0; i< MAX_VEHICLES; i++)
	{
	for(new u=0; u< MAX_PLAYERS; u++)
 	{
 	if(i != autos[u])
 	{
    DestroyVehicle(i);
    }
    }
    }
 return 1;
}
Код:
autos[playerid] = CreateVehicle(PlayerInfo[playerid][vModelo],PlayerInfo[playerid][vX],PlayerInfo[playerid][vY],PlayerInfo[playerid][vZ]+1.00,PlayerInfo[playerid][vA],PlayerInfo[playerid][vColor1],PlayerInfo[playerid][vColor2],-1);

que pasa?
Reply
#2

pawn Код:
CMD:borrarautos(playerid,params[])
{
    new bool:playerinvehicle;
    for(new i; i< MAX_VEHICLES; i++)
    {
        for(new u; u< MAX_PLAYERS; u++)
        {
            if(IsPlayerInVehicle(u, i))
            {
                playerinvehicle = true;
                break;
            }
        }
        if(playerinvehicle)
        {
            playerinvehicle = false;
            continue;
        }
        DestroyVehicle(i);
    }
    return 1;
}
Reply
#3

Quote:
Originally Posted by MugiwaraNoLuffy
Посмотреть сообщение
pawn Код:
CMD:borrarautos(playerid,params[])
{
    new bool:playerinvehicle;
    for(new i; i< MAX_VEHICLES; i++)
    {
        for(new u; u< MAX_PLAYERS; u++)
        {
            if(IsPlayerInVehicle(u, i))
            {
                playerinvehicle = true;
                break;
            }
        }
        if(playerinvehicle)
        {
            playerinvehicle = false;
            continue;
        }
        DestroyVehicle(i);
    }
    return 1;
}
Aun asi los autos[playerid] que esten sin un jugador en ellos van a borrarse, quiero que no se borren esos...
Reply
#4

Quote:
Originally Posted by Thewin
Посмотреть сообщение
Aun asi los autos[playerid] que esten sin un jugador en ellos van a borrarse, quiero que no se borren esos...
El cуdigo que hice fue para que salteara a los que ya tienen dueсo.
Reply
#5

tu problema esta aca DestroyVehicle(i); deberia ser asi DestroyVehicle(autos[i]);

borrara los vehiculos sin jugador en el vehiculo.
pawn Код:
CMD:borrarautos(playerid,params[]){
    for(new player; player< GetMaxPlayers(); player++){
        if(!IsPlayerConnected(player)) continue;
        if(autos[player] < 1) continue;
        if(IsPlayerInVehicle(player, autos[player])) continue;
        DestroyVehicle(autos[player]);
    }
    return true;
}
borrara los vehiculos con jugador en el vehiculo.
pawn Код:
CMD:borrarautos(playerid,params[]){
    for(new player; player< GetMaxPlayers(); player++){
        if(!IsPlayerConnected(player)) continue;
        if(autos[player] < 1) continue;
        if(!IsPlayerInVehicle(player, autos[player])) continue;
        DestroyVehicle(autos[player]);
    }
    return true;
}
Reply
#6

Es al reves, quiero que borre todos los vehiculos excepto los autos[playerid] que son los autos que se le crean a cada jugador que se conecta. osea no importa si el usuario esta en el vehiculo, que el autos[playerid] no se borre, los demas si.
Reply
#7

pawn Код:
native IsValidVehicle(vehicleid);
   
    for(new player; player< GetMaxPlayers(); player++){
        if(!IsPlayerConnected(player)) continue;
        for(new vehicleid; vehicleid< MAX_VEHICLES; vehicleid++){
            if(!IsValidVehicle(vehicleid)) continue;
            if(vehicleid == player) continue;
            DestroyVehicle(vehicleid);
        }
    }
Reply
#8

pawn Код:
CMD:borrarautos(playerid,params[])
{
    for(new i=0; i< MAX_VEHICLES; i++)
    {
        for(new u=0; u< MAX_PLAYERS; u++)
        {
            if(i == autos[u]) {
                goto _no_borrar;
            }
        }
        DestroyVehicle(i);
        _no_borrar:
    }
    return 1;
}
Reply
#9

Gracias, solucionado
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)