Quanto devo usar Maxplayers e playerid -
PetterAdriano - 23.01.2015
Pessoal isso estou com uma dъvida sobre MAX_PLAYERS e playerid
Eu sei que isso vai para todos os players mais no caso se o JogadorT for reprovado por fica mais de 5 minutos fora de um veнculo, serб que todos os jogadores que tiver com a variaveis do teste serгo reprovados? por causa do loop e do jogadorT ? pois quem deveria ser reprovado sу o jogadorT
Nesse Caso
pawn Код:
Auto_escola(playerid);
public Auto_escola(playerid)
{
new i;
while(i < MAX_PLAYERS)
{
i++;
if(Teste_De_Carro[i] == 1 || Teste_De_Moto[i] == 1 || Teste_De_Cam_Oni[i] == 1 || Teste_De_Barco[i] == 1 || Teste_De_Voo[i] == 1 && !IsPlayerInAnyVehicle(i))
{
SendClientMessage(i, 0xFA8072FF, "Vocк foi reprovado do teste de habilitaзгo por ficar mais de 5 minutos fora do veнculo da auto escola.");
PlayerPlaySound(i,1085, 0.0, 0.0, 0.0);
SetVehicleToRespawn(GetPlayerVehicleID(i));
DisablePlayerRaceCheckpoint(i);
SetPlayerVirtualWorld(i, 0);
SetPlayerInterior(i, 3);
SetPlayerPos(i, -2023.8905, -114.4800, 1035.1719);
SetPlayerFacingAngle(i, 93.8901);
VerificarEtapa[i] = 0;
Teste_De_Carro[i] = 0;
Teste_De_Moto[i] = 0;
Teste_De_Cam_Oni[i] = 0;
Teste_De_Barco[i] = 0;
Teste_De_Voo[i] = 0;
Pontos_Velo[i] = 0;
}
}
}
Agora fiz outro sem loop
EXEMPLO: Sou o id 0 e vou fazer o teste, serб que isso sу vai pegar pro id 0? essa funзгo sу irб acionar para o id 0, por causa que ta playerid e nгo o loop, isso que me deixa na dъvida Quando devo usar max_players e playerid
pawn Код:
if(Teste_De_Carro[playerid] == 1 || Teste_De_Moto[playerid] == 1 || Teste_De_Cam_Oni[playerid] == 1 || Teste_De_Barco[playerid] == 1 || Teste_De_Voo[playerid] == 1 && !IsPlayerInAnyVehicle(playerid))
{
SendClientMessage(playerid, 0xFA8072FF, "Vocк foi reprovado do teste de habilitaзгo por ficar mais de 5 minutos fora do veнculo da auto escola.");
PlayerPlaySound(playerid,1085, 0.0, 0.0, 0.0);
SetVehicleToRespawn(GetPlayerVehicleID(playerid));
DisablePlayerRaceCheckpoint(playerid);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerInterior(playerid, 3);
SetPlayerPos(playerid, -2023.8905, -114.4800, 1035.1719);
SetPlayerFacingAngle(playerid, 93.8901);
VerificarEtapa[playerid] = 0;
Teste_De_Carro[playerid] = 0;
Teste_De_Moto[playerid] = 0;
Teste_De_Cam_Oni[playerid] = 0;
Teste_De_Barco[playerid] = 0;
Teste_De_Voo[playerid] = 0;
Pontos_Velo[playerid] = 0;
}
Re: Quanto devo usar Maxplayers e playerid -
ipsLuan - 23.01.2015
Quando vocк usa playerid, ele esta referindo ao jogador.
Ja quando vocк utilizar MAX_PLAYERS com o loop, ele esta percorrendo em todos.
Exemplos.
pawn Код:
CMD:grana(playerid) {
for(new i=0; i<MAX_PLAYERS; i++) {
GivePlayerMoney(i, 50000);
}
print("Todos os conectados receberam 50000 reais");
return 1;
}
Com o loop, ele da 50000 de grana a todos os jogadores conectados, sem exceзхes.
pawn Код:
CMD:grana(playerid) {
GivePlayerMoney(playerid, 50000);
printf("O jogador id %d recebeu 50000 reais", playerid);
return 1;
}
Agora, ele da 50000 de grana apenas pro playerid (jogador que digita o comando).
Espero ter tirado sua duvida.
Abraзos,
Re: Quanto devo usar Maxplayers e playerid -
PT - 23.01.2015
Quote:
Originally Posted by xCR7
Quando vocк usa playerid, ele esta referindo ao jogador.
Ja quando vocк utilizar MAX_PLAYERS com o loop, ele esta percorrendo em todos.
Exemplos.
pawn Код:
CMD:grana(playerid) { for(new i=0; i<MAX_PLAYERS; i++) { GivePlayerMoney(i, 50000); } print("Todos os conectados receberam 50000 reais"); return 1; }
Com o loop, ele da 50000 de grana a todos os jogadores conectados, sem exceзхes.
pawn Код:
CMD:grana(playerid) { GivePlayerMoney(playerid, 50000); printf("O jogador id %d recebeu 50000 reais", playerid); return 1; }
Agora, ele da 50000 de grana apenas pro playerid (jogador que digita o comando).
Espero ter tirado sua duvida.
Abraзos,
|
MAX_PLAYERS tambйm pode ser usado para dar o "tamanho" a uma array
Re: Quanto devo usar Maxplayers e playerid -
PetterAdriano - 23.01.2015
Quote:
Originally Posted by xCR7
Quando vocк usa playerid, ele esta referindo ao jogador.
Ja quando vocк utilizar MAX_PLAYERS com o loop, ele esta percorrendo em todos.
Exemplos.
pawn Код:
CMD:grana(playerid) { for(new i=0; i<MAX_PLAYERS; i++) { GivePlayerMoney(i, 50000); } print("Todos os conectados receberam 50000 reais"); return 1; }
Com o loop, ele da 50000 de grana a todos os jogadores conectados, sem exceзхes.
pawn Код:
CMD:grana(playerid) { GivePlayerMoney(playerid, 50000); printf("O jogador id %d recebeu 50000 reais", playerid); return 1; }
Agora, ele da 50000 de grana apenas pro playerid (jogador que digita o comando).
Espero ter tirado sua duvida.
Abraзos,
|
pawn Код:
new i;
while(i < MAX_PLAYERS)
{
i++;
if(Teste_De_Carro[i] == 1 || Teste_De_Moto[i] == 1 || Teste_De_Cam_Oni[i] == 1 || Teste_De_Barco[i] == 1 || Teste_De_Voo[i] == 1 && !IsPlayerInAnyVehicle(i))
{
SendClientMessage(i, 0xFA8072FF, "Vocк foi reprovado do teste de habilitaзгo por ficar mais de 5 minutos fora do veнculo da auto escola.");
PlayerPlaySound(i,1085, 0.0, 0.0, 0.0);
SetVehicleToRespawn(GetPlayerVehicleID(i));
DisablePlayerRaceCheckpoint(i);
SetPlayerVirtualWorld(i, 0);
SetPlayerInterior(i, 3);
SetPlayerPos(i, -2023.8905, -114.4800, 1035.1719);
SetPlayerFacingAngle(i, 93.8901);
VerificarEtapa[i] = 0;
Teste_De_Carro[i] = 0;
Teste_De_Moto[i] = 0;
Teste_De_Cam_Oni[i] = 0;
Teste_De_Barco[i] = 0;
Teste_De_Voo[i] = 0;
Pontos_Velo[i] = 0;
}
}
Entгo nesse caso eu nгo preciso usar loop, por que й um sistema de auto escola.
ai cada jogador irб fazer sua prуpria aula para poder adquirir sua licenзa, estou certo?
Re: Quanto devo usar Maxplayers e playerid -
ipsLuan - 23.01.2015
Quote:
Originally Posted by PetterAdriano
pawn Код:
new i; while(i < MAX_PLAYERS) { i++; if(Teste_De_Carro[i] == 1 || Teste_De_Moto[i] == 1 || Teste_De_Cam_Oni[i] == 1 || Teste_De_Barco[i] == 1 || Teste_De_Voo[i] == 1 && !IsPlayerInAnyVehicle(i)) { SendClientMessage(i, 0xFA8072FF, "Vocк foi reprovado do teste de habilitaзгo por ficar mais de 5 minutos fora do veнculo da auto escola."); PlayerPlaySound(i,1085, 0.0, 0.0, 0.0); SetVehicleToRespawn(GetPlayerVehicleID(i)); DisablePlayerRaceCheckpoint(i); SetPlayerVirtualWorld(i, 0); SetPlayerInterior(i, 3); SetPlayerPos(i, -2023.8905, -114.4800, 1035.1719); SetPlayerFacingAngle(i, 93.8901); VerificarEtapa[i] = 0; Teste_De_Carro[i] = 0; Teste_De_Moto[i] = 0; Teste_De_Cam_Oni[i] = 0; Teste_De_Barco[i] = 0; Teste_De_Voo[i] = 0; Pontos_Velo[i] = 0; } }
Entгo nesse caso eu nгo preciso usar loop, por que й um sistema de auto escola.
ai cada jogador irб fazer sua prуpria aula para poder adquirir sua licenзa, estou certo?
|
Sim, nгo ha a necessidade de criar um loop.
Abraзos,
Re: Quanto devo usar Maxplayers e playerid -
Artista - 23.01.2015
Nгo hб necessidade de usar um loop, jб que o sistema que vocк quer fazer й individual.
MAX_PLAYERS, tem o valor por padrгo de 500. Isto й, quando vocк declara uma variбvel com a definiзгo
MAX_PLAYERS vocк esta na verdade criando um vetor com
500 posiзхes.
Um exemplo bem bбsico:
pawn Код:
new Vetor[MAX_PLAYERS] = { 'h','e','l','l','o', ' ', 'd','a','r','k','n','e','s','s',' ','m','y',' ','o','l','d',' ','f','r','i','e','n','d' };
printf(Vetor);
Vai imprimir:
hello darkness my old friend
Como o PT disse, MAX_PLAYERS й apenas um tamanho.
Re: Quanto devo usar Maxplayers e playerid -
PetterAdriano - 23.01.2015
Quote:
Originally Posted by xCR7
Sim, nгo ha a necessidade de criar um loop.
Abraзos,
|
Eu fiz isso e testei comigo e com meu irmгo, mais a funзгo sу pegou para o id 0 e nгo para os outros id's
Re: Quanto devo usar Maxplayers e playerid -
JonathanFeitosa - 23.01.2015
lembrando que vocк tambйm tem que tirar o conceito de:
"sу pode usar playerid quando usar maxPlayers"
"Loop serve para pegar todos os Players".
Etc..
Tens que aprender o conceito de cada um e porque utiliza para isso. Entгo procure pesquisar por partes.
Re: Quanto devo usar Maxplayers e playerid -
PetterAdriano - 23.01.2015
Quote:
Originally Posted by JonathanFeitosa
lembrando que vocк tambйm tem que tirar o conceito de:
"sу pode usar playerid quando usar maxPlayers"
"Loop serve para pegar todos os Players".
Etc..
Tens que aprender o conceito de cada um e porque utiliza para isso. Entгo procure pesquisar por partes.
|
Foda... й isso que to confuso de mais

