[Ajuda] Mensagens se multiplicando
#1

Alguйm saberia me dizer porque as mensagens estгo repetindo(2x)?

Tipo:
Код:
|EVENTO| O jogador [Nome] entrou!
|EVENTO| Aguardando mais 1 jogador...
|EVENTO| O jogador [Nome] entrou!
|EVENTO| Aguardando mais 1 jogador...
Код:
new string1[128], string2[128];
 	    format(string1, sizeof(string1), "{FFFF00}|PARTIDA|{FFFFFF} O jogador [{0080FF}%s{FFFFFF}] entrou!", PlayerInfo[playerid][pNome]);
 	    MessageToMatch(-1, string1);
 	    format(string2, sizeof(string2), "{FF0000}|PARTIDA|{FFFFFF} Aguardando mais {0080FF}%i {FFFFFF}jogadores...", FilaPartida);
 	    MessageToMatch(-1, string2);
Код:
stock MessageToMatch(cor, string[])
{
    foreach(Player, i)
    {
        if(IsPlayerConnected(i) && PlayerInfo[i][pEmPartida] == true)
        {
        	SendClientMessage(i, cor, string);
        }
    }
    return 1;
}
Reply
#2

Nгo sei qual й o seu objetivo no code, porйm se retirasse o LOOP "foreach(Player, i)" e criasse stock por playerid talvez desse muito certo!

Код:
MessageToMatch(playerid, cor, string[])
{
    if(IsPlayerConnected(playerid) && PlayerInfo[playerid][pEmPartida])
    {
          SendClientMessageToAll(cor, string);
    }
    return true;
}
Reply
#3

Quote:
Originally Posted by PilateGR
Посмотреть сообщение
Nгo sei qual й o seu objetivo no code, porйm se retirasse o LOOP "foreach(Player, i)" e criasse stock por playerid talvez desse muito certo!

Код:
MessageToMatch(playerid, cor, string[])
{
    if(IsPlayerConnected(playerid) && PlayerInfo[playerid][pEmPartida])
    {
          SendClientMessageToAll(cor, string);
    }
    return true;
}
Mais ai no caso ele nгo mandaria a mensagem para todos os players online que estгo em partida, ele sу verificaria se o player que 'puxou' essa stock esta conectado e em partida e enviara a mensagem para todos.
Reply
#4

Quote:
Originally Posted by MtPlayerZ
Посмотреть сообщение
Mais ai no caso ele nгo mandaria a mensagem para todos os players online que estгo em partida, ele sу verificaria se o player que 'puxou' essa stock esta conectado e em partida e enviara a mensagem para todos.
Код:
MessageToMatch(cor, string[])
{
    foreach(Player, playerid)
    {
        if(IsPlayerConnected(playerid) && PlayerInfo[playerid][pEmPartida])
        {
              SendClientMessage(playerid, cor, string);
        }
    }
    return true;
}
Reply
#5

Quote:
Originally Posted by PilateGR
Посмотреть сообщение
Код:
MessageToMatch(cor, string[])
{
    foreach(Player, playerid)
    {
        if(IsPlayerConnected(playerid) && PlayerInfo[playerid][pEmPartida])
        {
              SendClientMessage(playerid, cor, string);
        }
    }
    return true;
}
Ja tentei, continua repetindo do mesmo jeito.
Reply
#6

Em que callback/funзгo vocк estб utilizando MessageToMatch?
Reply
#7

se usa foreach nao precisa verificar se o player esta on pois ele ja faz isso.

PHP код:
stock MessageToMatch(corstring[])
{
    foreach(
Playeri)
    {
        if(
PlayerInfo[i][pEmPartida] == true)
            
SendClientMessage(icorstring);
    }
    return 
1;

me mostra onde esta usando esse codigo.. mostra a callback ou a funcao onde esta a usar
Reply
#8

Quote:
Originally Posted by PT
Посмотреть сообщение
se usa foreach nao precisa verificar se o player esta on pois ele ja faz isso.

PHP код:
stock MessageToMatch(corstring[])
{
    foreach(
Playeri)
    {
        if(
PlayerInfo[i][pEmPartida] == true)
            
SendClientMessage(icorstring);
    }
    return 
1;

me mostra onde esta usando esse codigo.. mostra a callback ou a funcao onde esta a usar
PrepararPartida(playerid); й chamado quando o jogador escolhe entrar no evento
Код:
forward PrepararPartida(playerid);
public PrepararPartida(playerid)
{
    new string1[128];
    format(string1, sizeof(string1), "{FFFF00}|PARTIDA|{FFFFFF} O jogador [{0080FF}%s{FFFFFF}] entrou!", PlayerInfo[playerid][pNome]);
    MessageToMatch(-1, string1);
	TimerChecarFila = SetTimer("ChecarFila", segundos(3), true);
	return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)