Que Baje La Vida Automatica
#1

Buenas nesesito Un Sitema Tipo Rp Que Cada 15 m Baje 10 De Vitalidad De 100 a 90 90 a 80
Grasias.
Reply
#2

"Necesitas" yo necesito 1000 dollares, me los das?

trabaja con un timer y la funcion GivePlayerHealth
Reply
#3

Puedes usar un timer, es lo mбs lуgico.

Lo formamos:

pawn Код:
public OnPlayerConnect(playerid)
{
  SetTimer("vida", 150000, true); //Este es el timer.
  return 1;
}
Ahora la funciуn que realiza (quitar vida):

pawn Код:
//Esto lo pones en cualquier sitio (no en un callback).
forward vida(playerid);
public vida(playerid)
{
  SetPlayerHealth(playerid, GetPlayerHealth(playerid) - 10);
 //Lo que le quita.
}
Y tambiйn podemos hacer un aviso cuando tenga poca vida:

pawn Код:
public OnPlayerStateChange(playerid,newstate,oldstate) //No te olvides del callback ni tampoco lo dupliques (poner 2 mismos callback), ponlo en el que ya tengas.
{
  new Float:vida; //El "new".
  GetPlayerHealth(playerid,vida); //Obtenemos la vida del jugador.
  if (vida < 10.0) //Si la vida del jugador es menor a 10.
  {
    SendClientMessage(playerid, 0xFF0000FF, "* ЎTe estбs muriendo, necesitas comer algo!"); //Mensaje
  }
  return 1;
}
Editado. їFunciona?
Reply
#4

Ya Avia Probado Con el SetHealtPlayer -10 Pero Me Mataba A El Personaje.
Intentare Nuevamente.
Desde Ya muchas Gracias.
Reply
#5

Quote:
Originally Posted by Lautaro_eb
Ya Avia Probado Con el SetHealtPlayer -10 Pero Me Mataba A El Personaje.
Intentare Nuevamente.
Desde Ya muchas Gracias.
nono error: sethealthplayer -10 hace que tengo -10 de vida No le resta 10 Si no que le deja -10 por abajo de 0.



Reply
#6

Por Eso MIsmo Si ALguien Tiene una Solucion.-
Reply
#7

Vamos a tratar de crear unos simples stock's:
pawn Код:
new MeEstoyMuriendo[MAX_PLAYERS];
pawn Код:
stock QuitarXVidaCadaXTiempo(playerid, Float:vida, tiempo) // tiempo en segundos, por lo que 15 minutos son 900 segundos (15 x 60)
{
  MeEstoyMuriendo[playerid] = SetTimerEx("Suicidame", tiempo * 1000, true, "if", playerid, vida);
}
pawn Код:
stock NoQuieroMorirMas(playerid) // esto sirve para parar de quitarle vida
{
  KillTimer(MeEstoyMuriendo[playerid]);
}
pawn Код:
forward Suicidame(playerid, vida);
public Suicidame(playerid, vida)
{
  new
    Float:vitalidadact;

  GetPlayerHealth(playerid, vitalidadact); // primero obtienes la vida que tiene y luego...
  SetPlayerHealth(playerid, vitalidadact - vida); // se le resta "vida" a la vida total
  return 1;  
}
Como usarlo:

Busca en el lugar que lo quieras poner... yo escojo cuando mate a alguien:
pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
  if(killerid != INVALID_PLAYER_ID) QuitarXVidaCadaXTiempo(killerid, 10, 900);
  if(IsPlayerConnected(playerid)) NoQuieroMorirMas(playerid);
  return 1;
}
Y listo!
Reply
#8

Quote:
Originally Posted by xenowort
Quote:
Originally Posted by Lautaro_eb
Ya Avia Probado Con el SetHealtPlayer -10 Pero Me Mataba A El Personaje.
Intentare Nuevamente.
Desde Ya muchas Gracias.
nono error: sethealthplayer -10 hace que tengo -10 de vida No le resta 10 Si no que le deja -10 por abajo de 0.
Puse otra cosa.
Reply
#9

Para que sirve esto ?
pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
  if(killerid != INVALID_PLAYER_ID) QuitarXVidaCadaXTiempo(killerid, 10, 900);
  if(IsPlayerConnected(playerid)) NoQuieroMorirMas(playerid);
  return 1;
}
PD : Les Agradesco A Todos Por Su repuesta.
Solucionado.
Reply
#10

Es un ejemplo, cuando el jugador muere, al asesino se le aplica el "QuitarXVidaCadaXTiempo" y al muerto se le remueve, utilizando "NoQuieroMorirMas". Puedes utilizar los stocks donde quieras.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)