[DUDA] Vida...
#1

Hola gente, quiero saber como puedo hacer que al apretar una tecla, la vida le aumente 18% de 100% cada vez, tengo una idea pero baja de 100 a 18 la vida... no se si me entienden, mi idea es hacer que al saltar, como normalmente resta daсo desde una altura, quiero compensarlo con vida para que le sume y esto que fuй sumado, sea restado en el daсo del salto...

Код:
if (newkeys & KEY_JUMP)
	{
	    if(gTeam[playerid] == TEAM_ZOMBIES)
    	   {
		if(Informacion[playerid][ClaseZombies] == 4) // Hunter
 		{
 		   if(Informacion[playerid][SaltoHunter] == 1) // Si estб activado el salto
		  {
		      SetPlayerHealth(playerid,18);
		      new Float:x, Float:y, Float:z;
		      GetPlayerVelocity(playerid, x, y, z);
		      SetPlayerVelocity(playerid, x,y,z+2.0);
            	  }
 		}
    	   }
	}
Reply
#2

pawn Код:
if (newkeys & KEY_JUMP)
    {
        if(gTeam[playerid] == TEAM_ZOMBIES)
        {
            if(Informacion[playerid][ClaseZombies] == 4) // Hunter
            {
                if(Informacion[playerid][SaltoHunter] == 1) // Si estб activado el salto
                {
                    new Float:Vida;
                    GetPlayerHealth(playerid, Vida);
                    SetPlayerHealth(playerid,Vida+18);
                    new Float:x, Float:y, Float:z;
                    GetPlayerVelocity(playerid, x, y, z);
                    SetPlayerVelocity(playerid, x,y,z+2.0);
                  }
            }
        }
    }
Reply
#3

El cуdigo de Tirael estб bien pero yo le pondrнa un lнmite porque sino asн podrб subir su vida infinitamente y serб invencible.

pawn Код:
if (newkeys & KEY_JUMP)
{
        if(gTeam[playerid] == TEAM_ZOMBIES)
            {
            if(Informacion[playerid][ClaseZombies] == 4) // Hunter
            {
                if(Informacion[playerid][SaltoHunter] == 1) // Si estб activado el salto
                {
                   new Float:Vida;
                       GetPlayerHealth(playerid, Vida);
                                   if(Vida == 100) return SendClientMessage(playerid, -1, "Ya tienes la vida al mбximo");
                                   SetPlayerHealth(playerid,Vida+18);
                                   if(Vida > 100){
                   SetPlayerHealth(playerid,100);
                                   }
                   new Float:x, Float:y, Float:z;
                   GetPlayerVelocity(playerid, x, y, z);
                   SetPlayerVelocity(playerid, x,y,z+2.0);
                                }
            }
            }
}
Explicaciуn:

if(Vida == 100) return SendClientMessage(playerid, -1, "Ya tienes la vida al mбximo");
Esto harб que si tiene la vida al 100 ya no pueda seguir sumando vida y no se ejecute la funciуn.



if(Vida > 100){
SetPlayerHealth(playerid,100);
}

їPor quй ponemos esto si ya con lo anterior no deja que se sume vida si la vida es 100?

Porque si el jugador tiene por ejemplo 99 lo dejarб sumar, quedarб con 117 de vida entonces el cуdigo se la pone en 100 y si se vuelve a querer sumar vida, saldrб el mensaje de que tiene la vida al mбximo.

No sй si lo quieras hacer asн pero lo supongo por eso lo pongo, saludos.
Reply
#4

Quote:
Originally Posted by Goncho28
Посмотреть сообщение
El cуdigo de Tirael estб bien pero yo le pondrнa un lнmite porque sino asн podrб subir su vida infinitamente y serб invencible.

pawn Код:
if (newkeys & KEY_JUMP)
{
        if(gTeam[playerid] == TEAM_ZOMBIES)
            {
            if(Informacion[playerid][ClaseZombies] == 4) // Hunter
            {
                if(Informacion[playerid][SaltoHunter] == 1) // Si estб activado el salto
                {
                   new Float:Vida;
                       GetPlayerHealth(playerid, Vida);
                                   if(Vida == 100) return SendClientMessage(playerid, -1, "Ya tienes la vida al mбximo");
                                   SetPlayerHealth(playerid,Vida+18);
                                   if(Vida > 100){
                   SetPlayerHealth(playerid,100);
                                   }
                   new Float:x, Float:y, Float:z;
                   GetPlayerVelocity(playerid, x, y, z);
                   SetPlayerVelocity(playerid, x,y,z+2.0);
                                }
            }
            }
}
Explicaciуn:

if(Vida == 100) return SendClientMessage(playerid, -1, "Ya tienes la vida al mбximo");
Esto harб que si tiene la vida al 100 ya no pueda seguir sumando vida y no se ejecute la funciуn.



if(Vida > 100){
SetPlayerHealth(playerid,100);
}

їPor quй ponemos esto si ya con lo anterior no deja que se sume vida si la vida es 100?

Porque si el jugador tiene por ejemplo 99 lo dejarб sumar, quedarб con 117 de vida entonces el cуdigo se la pone en 100 y si se vuelve a querer sumar vida, saldrб el mensaje de que tiene la vida al mбximo.

No sй si lo quieras hacer asн pero lo supongo por eso lo pongo, saludos.
Estб mal estructurado el cуdigo amigo, por que si activo la funciуn del salto, esta no funcionarб, o sea no servirб el comando, ya que mandas este error si es que tiene 100% de vida, entonces no funcionarб y retornarб la funciуn
Код:
if(Vida == 100) return SendClientMessage(playerid, -1, "Ya tienes la vida al mбximo");
Gracias por la ayuda igual pero no logro aъn solucionarlo, saludos
Reply
#5

El cуdigo estб bien, ї para que quieres que un user tenga mбs de 100 de vida ?.

Cuando te retorna el mensaje es por que el jugador tiene la vida completa.
Reply
#6

Entonces usa el de Tirael, pero la vidav va a ser infinita y los jugados invencibles y despuйs de cierto nivel de vida se buguea, pero haz como quieras. Saludos.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)