How avoid ability from team attack
#1

Hi!
how should i do that this ability doesn't drop on the ground team mates because now i can attack team and enemies so when i press alt everyone goes on the ground its rly annoying because if i make same think with freeze ability at same time i freeze enemies and team mates, so its rly fucked up. How should i avoid this. Here is code
Код:
	if(PRESSED(KEY_WALK))
	{
	    if(teams[playerid] == TEAM_ZOMBIE)
	    {
			if(pInfo[playerid][pZombieClass] == SCREAMERZOMBIE)
			{
			    if(gettime() - 15 < Abilitys[playerid][ScreamerZombieAb]) return GameTextForPlayer(playerid,"~w~ Still recovering",1000,5);
			    {
					foreach(new i : Player)
					{
          				switch(GetPlayerSkin(i))
     					{
     					    case NON_IMMUNE,285,181,249:
							{
	                            if(GetDistanceBetweenPlayers(playerid,i) < 5.0)
	                            {
							    	GetClosestPlayer(i);
	                                ApplyAnimation(i, "PED", "BIKE_fall_off", 4.1, 0, 1, 1, 1, 0, 1);
	                                GameTextForPlayer(i,"~n~~n~~n~~n~~g~Screamer Attacked",3500,5);
	                                SetTimerEx("ScreamerClearAnim",1500,0,"i",i);
									GivePlayerXP(playerid,2);
									Abilitys[playerid][ScreamerZombieAb] = gettime();
								}
							}
						}
					}
				}
			}
		}
	}
Variable of teams

Код:
if(teams[playerid] == TEAM_ZOMBIE)
Код:
if(teams[playerid] == TEAM_HUMAN)
Reply
#2

foreach(new i : Player)
{
if(teams[playerid] == teams[i] ) continue;
// rest of your code
Reply
#3

Like this?
Код:
	foreach(new i : Player)
    {
    if(teams[playerid] == teams[i] ) continue;
    
	if(PRESSED(KEY_WALK))
	{
	    if(teams[playerid] == TEAM_ZOMBIE)
	    {
			if(pInfo[playerid][pZombieClass] == SCREAMERZOMBIE)
			{
			    if(gettime() - 15 < Abilitys[playerid][ScreamerZombieAb]) return GameTextForPlayer(playerid,"~w~ Still recovering",1000,5);
			    {
          				switch(GetPlayerSkin(i))
     					{
     					    case NON_IMMUNE,285,181,249:
							{
	                            if(GetDistanceBetweenPlayers(playerid,i) < 5.0)
	                            {
							    	GetClosestPlayer(i);
	                                ApplyAnimation(i, "PED", "BIKE_fall_off", 4.1, 0, 1, 1, 1, 0, 1);
	                                GameTextForPlayer(i,"~n~~n~~n~~n~~g~Screamer Attacked",3500,5);
	                                SetTimerEx("ScreamerClearAnim",1500,0,"i",i);
									GivePlayerXP(playerid,2);
									Abilitys[playerid][ScreamerZombieAb] = gettime();
								}
							}
						}
					}
				}
			}
		}
	}
Reply
#4

Nope, leave foreach on previous position.

Like that:

Код:
if(PRESSED(KEY_WALK))
	{
	    if(teams[playerid] == TEAM_ZOMBIE)
	    {
			if(pInfo[playerid][pZombieClass] == SCREAMERZOMBIE)
			{
			    if(gettime() - 15 < Abilitys[playerid][ScreamerZombieAb]) return GameTextForPlayer(playerid,"~w~ Still recovering",1000,5);
			    {
					foreach(new i : Player)
					{
                                        if(teams[playerid] == teams[i] ) continue;
          				switch(GetPlayerSkin(i))
     					{
     					    case NON_IMMUNE,285,181,249:
							{
	                            if(GetDistanceBetweenPlayers(playerid,i) < 5.0)
	                            {
							    	GetClosestPlayer(i);
	                                ApplyAnimation(i, "PED", "BIKE_fall_off", 4.1, 0, 1, 1, 1, 0, 1);
	                                GameTextForPlayer(i,"~n~~n~~n~~n~~g~Screamer Attacked",3500,5);
	                                SetTimerEx("ScreamerClearAnim",1500,0,"i",i);
									GivePlayerXP(playerid,2);
									Abilitys[playerid][ScreamerZombieAb] = gettime();
								}
							}
						}
					}
				}
			}
		}
	}
Reply
#5

Like this?
Код:
if(PRESSED(KEY_WALK))
	{
	    if(teams[playerid] == TEAM_ZOMBIE)
	    {
			if(pInfo[playerid][pZombieClass] == SCREAMERZOMBIE)
			{
			    if(gettime() - 15 < Abilitys[playerid][ScreamerZombieAb]) return GameTextForPlayer(playerid,"~w~ Still recovering",1000,5);
			    {
					foreach(new i : Player)
					{
                        if(teams[playerid] == teams[i] ) continue;
                        {
          				switch(GetPlayerSkin(i))
     					{
     					    case NON_IMMUNE,285,181,249:
							{
	                            if(GetDistanceBetweenPlayers(playerid,i) < 5.0)
	                            {
							    	GetClosestPlayer(i);
	                                ApplyAnimation(i, "PED", "BIKE_fall_off", 4.1, 0, 1, 1, 1, 0, 1);
	                                GameTextForPlayer(i,"~n~~n~~n~~n~~g~Screamer Attacked",3500,5);
	                                SetTimerEx("ScreamerClearAnim",1500,0,"i",i);
									GivePlayerXP(playerid,2);
									Abilitys[playerid][ScreamerZombieAb] = gettime();
								}
Reply
#6

Ok i saw how you made it btw thanks!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)