SA-MP Forums Archive
[Ajuda] checar se o jogador ta na gangzone - 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: [Ajuda] checar se o jogador ta na gangzone (/showthread.php?tid=597083)



checar se o jogador ta na gangzone - Lucas_HenryK - 26.12.2015

pawn Код:
GangZoneCreate(128.1725,1274.4392,-365.3042,944.3629);

fiz isso no onplayerupdate

 if(IsPlayerInArea(playerid,128.1725,1274.4392,-365.3042,944.3629) && arena == 3) {
        return 1;
    } else {
        SendClientMessage(playerid, COLOR_RED, "volta pra arena ou vc vai ser morto!");
        return 0;
    }

e peguei essa stock no forum

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 1;
    }
    return 0;
}
eu estando ou nao na arena sempre flooda meu chat


Re: checar se o jogador ta na gangzone - 99fe3rnando - 26.12.2015

https://sampforum.blast.hk/showthread.php?tid=589169
faзa um timer usando "SetTimer", OnPlayerUpdate й muito constante vai causar lag


Re: checar se o jogador ta na gangzone - Lucas_HenryK - 26.12.2015

n consegui ainda


Re: checar se o jogador ta na gangzone - SaDaN - 26.12.2015

Код:
stock IsPlayerInPlace(playerid,Float:XMin,Float:YMin,Float:XMax,Float:YMax )
{
	new RetValue = 0;
	new Float:X,Float:Y,Float:Z;
	GetPlayerPos(playerid,X,Y,Z );

	if( X >= XMin && Y >= YMin && X < XMax && Y < YMax )
	{
		RetValue = 1;
	}
	return RetValue;
}



Re: checar se o jogador ta na gangzone - EditPawn - 26.12.2015

Tente dessa forma

PHP код:
CMD:iniciar(playerid)
{
    
arena 3;
    
VerificarArea(playerid);
    return 
1;
}
forward VerificarArea(playerid); public VerificarArea(playerid) {
    static 
cont;
    if(
arena == 3) {
        if(!
IsPlayerInArea(playerid128.17251274.4392, -365.3042944.3629)) {
            if(
cont == 3) {
                
cont 0;
                
SetPlayerHealth(playerid0.0);
                
SendClientMessage(playeridCOLOR_RED"vocк foi morto!");
                return 
1;
            }
            
SendClientMessage(playeridCOLOR_RED"volta pra arena ou vc vai ser morto!");
            
cont++;
        }
        else 
cont 0;
        
SetTimerEx("VerificarArea"1000false"i"playerid);
    }
    return 
1;
}
IsPlayerInArea(playeridFloat:MinXFloat:MinYFloat:MaxXFloat:MaxY) {
    new 
Float:XFloat:YFloat:Z;
    
GetPlayerPos(playeridXYZ);
    if(
>= MinX && <= MaxX && >= MinY && <= MaxY) return 1;
    return 
0;




Re: checar se o jogador ta na gangzone - Lucas_HenryK - 26.12.2015

funciou editpawn porem quando to na gangzone fala que nao to


Re: checar se o jogador ta na gangzone - Lucas_HenryK - 28.12.2015

alguem tem outra sugestao ae?


Re: checar se o jogador ta na gangzone - EditPawn - 28.12.2015

Quote:
Originally Posted by Lucas_HenryK
Посмотреть сообщение
funciou editpawn porem quando to na gangzone fala que nao to
Troque isso :

PHP код:
if(!IsPlayerInArea(playerid128.17251274.4392, -365.3042944.3629)) 
por isso:

PHP код:
if(IsPlayerInArea(playerid128.17251274.4392, -365.3042944.3629)) 



Re: checar se o jogador ta na gangzone - Lucas_HenryK - 28.12.2015

eu ja tinha tentado assim e nao deu cara


Re: checar se o jogador ta na gangzone - EditPawn - 28.12.2015

Tente dessa forma verificando todos os jogadores que estгo na GZ.

PHP код:
forward VerificarArea(); 
public 
VerificarArea() { 
    static 
cont[MAX_PLAYERS];
    if(
arena == 3) {
        for(new 
i!= MAX_PLAYERSi++) {
            if(!
IsPlayerConnected(i)) continue;
            
            if(
IsPlayerInArea(i128.17251274.4392, -365.3042944.3629)) cont[i] = 0;
            else
            { 
                if(
cont[i] == 3) { 
                    
cont[i] = 0
                    
SetPlayerHealth(i0.0); 
                    
SendClientMessage(iCOLOR_RED"vocк foi morto!"); 
                    return 
1
                } 
                
SendClientMessage(iCOLOR_RED"volta pra arena ou vc vai ser morto!");
                
cont[i]++; 
            }
        }
        
SetTimer("VerificarArea"1000false); 
    } 
    return 
1