IsPlayerInArea nao ta indo, o q ta errado??
#1

No topo ta assim
Код:
new Area;
new NumeroPlayers;
new Pontos;
new Piscando;
No OnGmaeModeInit
Код:
    Area = GangZoneCreate(-2417.1812,-408.2285,-2578.8052,-492.4147);
    NumeroPlayers= 0;
Dentro de um timer q repete a cada segundo:
Код:
	for(new i = 0; i < MAX_PLAYERS; i++)
	{
		if(IsPlayerConnected(i))
		{
		if(gTeam[i] == TEAM_1)
		{
		if(IsPlayerInArea(i,-2417.1812,-408.2285,-2578.8052,-492.4147))
		{
		    NumeroPlayers++;
		    if(Piscando == 0)
		    {
				SendClientMessageToAll(COLOR_ADD, "Estгo atacando a Area!");
		    	        GangZoneFlashForAll(Area,PISCA);
				Piscando = 1;
		    }
		}
		}
		}
	}
	if(NumeroPlayers <= 0 && Piscando == 1)
	{
		SendClientMessageToAll(COLOR_ADD, "Area se defendeu do Ataque");
    	        GangZoneStopFlashForAll(Favela);
		Piscando = 0;
	}
	if(Piscando == 1)
	{
		Pontos++;
		format(string, sizeof(string), "Pontos na Area: %d",Pontos);
		SendClientMessageToAll(COLOR_ADD, string);
	}
No final:
Код:
stock IsPlayerInArea(playerid, Float:minx, Float:miny, Float:maxx, Float:maxy)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
if (x > minx && x < maxx && y > miny && y < maxy) return true;
return false;
}
O q eu quero й q quando tem um jogador na Area o contador de pontos vai subindo a cada segundo(o contador aparece lб como SendClientMessageToAll mas й q eu ainda nгo o fiz, й sу teste), sу q na hora de ver os players na Area, a parte de IsPlayerConnected e gTeam ocorre tudo ok, quando chega no IsPlayerInArea ele nao funciona.
A ordem eu coloquei pra ficar igual o gang zone Float:minx, Float:miny, Float:maxx, Float:maxy e ainda nao funciona.
Mesmo num simples comando q eu fiz ele nao funciona:
Код:
    if(strcmp(cmd, "/area", true) == 0)
    {
		if(IsPlayerInArea(playerid,-2417.1812,-408.2285,-2578.8052,-492.4147))
		{
			SendClientMessage(playerid, COLOR_GREY, "TБ NA AREA");
		}
		else
		{
			SendClientMessage(playerid, COLOR_GREY, "NГO TA NA AREA");
		}
		return 1;
    }
Reply
#2

Se vocк nгo postar a funзгo nгo tem como nуs te ajudar-mos.

Entгo mais uma vez a famosa frase 'Nгo somos videntes.'

Posta o cуdigo inteiro, ou nгo poste nada, estamos para ajudar, mas para te ajudar vocк precisa nos ajudar.
Reply
#3

Tente trocando return 1; por return true;
e return 0; por return false;

Meu code estб praticamente igual ao seu e funciona, sу tem essa diferenзa de return's. Outra coisa, se vc estб colocando as coordenadas na mesma ordem da GZ pode ser isso que estб dando errado, pois em gangzonecreate й

minx, miny, maxx, maxy
e seu code:
minx, maxx, miny, maxy

Se vocк sу copiou e colou as coordenadas e nem reparou no detalhe acima, concerteza deve ser isso que estб dando errado.
Reply
#4

ManoLexuS nгo existe diferenзa em return 1; pra return true; й a mesma coisa e tambйm se diz pra 0 e false.
Reply
#5

Deem uma olhada ai postei tudo....
Reply
#6

Estб errado:

pawn Код:
if (IsPlayerInRangeOfPoint(playerid, 5.0, -2417.1812, -408.2285, -2578.8052)
Reply
#7

Substituo o IsPlayerInArea por esse dai?
Mas o -2578.8052 nao й uma coordena Z й o limite mбximo de X
Reply
#8

Quote:
Originally Posted by Ryan_Howllet
Посмотреть сообщение
Se vocк nгo postar a funзгo nгo tem como nуs te ajudar-mos.

Entгo mais uma vez a famosa frase 'Nгo somos videntes.'

Posta o cуdigo inteiro, ou nгo poste nada, estamos para ajudar, mas para te ajudar vocк precisa nos ajudar.
cara olha ai eu postei o codigo inteiro...
Reply
#9

Teste com isso:
pawn Код:
if(IsPlayerInArea(playerid, -2578.8052, -492.4147, -2417.1812, -408.2285))
Reply
#10

Troque sua stock por esta:

pawn Код:
stock IsPlayerInArea(playerid, Float:minx, Float:miny, Float:maxx, Float:maxy)
{
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid, x, y, z);
    if(x >= minx && y >= miny && x <= maxx && y <= maxy) return true;
    else return false;
}
Espero ter ajudado
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)