[Ajuda] criar 'fila' de players
#1

Estou fazendo meio que uma arena de evento, onde o evento sу comeзa quando uma certa quantidade de players entra, porem nгo sei bem como fazer isto, o que eu estava fazendo:
Код:
stock PrepararPartida(playerid)
{
	if(!IsPlayerNPC(playerid))
	{
	FilaPartida ++;
	    PlayerInfo[playerid][pJogando] = true;
	    SendClientMessage(playerid, COLOR_LIGHTBLUE, "|AVISO| Aguardando mais jogadores...");

  		do{return 0;} while(PlayerInfo[playerid][pJogando] == false && FilaPartida < 2);

		AguardarPartida(playerid);
    	PlayerInfo[playerid][pEmPartida] = true;
	}
	return 1;
}
stock AguardarPartida(playerid)
{
    if(!IsPlayerNPC(playerid) && PlayerInfo[playerid][pEmPartida] == true)
	{
	    new string[128];
		PlayerInfo[playerid][pPodeSair] = false;
		format(string, sizeof string, "|AVISO| A partida irб iniciar em 10 segundos!!!");
		MessageToMatch(COLOR_LIGHTBLUE, string);
		TimerPartida = SetTimer("Partida", segundos(10), false);
	}
	return 1;
}
Atй na linha
Код:
SendClientMessage(playerid, COLOR_LIGHTBLUE, "|AVISO| Aguardando mais jogadores...");
esta tudo funfando de boa, mais nгo sai daн de jeito nenhum.
Pode ser que akela estrutura de repetiзгo do esteja errada, mais tentei com o for e ficou do mesmo jeito.
Reply
#2

PHP код:
while(FilaPartida 10) {
    
SendClientMessage(playerid, -1"A partida sу pode comeзar quando tiver 10 jogadores.");



While = enquanto.
Reply
#3

Quote:
Originally Posted by ipsLuan
Посмотреть сообщение
PHP код:
while(FilaPartida 10) {
    
SendClientMessage(playerid, -1"A partida sу pode comeзar quando tiver 10 jogadores.");



While = enquanto.
Disso eu sei, mais eu queria saber se tem outra forma de fazer isto sem usar estrutura de repetiзгo, porque nгo esta funcionando
Reply
#4

Faзa um timer de um segundo que checa se hб a quantidade estipulada de players no evento para inicia-lo.
Reply
#5

Quote:
Originally Posted by Ermanhaut
Посмотреть сообщение
Faзa um timer de um segundo que checa se hб a quantidade estipulada de players no evento para inicia-lo.
Como eu faria isso? Poderia me dar um exemplo ?
Reply
#6

PHP код:
SetTimer("iniciarPartida"1000 5true); 

E aн, dentro da callback iniciarPartida vocк faz a verificaзгo.
Reply
#7

com timer seria mais ou menos assim:

PHP код:
new pTimer;
pTimer SetTimer("iniciarPartida"1000true); 
forward iniciarPartida(playerid);
public 
iniciarPartida(playerid)
{
if(
FilaPartida >= 10)
{
Killtimer(pTimer);
//cуdigo para comeзar
}
else {
//mensagem que ainda nгo tem player suficiente}
return 1;

Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)