[Ajuda] Detectar 2 players online
#1

Bom, preciso saber, como faзo pra detectar quando o servidor tiver 2 players ou mais online para dar inicio a partida.

No caso, sei lб, quando tiver dois players ou mais online, ai dб um comando tipo "/comecar" automaticamente.

Assim, quando tiver menos, nгo irб acontecer nada. Apenas iram para uma posiзгo.
Reply
#2

Desculpe se eu esqueci de alguma coisa estou morrendo de sono ^^

PHP код:
#include <a_samp>
new PlayersOnEvent;
new 
PlayerInEvent[MAX_PLAYERS];
public 
OnPlayerConnect(playerid)
{
    
PlayersOnEvent += 1;
    if(
PlayersOnEvent >= 2)
    {
     
SendClientMessageToAll(-1"Evento Iniciado !");
     for(new 
i=0i<MAX_PLAYERSi++)
     {
      
SetPlayerPos(i0.00.03.0);
      
PlayerInEvent[playerid] = 1;
     }
    }
    return 
1;
}
public 
OnPlayerDisconnect(playeridreason)
{
    
PlayersOnEvent -= 1;
    
CloseEvent();
    
PlayerInEvent[playerid] = 0;
    return 
1;
}
stock CloseEvent()
{
    if(
PlayersOnEvent == 1)
    {
     
SendClientMessageToAll(-1"Evento fechado player saiu !");
     for(new 
i=0i<MAX_PLAYERSi++)
     {
      if(
PlayerInEvent[i] == 1)
      {
       
SetPlayerPos(i0.00.03.0);
       
PlayerInEvent[i] = 0;
      }
     }
    }
    return 
1;

e aqui um com comandos /comecarev /terminarev

PHP код:
#include <a_samp>
new PlayersOnEvent;
new 
PlayerInEvent[MAX_PLAYERS];
public 
OnPlayerConnect(playerid)
{
    
PlayersOnEvent += 1;
    return 
1;
}
public 
OnPlayerDisconnect(playeridreason)
{
    
PlayersOnEvent -= 1;
    
PlayerInEvent[playerid] = 0;
    return 
1;
}
public 
OnPlayerCommandText(playeridcmdtext[])
{
    if (
strcmp("/comecarev"cmdtexttrue10) == 0)
    {
        if(
PlayersOnEvent >= 2)
        {
            
SendClientMessageToAll(-1"Evento Iniciado");
            
PlayerInEvent[playerid] = 1;
            for(new 
i=0i<MAX_PLAYERSi++)
            {
               
SetPlayerPos(i0.00.03.0);
            }
        }
        else
        {
        
SendClientMessageToAll(-1"Nгo existem players suficientes para iniciar!");
        }
        return 
1;
    }
    if (
strcmp("/terminarev"cmdtexttrue11) == 0)
    {
        if(
PlayersOnEvent == 1)
        {
           
SendClientMessageToAll(-1"Evento fechado!");
           for(new 
i=0i<MAX_PLAYERSi++)
           {
              if(
PlayerInEvent[i] == 1)
              {
               
SetPlayerPos(i0.00.03.0);
               
PlayerInEvent[i] = 0;
              }
           }
        }
        return 
1;
    }
    return 
0;

Reply
#3

Loop.
Reply
#4

Outra pergunta, fiz um timer aqui, pra ir diminuindo, pra iniciar a partida, mais nгo funciona.

PHP код:
stock Comecar(playerid)
{
    static 
str1[128];
    
pInfo[playerid][pRestartTime]++;
    
format(str1sizeof(str1), "~n~~n~~n~~n~~n~~n~~n~~n~~n~~w~Carregando... %d"15 pInfo[playerid][pRestartTime]);
    
GameTextForPlayer(playeridstr110003);
    if (
pInfo[playerid][pRestartTime] >= 15)
    {
        
pInfo[playerid][pRestartTime] = 0;
                
//Aqui vai ter as paradas de quando o jogo iniciar
    
}
    return 
1;

Ele nгo vai diminuindo, tipo, 15, 14, 13. Ele trava no 14, ai vocк precisa dar o comando novamente pra ir pro 13.
Reply
#5

PHP код:
SetTimer("Iniciar"1000true);
stock Iniciar()
{
    new 
        
Tempo_Inicial 15,
        static 
str1[128]
    ;
    
format(str1sizeof(str1), "~n~~n~~n~~n~~n~~n~~n~~n~~n~~w~Carregando... %d"Tempo_Inicial); 
    
GameTextForAll(str110003); 
       
Tempo_Inicial--;
       
       if(
Tempo_Inicial <= 0)
       {
            
GameTextForAll("Comeзem!"1000);
            
Tempo_Inicial 0;
            
KillTimer(Tempo_Inicial);
       }
    return 
1;

Reply
#6

Nгo funciono, ele nгo sai do 15 agora.
Reply
#7

Vocк adicionou o SetTimer que te mandei?
Reply
#8

Sim, tб tudo certinho.
Reply
#9

#edit
Fiz uns testes aqui e consegui, mas quando coloco o timer nгo vai, deve ser por que estou com pressa. Estou indo pro colйgio, assim que eu voltar, (re)faзo o comando e te envio o cуdigo.

PHP код:
//Inicio do GameMode
new Tempo_Inicial 15;

stock Iniciar() 

    
printf("%d"Tempo_Inicial);
    
Tempo_Inicial--; 

    
printf("%d"Tempo_Inicial);
    
Tempo_Inicial--; 

    
printf("%d"Tempo_Inicial);
    
Tempo_Inicial--; 

    
printf("%d"Tempo_Inicial);
    
Tempo_Inicial--; 

    
printf("%d"Tempo_Inicial);
    
Tempo_Inicial--; 

    
printf("%d"Tempo_Inicial);
    
Tempo_Inicial--; 

Reply
#10

Beleza cara, valeu pela ajuda.

Valeu tambйm Fernando, funcionou aqui.
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)