SA-MP Forums Archive
Hacer que se caiga al suelo cuando tenga poca vida - 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: Hacer que se caiga al suelo cuando tenga poca vida (/showthread.php?tid=274674)



Hacer que se caiga al suelo cuando tenga poca vida - lokor - 06.08.2011

Hola, estiy en la modificaciуn del GM 4game-RP y quiero aсadirle una cosa... cuando te quede poca vida, por ejemplo 10 o 15 de vida, que el jugador se caiga al suelo y que le ponga: Tu estado de salud es pйsimo, llama a un medico

Bueno y no se como se hace, y me gustaria que en vez de ponerme el codigo y ya esta, que me expliqueis un poco para que sirve cada cosa...

Gracias


Respuesta: Hacer que se caiga al suelo cuando tenga poca vida - TheChaoz - 06.08.2011

ya hubo muchos post sobre este tema en este foro, usa el buscador que vas a encontrar alguno.


Respuesta: Hacer que se caiga al suelo cuando tenga poca vida - TiNcH010 - 08.08.2011

Podrias poner en OnPlayerUpdate ..
pawn Код:
new Float:VidaJugador; // Definis la vida del jugador
GetPlayerHealth(playerid,VidaJugador); // Extraes la vida
if(VidaJugador <= 15) // Chequea que si tiene 15 de vida... (podes cambiarlo a cuanto quieras)
  {
   new string[128];
   new Float:POSPH[3];
   GetPlayerPos(playerid,POSPH[0],POSPH[1],POSPH[2]);
   ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0); // Aplica la animacion de crack
   SendClientMessage(playerid,0xFF6347AA,"Tu estado de salud es pйsimo, llama a un medico."); // Le envia el mensaje al jugador
   return 1;
   }
Saludos


Re: Hacer que se caiga al suelo cuando tenga poca vida - lokor - 08.08.2011

Hey agregue el codigo y lo mirй para saber como hacerlo yo cuando sea necesario!! Muchas Gracias tincho!!


Respuesta: Hacer que se caiga al suelo cuando tenga poca vida - Tharkas - 13.10.2011

Bueno tambien andaba buscando algo asн, el de Tincho funciona pero le falta algo. El mensaje "Tu estado de salud es pйsimo, llama a un medico." Se repite continuamente, alguna idea para que solo salga una vez?
Y tambien queria ponerle que cada tanto tiempo vaya perdiendo vida una vez esta en el suelo.


Respuesta: Hacer que se caiga al suelo cuando tenga poca vida - TheChaoz - 13.10.2011

pawn Код:
new bool:Msg[MAX_PLAYERS];//fuera del callback

    new Float:VidaJugador; // Definis la vida del jugador
    GetPlayerHealth(playerid,VidaJugador); // Extraes la vida
    if(VidaJugador <= 15){
        new string[128], Float:POSPH[3];
        GetPlayerPos(playerid,POSPH[0],POSPH[1],POSPH[2]);
        ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0); // Aplica la animacion de crack
        if(!Msg[playerid])SendClientMessage(playerid,0xFF6347AA,"Tu estado de salud es pйsimo, llama a un medico."); // Le envia el mensaje al jugador
        Msg[playerid] = true;
    }
    else{
        Msg[playerid] = false;
    }
    return 1;



Respuesta: Hacer que se caiga al suelo cuando tenga poca vida - TiNcH010 - 14.10.2011

Quote:
Originally Posted by Tharkas
Посмотреть сообщение
Bueno tambien andaba buscando algo asн, el de Tincho funciona pero le falta algo. El mensaje "Tu estado de salud es pйsimo, llama a un medico." Se repite continuamente, alguna idea para que solo salga una vez?
Y tambien queria ponerle que cada tanto tiempo vaya perdiendo vida una vez esta en el suelo.
Utilizando una variable y chequeando el mensaje. Despuйs de testear el codigo que deje es cierto eso de que te repite el mensaje millonйsimas de veces floodeando el chat, lo hice rapido x eso. Usa asн:

pawn Код:
// definн en otra parte:

MandarMensajeHerido[MAX_PLAYERS];

// en OnPlayerConnect:

MandarMensajeHerido[playerid] = 0;

// lo edite un poco...

        new Float:VidaJugador;
        GetPlayerHealth(playerid,VidaJugador);
        if(VidaJugador <= 15)
        {
            new string[128];
            new Float:POSPH[3];
            GetPlayerPos(playerid,POSPH[0],POSPH[1],POSPH[2]);
            ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0);
            ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0);
            if(MandarMensajeHerido[playerid] == 0)
            {
            MandarMensajeHerido[playerid] = 1;
            TogglePlayerControllable(playerid, 0);
            SendClientMessage(playerid,0xFF6347AA,"Tu estado de salud es pйsimo, llama a un medico."); // Le envia el mensaje al jugador
   }
   }
Recordб que esto lo tenes que poner todo en OnPlayerUpdate.
Saludos :P

edit: para lo de quitarle vida cada cierto tiempo usa un timer.

pawn Код:
SetTimer("BajarVida", 10000, 1); // Son 10 segundos, cambialo a cuantos quieras vos.

// Y en cualquier parte del GM:

forward BajarVida(playerid);
public BajarVida(playerid)
{
         static Float:BajarVida;
         GetPlayerHealth(playerid,BajarVida);
         SetPlayerHealth(playerid,BajarVida-10); // Le baja 10 de vida, ponele lo que quieras.
return 1;
}