SA-MP Forums Archive
IsPlayerInArea nao ta indo, o q ta errado?? - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: IsPlayerInArea nao ta indo, o q ta errado?? (/showthread.php?tid=214780)



Problema com IsPlayerInArea cуdigo completo, o q nao funciona? - bruno_orlandi - 22.01.2011

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



Re: IsPlayerInArea nao ta indo, o q ta errado?? - Ryan_Howllet - 22.01.2011

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.


Re: IsPlayerInArea nao ta indo, o q ta errado?? - ManoLexuS - 22.01.2011

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.


Re: IsPlayerInArea nao ta indo, o q ta errado?? - Domozinho - 22.01.2011

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


Re: IsPlayerInArea nao ta indo, o q ta errado?? - bruno_orlandi - 22.01.2011

Deem uma olhada ai postei tudo....


Re: IsPlayerInArea nao ta indo, o q ta errado?? - Domozinho - 22.01.2011

Estб errado:

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



Re: IsPlayerInArea nao ta indo, o q ta errado?? - bruno_orlandi - 22.01.2011

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


Re: IsPlayerInArea nao ta indo, o q ta errado?? - bruno_orlandi - 22.01.2011

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...


Re: IsPlayerInArea nao ta indo, o q ta errado?? - ManoLexuS - 22.01.2011

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



Re: IsPlayerInArea nao ta indo, o q ta errado?? - rjjj - 22.01.2011

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