Hacer que se caiga al suelo cuando tenga poca vida
#1

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
Reply
#2

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

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
Reply
#4

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

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.
Reply
#6

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;
Reply
#7

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;
}
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)