SA-MP Forums Archive
Player Infectado - 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: Player Infectado (/showthread.php?tid=427450)



Player Infectado - mailu - 01.04.2013

Hola amigos, pasaba a preguntarles algo que no se me ocurre como hacerlo;

Reducirle cierta cantidad de vida al jugar, cada cierto tiempo.
Por ejemplo, Han visto esos comandos de /violar o /infectar en los RP? Que cuando te infectan la vida va reduciendo hasta que mueras. Eso es lo que quiero hacer, pero no se como.

Saludos


Re: Player Infectado - PolloMC - 01.04.2013

usa un timer y hazlo un bucle. Tambien puedes aсadir algun comando para parar el bucle roleando una desinfeccion


Re: Player Infectado - mailu - 01.04.2013

Gracias!
Acabo de hacerlo y funciono!


Respuesta: Player Infectado - oOFotherOo - 01.04.2013

No es necesario un bucle.

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;
}
Un saludo.


Re: Player Infectado - PolloMC - 01.04.2013

eso es 1 bucle.


Respuesta: Re: Player Infectado - oOFotherOo - 01.04.2013

Quote:
Originally Posted by PolloMC
Посмотреть сообщение
eso es 1 bucle.
Al parecer usted no tiene ni idea de que es un bucle, en ningъn momento utilize for, while у do while.

Un saludo.


Re: Player Infectado - PolloMC - 01.04.2013

pero debes tener en cuenta la importancia realtiva de la posicion del codigo, en ese caso se considera un bucle ya que es asi como se define en la guia.


Respuesta: Re: Player Infectado - Host - 01.04.2013

Quote:
Originally Posted by PolloMC
Посмотреть сообщение
pero debes tener en cuenta la importancia realtiva de la posicion del codigo, en ese caso se considera un bucle ya que es asi como se define en la guia.
Lol

Leete esto

Esto