Hola gente
#4

Colocar ese timer en OnPlayerSpawn harб que se cree cada vez que un jugador spawnee, causarб muchos problemas y lentitud del servidor.

pawn Код:
#include <a_samp>

#define checkpointCambiar 60000 //Milisegundos que cambiarб de posiciуn el checkpoint
#define checkpointTamano 10.0 //Tamaсo de los checkpoints
new Float:checkpointPos[][3] =
{

};
new checkpointTiempo[2]; // 0 = uso de SetTimer; 1 = tiempo faltante
new checkpointID; //Checkpoint actual
forward checkpointCallback();
#define checkpointFaltante() checkpointTiempo[1] //Obtener el tiempo que falta para cambiar el checkpoint
stock checkpointInicio()
{
    //Cambiar de posiciуn un checkpoint
   
    //Obtener un checkpoint al azar
    checkpointID = random(sizeof(checkpointPos));
   
    //Mostramos el nuevo checkpoint a todos los jugadores
    for(new playerid = 0; playerid < MAX_PLAYERS; playerid++)
        SetPlayerCheckpoint(playerid, checkpointPos[checkpointID][0], checkpointPos[checkpointID][1], checkpointPos[checkpointID][2], checkpointTamano);

    //Establecemos el tiempo que falta para que cambie de posiciуn el checkpoint
    checkpointTiempo[1] = checkpointCambiar/1000;

    //Hacemos correr el timer para verificar si ya es tiempo de cambiar de posiciуn el checkpoint
    KillTimer(checkpointTiempo[0]);
    checkpointTiempo[0] = SetTimer("checkpointCallback", 1000, true);
   
    return 1;
}

public OnGameModeInit()
{
    //Iniciar el sistema
    checkpointInicio();
   
    return 1;
}

public OnPlayerConnect(playerid)
{
    //Mostramos el checkpoint actual
    SetPlayerCheckpoint(playerid, checkpointPos[checkpointID][0], checkpointPos[checkpointID][1], checkpointPos[checkpointID][2], checkpointTamano);

    return 1;
}

public checkpointCallback()
{
    //Restamos 1 segundo al tiempo faltante
    checkpointTiempo[1]--;
   
    if(checkpointTiempo[1] <= 0)
    {
        //Llegу a cero el contador de tiempo
       
        //Cambiar el checkpoint de lugar
        checkpointInicio();
    }
   
    return 1;
}
Ahн una forma mas entretenida de hacerlo.

La variable que contiene las posiciones de los checkpoints es.


pawn Код:
new Float:checkpointPos[][3] =
{

};
Para agregar checkpoints solo debes agregar las posiciones Y, X y Z con el formato {X, Y, Z}.

pawn Код:
native checkpointInicio(); //Cambia la posiciуn del checkpoint
native checkpointFaltante(); //Obtiene el tiempo faltante para que se cambie nuevamente
Definidos importantes.
pawn Код:
#define checkpointCambiar 60000 //Milisegundos que demorarб en cambiar de posiciуn el checkpoint
#define checkpointTamano 10.0 //Tamaсo de los checkpoints
Reply


Messages In This Thread
Hola gente - by DangerStoring - 06.09.2013, 20:51
Respuesta: Hola gente - by Swedky - 06.09.2013, 22:06
Re: Hola gente - by DangerStoring - 06.09.2013, 22:50
Respuesta: Hola gente - by DesingMyCry - 06.09.2013, 23:10

Forum Jump:


Users browsing this thread: 1 Guest(s)