SA-MP Forums Archive
Esta mal? - 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: Esta mal? (/showthread.php?tid=476135)



Esta mal? - benjas09 - 16.11.2013

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


Respuesta: Esta mal? - Swedky - 16.11.2013

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


Respuesta: Esta mal? - benjas09 - 16.11.2013

a que te refieres?


Respuesta: Esta mal? - DesingMyCry - 16.11.2013

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


Respuesta: Esta mal? - adri1 - 16.11.2013

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

Usas dos bucles, en vez de usar solo uno.


Respuesta: Esta mal? - benjas09 - 16.11.2013

Como dentro del bucle?


Respuesta: Esta mal? - Swedky - 17.11.2013

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;
}



Respuesta: Esta mal? - DesingMyCry - 17.11.2013

O mai gosh... utilizar un timer por jugador es demaciado.


Respuesta: Esta mal? - Swedky - 17.11.2013

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


Respuesta: Esta mal? - Parka - 17.11.2013

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;
}