Esta mal?
#1

Buenas, como andan?



Yo, con un problema con este codigo
pawn Код:
forward vidavehiculo(playerid);
public vidavehiculo(playerid)
{
    new Float:health, veh;
    veh = GetPlayerVehicleID(playerid);
    GetVehicleHealth(veh, health);
    for(new i; i<MAX_PLAYERS; i++)
    if(IsPlayerInAnyVehicle(i)){
    if(health < 375.0)
    {
   
        SetPlayerPos(i,-1443.9011,-311.5011,1051.6735);
        SendClientMessage(i, -1, "Has sido descalificado por destruir el vehiculo.");
        DestroyVehicle(veh);
        KillTimer(vidavehiculoromper[i]);
    }
   
   
    }else {
    SendClientMessage(i, -1, "No te encuentras en el vehiculo, volve a el.");
    }
    return 1;
}
Que lo inicio con este timer
pawn Код:
vidavehiculoromper[i] = SetTimerEx("vidavehiculo", 1000, true, "i", i);

Y de esta forma tengo definido a "vidavehiculoromper"
pawn Код:
new vidavehiculoromper[MAX_PLAYERS];



Lo que pasa, es que al uno averiar el vehiculo los echa a todos
Reply
#2

Es por que no usas la variable para detectar si un jugador estб en la carrera...
Reply
#3

a que te refieres?
Reply
#4

A que debes verificar la vida del vehнculo, dentro del bucle.
Reply
#5

vidavehiculoromper[i] = SetTimerEx("vidavehiculo", 1000, true, "i", i);

Usas dos bucles, en vez de usar solo uno.
Reply
#6

Como dentro del bucle?
Reply
#7

pawn Код:
// Este es el Timer:
vidavehiculoromper[i] = SetTimerEx("vidavehiculo", 1000, true, "d", playerid);


// Este es el code.
forward vidavehiculo(playerid);
public vidavehiculo(playerid)
{
    new Float:health, veh;
    veh = GetPlayerVehicleID(playerid);
    GetVehicleHealth(veh, health);
    for(new i; i < GetMaxPlayers(); i++)
    {
        if(IsPlayerInAnyVehicle(i))
        {
            if(health < 375.0)
            {
                SetPlayerPos(i,-1443.9011,-311.5011,1051.6735);
                SendClientMessage(i, -1, "Has sido descalificado por destruir el vehiculo.");
                DestroyVehicle(veh);
                KillTimer(vidavehiculoromper[i]);
            }
        }
        else
        {
            SendClientMessage(i, -1, "No te encuentras en el vehiculo, volve a el.");
        }
    }
    return 1;
}
Reply
#8

O mai gosh... utilizar un timer por jugador es demaciado.
Reply
#9

Quote:
Originally Posted by DesingMyCry
Посмотреть сообщение
O mai gosh... utilizar un timer por jugador es demaciado.
Tal no es mi servidor...
Reply
#10

Quote:
Originally Posted by EnzoMetlc
Посмотреть сообщение
Tal no es mi servidor...
"Dime como scripteas y te dirй que clase de script eres..."

Recuerda esto no es P**** S******** aquн si nos preocupados y discutimos tanto por la optimizaciуn como la forma de emplear un cуdigo y que el usuario logre entender..



pawn Код:
public OnGameModeInit(){
    SetTimer("ObtenerVerificacion",1000,true);
}

forward ObtenerVerificacion();
public ObtenerVerificacion(){
    for(new i,t=GetMaxPlayers();i<t;i++){
    //if(Si el jugador esta en carrera variable){
        new Float:health,carid;
        carid = GetPlayerVehicleID(i);
        GetVehicleHealth(carid,health);
        if(IsPlayerInAnyVehicle(i)){
            if(health <= 350.0){
                SetPlayerPos(i,-1443.9011,-311.5011,1051.6735);
                SendClientMessage(i, -1, "Has sido descalificado por destruir el vehiculo.");
                DestroyVehicle(carid);
            }
        }
    //}
    }
    return 1;
}
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)