[Ayuda] Animacion "Crack" Cuando queda poca vida
#1

Buena, Quisiera que me explicaran como puedo poner la animacion "Crack" Cuando al jugador le quede X cantidad de vida.

Gracias ^^
Reply
#2

Hola, lo primero que necesitas es algo que se mantenga verificando cuanta vida tiene cada jugador. Esto lo logramos por medio de un "timer" en conjunto de una funciуn, asн:
pawn Код:
public OnGameModeInit()
{
    SetTimer("VerificarVida", 999, true); // Esto hace que la funciуn llamada "VerificarVida" se ejecute cada 999 milisegundos por siempre.
    return 1;
}

forward VerificarVida();
public VerificarVida() // Esta es la funciуn que el timer va a repetir una y otra vez.
{
    return 1;
}
En la funciуn vamos a verificar la vida de cada jugador, y si la misma es menor a x valor, le aplicaremos la animaciуn una sola vez. Hay un problema, la funciуn se ejecuta una y otra vez, por lo que si la vida del jugador en cuestiуn es menor a x todas esas veces, la animaciуn tambiйn se aplicarб todas estas veces. Para corregir esto, vamos a utilizar una variable tipo boleana que cambiaremos despuйs de aplicar la animaciуn.
pawn Код:
new bool:EstaMuriendo[MAX_PLAYERS] = {false, ...};

public OnGameModeInit()
{
    SetTimer("VerificarVida", 999, true);
    return 1;
}

forward VerificarVida();
public VerificarVida()
{
    for(new i = 0; i < MAX_PLAYERS; ++ i)
    {
        if((EstaMuriendo[i] == false)(IsPlayerConnected(i))) // Solo se tratarбn los jugadores que no esten muriendo y que estйn conectados.
        {
            new
                Float:vida;
               
            GetPlayerHealth(i, vida); // Obtenemos la vida y la guardamos en la variable "vida".
            if(vida < x) // Sustituir x por la cantidad de vida para aplicar la animaciуn.
            {
                // Aquн aplicamos la animaciуn.
                EstaMuriendo[i] = true; // Ya que ahora el jugador estб muriendo hay que cambiar la variable a "true".
            }
        }
    }
    return 1;
}
Ahora lo ъnico que debes recordar es que al terminar de aplicar la animaciуn (cuando ya no estй muriendo) hay que volver a cambiar "EstaMuriendo" a false, asн:
pawn Код:
EstaMuriendo[numero_de_jugador] = false; // Pongo nъmero de jugador porque puede ser cualquier variable o nъmero.
їAlguna pregunta?
Reply
#3

pawn Код:
public OnPlayerUpdate(playerid)
{
   new Float:vida;
   GetPlayerHealth(i, vida);
   if(vida <= 5) return "linea de la animaciуn" // Sin las "".
   return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)