01.04.2013, 19:58
(
Последний раз редактировалось oOFotherOo; 01.04.2013 в 20:10.
Причина: Corregir BUG.
)
No es necesario un bucle.
Un saludo.
pawn Код:
static bool:Infectado[MAX_PLAYERS];
static Timer:TInfectado[MAX_PLAYERS];
public OnPlayerDisconnect(playerid)
{
Infectado[playerid] = false;
KillTimer(TInfectado[playerid]);
return 1;
}
public OnPlayerConnect(playerid)
{
Infectado[playerid] = false;
KillTimer(TInfectado[playerid]);
return 1;
}
CMD:infectar(playerid, params[])
{
if(sscanf(params, "i", params[0])) return SendClientMessage(playerid, -1, "Utiliza: /infectar [ID]");
if(Infectado[params[0]] == false) return SendClientMessage(playerid, -1, "Este usuario ya estб infectado.");
Infectado[params[0]] = true;
TInfectado[params[0]] = SetTimerEx("OnInfectado", 5000, true, "i", params[0]); // Se ejecuatarб el timer cada 5 segundos, cambie al tiempo que desea.
return 1;
}
CMD:desinfectar(playerid, params[])
{
if(sscanf(params, "i", params[0])) return SendClientMessage(playerid, -1, "Utiliza: /desinfectar [ID]");
if(Infectado[params[0]] == true) return SendClientMessage(playerid, -1, "Este usuario no estб infectado.");
Infectado[params[0]] = false;
KillTimer(TInfectado[params[0]]);
return 1;
}
forward OnInfectado(playerid);
public OnInfectado(playerid);
{
new Float:Vida;
GetPlayerHealth(playerid, Vida);
SetPlayerHealth(playerid, Vida-5); // Quitarб 5 de vida, cambie por la cantidad deseada.
return 1;
}