31.08.2013, 04:40
Es simplemente crear una variable contenedora para cada jugador que diga el ID del ъltimo checkpoint en el que entrу (sin salir).
Esa variable contendrб el ID. Ahora debemos setear la informaciуn cuando se conecta para prevenir bugs.
Ahora debemos establecer el ID del checkpoint en el que entrу.
Si sale del checkpoint se establecerб a ninguno.
Y finalmente creamos la funciуn para saber si esta en un checkpoint o nу.
O bien puedes hacer la funciуn, directamente una macro (ten en cuenta que las macros funcionan el doble de rбpido que las funciones convencionales).
pawn Код:
new checkpointID[MAX_PLAYERS];
pawn Код:
public OnPlayerConnected(playerid)
{
checkpointID[playerid] = -1;
return 1;
}
pawn Код:
public OnPlayerEnterDynamicCP(playerid, checkpointid)
{
checkpointID[playerid] = checkpointid;
return 1;
}
pawn Код:
public OnPlayerLeaveDynamicCP(playerid, checkpointid)
{
checkpointID[playerid] = -1;
return 1;
}
pawn Код:
stock /*bool:*/EstaEnCheckpoint(jugadorid, checkpointid)
{
return ((checkpointID[jugadorid] == checkpointid) ? (/*true*/1) : (/*false*/0));
}
pawn Код:
#define EstaEnCheckpoint(%0,%1) ((checkpointID[%0] == %1) ? (/*true*/1) : (/*false*/0))