[Off] Essa й a melhor forma desse fazer uma loop para os players conectados?
#1

Creio que a primeira seja a melhor forma de criar um loop para a determinada quantidade de players online de forma que nгo perca tempo com ids invбlidos e a loop girando na quantidade certa. Estou correto ou errado?
PHP код:
for(new 0GetPlayerPoolSize(); <= j; ++i)
{
    if(
IsPlayerConnected(i)) SendClientMessage(i, -1"Hello World !");
}
for(new 
0MAX_PLAYERS; ++i)
{
    if(
IsPlayerConnected(i)) SendClientMessage(i, -1"Hello World !");
}
for(new 
0GetMaxPlayers(); ++i)
{
    if(
IsPlayerConnected(i)) SendClientMessage(i, -1"Hello World !");

Reply
#2

No topo do GM:
pawn Код:
#undef MAX_PLAYERS
#define MAX_PLAYERS (50) // Altere de acordo com a quantidade de slots que vocк liberar.
Use a include foreach.

E os seguinte loop:
pawn Код:
foreach (new i : Player)
{
    //Cуdigo aqui
}
Basta configurar alguns if's que fica tranquilo.
Reply
#3

Quote:
Originally Posted by willttoonn
Посмотреть сообщение
No topo do GM:
pawn Код:
#undef MAX_PLAYERS
#define MAX_PLAYERS (50) // Altere de acordo com a quantidade de slots que vocк liberar.
Eu faзo isso mas n sabia q dava para definir a mesma funзгo q vc desabilitou, eu uso SLOTS em vez de MAX_PLAYERS
Reply
#4

use a include foreach , pega apenas os players online !
Reply
#5

Quote:
Originally Posted by willttoonn
Посмотреть сообщение
No topo do GM:
pawn Код:
#undef MAX_PLAYERS
#define MAX_PLAYERS (50) // Altere de acordo com a quantidade de slots que vocк liberar.
Use a include foreach.

E os seguinte loop:
pawn Код:
foreach (new i : Player)
{
    //Cуdigo aqui
}
Basta configurar alguns if's que fica tranquilo.
Nгo й bem assim que utiliza esta famosa include do ******.


--



Bom, fiz comentando:

PHP код:
for(new 0GetPlayerPoolSize(); <= j; ++i)  // pegarб jogadores online somente
for(new 0MAX_PLAYERS; ++i)  // Percorerб 500 players (geralmente oque estб definido na variбvel MAX_PLAYERS)
for(new 0GetMaxPlayers(); ++i// Pegarб a quantidade de slots tem no servidor. 
Reply
#6

Quote:
Originally Posted by zSuYaNw
Посмотреть сообщение
Nгo й bem assim que utiliza esta famosa include do ******.


--



Bom, fiz comentando:

PHP код:
for(new 0GetPlayerPoolSize(); <= j; ++i)  // pegarб jogadores online somente
for(new 0MAX_PLAYERS; ++i)  // Percorerб 500 players (geralmente oque estб definido na variбvel MAX_PLAYERS)
for(new 0GetMaxPlayers(); ++i// Pegarб a quantidade de slots tem no servidor. 
Sу uma observaзгo.
GetPlayerPoolSize() pegarб o ultimo ID. Isto nгo quer dizer que nгo haverб ids desconectados.
Reply
#7

Quote:
Originally Posted by NicK_
Посмотреть сообщение
Sу uma observaзгo.
GetPlayerPoolSize() pegarб o ultimo ID. Isto nгo quer dizer que nгo haverб ids desconectados.
Sim, mas minha observaзгo continua vбlida pois no loop que o mesmo estб dando exemplo, contйm a condiзгo IsPlayerConnected.

Quote:
Originally Posted by ipsLeon
Посмотреть сообщение
O GetPlayerPoolSize retorna o maior id do player conectado

Isto й, digamos que o temos o servidor com 100 slots, e os seguintes players conectados:

Код:
ID 18
ID 5
ID 2
ID 20
A Funзгo GetMaxPlayers(), irб percorrer por 100 players, mesmo estando somente 4 online. Agora a funзгo GetPlayerPoolSize() irб percorrer 20 players somente, pois o jogador que contйm o ID maior 20. Agora quando usamos a definiзгo "MAX_PLAYERS" com as mesmas condiзхes acima irб percorrer 500 vezes.



Concluнmos que, cada uma das trкs tem suas usualidades diversificadas ou seja, Depende no que e Pra Quк vocк vai usar um loop.

Bons estudos.
Reply
#8

Repetindo: A Melhor forma dos trкs mйtodos citados no tуpico, sim.

Porйm agora com as funзхes Pools eu nгo vejo mais necessidade no foreach. Sei lб... nunca nem sequer abri o arquivo dele pra estudar, mas por deduзгo уbvia acredito que ele funciona da mesma maneira... cheio de variбveis pra fazer isso. Se eu fosse fazer um gamemode novo hoje usaria as funзхes Pool em vez de foreach!
Reply
#9

Quote:
Originally Posted by SuperChock
Посмотреть сообщение
Repetindo: A Melhor forma dos trкs mйtodos citados no tуpico, sim.

Porйm agora com as funзхes Pools eu nгo vejo mais necessidade no foreach. Sei lб... nunca nem sequer abri o arquivo dele pra estudar, mas por deduзгo уbvia acredito que ele funciona da mesma maneira... cheio de variбveis pra fazer isso. Se eu fosse fazer um gamemode novo hoje usaria as funзхes Pool em vez de foreach!
Sim, PoolSize.
Reply
#10

Quote:
Originally Posted by SuperChock
Посмотреть сообщение
Repetindo: A Melhor forma dos trкs mйtodos citados no tуpico, sim.

Porйm agora com as funзхes Pools eu nгo vejo mais necessidade no foreach. Sei lб... nunca nem sequer abri o arquivo dele pra estudar, mas por deduзгo уbvia acredito que ele funciona da mesma maneira... cheio de variбveis pra fazer isso. Se eu fosse fazer um gamemode novo hoje usaria as funзхes Pool em vez de foreach!
Compare as velocidades de execuзгo: no exemplo dado pelo Garfield, um loop com GetPlayerPoolSize corresponderia a um total de 21 iteraзхes. Jб um loop com foreach corresponderia a apenas 4 iteraзхes, conforme o nъmero de jogadores conectados.



Espero ter ajudado .
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)