Re: Quanto devo usar Maxplayers e playerid -
Artista - 23.01.2015
Quote:
Originally Posted by PetterAdriano
Foda... й isso que to confuso de mais  
|
loops sгo estruturas de repetiзгo.
Sabendo disso, em qual ocasiгo devemos usб-las?
Digamos que vocк queira dar grana a todos os jogadores, vocк faria...
pawn Код:
GivePlayerMoney(0, 1000);
GivePlayerMoney(1, 1000);
GivePlayerMoney(2, 1000);
// ... atй chegar ao nъmero total desejado
Assim?
Nгo, seria muito cansativo!
Entгo sгo nessas ocasiхes que o loop
for й bem empregado!
O for tem 3 especificaзхes:
onde comeзa
onde termina
quanto serб o incremento ou decremento por volta
Portanto, no exemplo acima poderнamos fazer assim:
pawn Код:
for ( new i = 0; i < MAX_PLAYERS; i++ ) GivePlayerMoney(i, 1000);
Muito mais fбcil!
Jб o loop
while, й executado enquanto uma condiзгo for verdadeira.
O while й mais lento que o for e й bastante usado em C/C++ na construзгo de menus.
Sobre a parte do playerid e MAX_PLAYERS, basta ver a minha primeira resposta. Caso nгo tenha entendido a minha explicaзгo, sinta-se livre para perguntar!