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