SA-MP Forums Archive
[Ajuda] Mensagens se multiplicando - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Mensagens se multiplicando (/showthread.php?tid=661161)



Mensagens se multiplicando - MtPlayerZ - 24.11.2018

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;
}



Re: Mensagens se multiplicando - PilateGR - 24.11.2018

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;
}



Re: Mensagens se multiplicando - MtPlayerZ - 24.11.2018

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.


Re: Mensagens se multiplicando - PilateGR - 24.11.2018

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;
}



Re: Mensagens se multiplicando - MtPlayerZ - 25.11.2018

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.


Re: Mensagens se multiplicando - Ermanhaut - 25.11.2018

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


Re: Mensagens se multiplicando - PT - 26.11.2018

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


Re: Mensagens se multiplicando - MtPlayerZ - 26.11.2018

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;
}