[Ajuda] Enviar mensagem local
#1

Alguйm por favor poderia me dizer oque hб de errado? Simplesmente nгo ocorre da maneira que eu esperava...

pawn Код:
SendClientMessageLocal(playerid, Float:range, msg[])
{
    new Float:Pos[3];
    GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
    for(new i; i < MAX_PLAYERS; i++)
    {
        if(!IsPlayerConnected(i))
        {
            if(!IsPlayerInRangeOfPoint(i, range, Pos[0], Pos[1], Pos[2]))
            {
                SendClientMessage(i, -1, msg);
            }
        }
    }
    return 1;
}
Nгo envia a mensagem nenhuma no chat prуximo.
Reply
#2

Use um meu que fiz um tempo atrбs, nem usei.

PHP код:

#define     MensagemFormatada(%1,%2,%3,%4) do{format(gstring,sizeof(gstring),%3,%4);SendClientMessage(%1,%2,gstring);}while(IsPlayerConnected(-1))
stock ProxDetector(Float:Radioplayeridstring[], color)
{
    new 
FloatXFloatYFloatZ;
    
GetPlayerPos(playeridXYZ);
    foreach(new 
Player)
    {
        if(
IsPlayerConnected(i) && PlayerInfo[i][pLogado] == true)
        {
            if(
IsPlayerInRangeOfPoint(iRadioXYZ))
            {
                
MensagemFormatada(icolor"%s"string);
            }
        }
    }

Exemplo de Uso:

Код:
ProxDetector(30.0, playerid, "O jogador Descarregou a carta e recebeu 900", SUA_COR);
Pessoal, se tiver um erro aн, me avisem.
Reply
#3

Quote:
Originally Posted by GuiKommander
Посмотреть сообщение
Use um meu que fiz um tempo atrбs, nem usei.

PHP код:

#define     MensagemFormatada(%1,%2,%3,%4) do{format(gstring,sizeof(gstring),%3,%4);SendClientMessage(%1,%2,gstring);}while(IsPlayerConnected(-1))
stock ProxDetector(Float:Radioplayeridstring[], color)
{
    new 
FloatXFloatYFloatZ;
    
GetPlayerPos(playeridXYZ);
    foreach(new 
Player)
    {
        if(
IsPlayerConnected(i) && PlayerInfo[i][pLogado] == true)
        {
            if(
IsPlayerInRangeOfPoint(iRadioXYZ))
            {
                
MensagemFormatada(icolor"%s"string);
            }
        }
    }

Exemplo de Uso:

Код:
ProxDetector(30.0, playerid, "O jogador Descarregou a carta e recebeu 900", SUA_COR);
Pessoal, se tiver um erro aн, me avisem.
Dependendo da GameMode dele, vai precisar tambйm da enum PlayerInfo e da include foreach. Ou pode fazer assim:

PHP код:
stock SendClientMessageLocal(playeridFloat:rangemsg[])
{
    new 
Float:Pos[3];
    
GetPlayerPos(playeridPos[0], Pos[1], Pos[2]);
    
    for(new 
iMAX_PLAYERSi++)
    {
        if(
IsPlayerConnected(i) && IsPlayerInRangeOfPoint(irangePos[0], Pos[1], Pos[2])) {
            
SendClientMessage(i, -1msg);
        }
    }
    return 
true;

@EDIT: Isso que o Luan disse, esqueci de explicar, nгo adianta ajudar sem explicar o fato.
Quote:
Originally Posted by ipsLuan
Посмотреть сообщение
O erro estб na verificaзгo IsPlayerConnected.
Ao se colocar o “!”, vocк estб colocar um nгo (assim por dizer).
Sendo assim, a mensagem sу iria mandar para jogadores que nгo estivessem online.
Reply
#4

Quote:
Originally Posted by elTioFrame
Посмотреть сообщение
Alguйm por favor poderia me dizer oque hб de errado? Simplesmente nгo ocorre da maneira que eu esperava...

pawn Код:
SendClientMessageLocal(playerid, Float:range, msg[])
{
    new Float:Pos[3];
    GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
    for(new i; i < MAX_PLAYERS; i++)
    {
        if(!IsPlayerConnected(i))
        {
            if(!IsPlayerInRangeOfPoint(i, range, Pos[0], Pos[1], Pos[2]))
            {
                SendClientMessage(i, -1, msg);
            }
        }
    }
    return 1;
}
Nгo envia a mensagem nenhuma no chat prуximo.
O erro estб na verificaзгo IsPlayerConnected.
Ao se colocar o “!”, vocк estб colocar um nгo (assim por dizer).
Sendo assim, a mensagem sу iria mandar para jogadores que nгo estivessem online.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)