SA-MP Forums Archive
[Ajuda] Dъvida em relaзгo a esta lуgica - 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] Dъvida em relaзгo a esta lуgica (/showthread.php?tid=586070)



Dъvida em relaзгo a esta lуgica - pWesley - 19.08.2015

Eu estou tentando elaborar um comando especнfico para fazer checagem se hб pessoas em um determinado RAIO, que й mais ou menos assim:

pawn Код:
for(new i = 0; i < sizeof(BizzInfo); i++)
{
    for(new a; a < GetMaxPlayers(); a++)
    {
        if(IsPlayerInRangeOfPoint(a, 3.0, BizzInfo[i][bEntranceX], BizzInfo[i][bEntranceY], BizzInfo[i][bEntranceZ]))
        {
            // Cуdigo cortado
        }
    }
}
Queria identificar se essa lуgica, de uma funзгo se aplicaria caso UM PLAYER use o comando e o pessoal AO REDOR seja afetado pelo mesmo, digamos assim e se ela estб correta.


Re: Dъvida em relaзгo a esta lуgica - n0minal - 19.08.2015

1-Use foreach ao invйs de GetMaxPlayers
2-Nгo iguale uma variбvel a 0 na hora da criaзгo, o valor padrгo de uma variбvel do tipo inteiro quando vocк a cria, jб й 0.
3-Verifique se o a nгo й o playerid
4-Caso queira interromper o loop e todo o cуdigo processado dentro da funзгo, use return, mas tenta explicar melhor o que vocк estб tentando fazer...


Re: Dъvida em relaзгo a esta lуgica - pWesley - 19.08.2015

Sу quero saber se a lуgica de checagem de pessoas em determinada posiзгo й correta. Independente se somente UMA PESSOA aciona a funзгo.

Por exemplo, eu digito /invadir e todos que estгo perto de mim tambйm entrarem no local de invasгo.


Re: Dъvida em relaзгo a esta lуgica - iTakelot - 19.08.2015

a funзгo vai ser chamada a todos que estiverem perto de vocк, sу que eu acho melhor ser usado assim:

PHP код:
GetPlayerPos(playerid,Cords[0],Cords[1],Cords[2]);
    for(new 
0GetMaxPlayers(); != x; ++i)
    {
        if(
IsPlayerInRangeOfPoint(i,30,Cords[0],Cords[1],Cords[2]))
        {
            
// Cуdigo cortado
        
}
    }




Re: Dъvida em relaзгo a esta lуgica - n0minal - 19.08.2015

Quote:
Originally Posted by iTakelot
Посмотреть сообщение
a funзгo vai ser chamada a todos que estiverem perto de vocк, sу que eu acho melhor ser usado assim:

PHP код:
GetPlayerPos(playerid,Cords[0],Cords[1],Cords[2]);
    for(new 
0GetMaxPlayers(); != x; ++i)
    {
        if(
IsPlayerInRangeOfPoint(i,30,Cords[0],Cords[1],Cords[2]))
        {
            
// Cуdigo cortado
        
}
    }

Vai dar warning, o radius tem q ser em float e nгo em int.

Код:
static Float:Coords[3];
GetPlayerPos(playerid, Coords[0], Coords[1], Coords[2]);
foreach(new i : Player)
{
	if(i == playerid || !IsPlayerInRangeOfPoint(i, 30.0, Coords[0], Coords[1], Coords[2])) continue;//pula o player caso ele seja o prуprio player ou nгo esteja num raio de 30 metros...
        //aqui vocк faz o que quer com o grupo de pessoas que estгo dentro do raio de 30.0 e nгo sгo o prуprio player...
}



Re: Dъvida em relaзгo a esta lуgica - Dayvison_ - 19.08.2015

Quote:
Originally Posted by ipsLeon
Посмотреть сообщение
1-Use foreach ao invйs de GetMaxPlayers
2-Nгo iguale uma variбvel a 0 na hora da criaзгo, o valor padrгo de uma variбvel do tipo inteiro quando vocк a cria, jб й 0.
3-Verifique se o a nгo й o playerid
4-Caso queira interromper o loop e todo o cуdigo processado dentro da funзгo, use return, mas tenta explicar melhor o que vocк estб tentando fazer...
Correзгo, use foreah ao invйs de Loop comun(for)


Re: Dъvida em relaзгo a esta lуgica - Bruno13 - 19.08.2015

Quote:
Originally Posted by ipsLeon
Посмотреть сообщение
Vai dar warning, o radius tem q ser em float e nгo em int.
Na verdade nгo darб warning, atй porque uma vez que passar um nъmero inteiro para um parвmetro flutuante, automaticamente este int serб passado para float


Re: Dъvida em relaзгo a esta lуgica - pWesley - 19.08.2015

Deus do cйu, eu nгo estou preocupado se vou usar Foreach ou Loop, a ъnica coisa que eu quero й que responda.

A MINHA LУGICA ESTБ CERTA?


Re: Dъvida em relaзгo a esta lуgica - Dayvison_ - 19.08.2015

Sim estб certa


Re: Dъvida em relaзгo a esta lуgica - pWesley - 26.08.2015

Revivendo este tуpico para tirar uma dъvida.

Como eu faзo uma contagem com os players A PARTIR do momento que eles se movem para tal destino (seguindo o exemplo do meu cуdigo)?