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