Player Message Color
#9

Quote:
Originally Posted by Hemeei
Посмотреть сообщение
the problem is its spamming (gonna change color later)
PHP код:
//==============================================================================
#define Max_Client_Message_Len 128
public OnPlayerText(playeridtext[])
{
    new 
String Max_Client_Message_Len MAX_PLAYER_NAME 16];
    if( 
strlen(text) > Max_Client_Message_Len )
    return 
0;
    new 
PlayerNameMAX_PLAYER_NAME ];
    
GetPlayerNameplayeridPlayerNameMAX_PLAYER_NAME );
    
formatStringsizeof( String ), "{RRGGBB}%s (%d): {RRGGBB}%s"PlayerNameplayeridtext );
    for( new 
0MAX_PLAYERSi++ )
    
SendClientMessagei0x0String );
    if(
text[0] == '.' && PlayerInfo[playerid][Level] >= 1) {
        new 
string[128]; GetPlayerName(playerid,string,sizeof(string));
        
format(string,sizeof(string),"A.Chat: %s: %s",string,text[1]);
        
MessageToAdmins(0xFD01FDAA,string);
        return 
0;
    }
    return 
1;

if i put return false; in

PHP код:
for( new 0MAX_PLAYERSi++ )
SendClientMessageplayerid0x0String );
return 
false
there's an error
Firstly:
pawn Код:
format(string,sizeof(string),"A.Chat: %s: %s",string,text[1]);
        MessageToAdmins(0xFD01FDAA,string);
        return 0;
    }
    return 1;  // <<<<<<<<<<<<<<<
It MUST be either return false; or return 0; (which is, obviously, the same), because You have to prevent the server to display sent message for players (because it has been already show for everyone with this one:
pawn Код:
for( new i = 0; i < MAX_PLAYERS; i++ )
    SendClientMessage( i, 0x0, String );
By the way, You should be aware, that if You return 0; this entire callback, so it would look like:
pawn Код:
public OnPlayerText(playerid, text[])
{
        return 0;
}
it will prevent sent message from displaying (helpful knowledge, if You want to mute someone, et cetera.

Quote:

if i put return false; in

PHP код:
for( new 0MAX_PLAYERSi++ )
SendClientMessagei0x0String );
return 
false
there's an error

Yes, because You have some code already below return false; statement, and compiler knows, that it will never be executed, if it is put that way. That's where the warning comes from.

To fix this, You should always handle exceptions first, because admin chat (or something like this) is exception, whereas
pawn Код:
for( new i = 0; i < MAX_PLAYERS; i++ )
SendClientMessage( playerid, 0x0, String );
is a reqular case.

So, to make things working, Your code should look like this:
pawn Код:
//==============================================================================
#define Max_Client_Message_Len 128
public OnPlayerText(playerid, text[])
{
    new String [ Max_Client_Message_Len + MAX_PLAYER_NAME + 16];
    if( strlen(text) > Max_Client_Message_Len ) // Check for valid length
        return 0;
   

    new PlayerName[ MAX_PLAYER_NAME ];
    GetPlayerName( playerid, PlayerName, MAX_PLAYER_NAME );
   
    if(text[0] == '.' && PlayerInfo[playerid][Level] >= 1) { // Is first character '.' and the second part of the statement is true
    // if yes, then:
        new string[128]; GetPlayerName(playerid,string,sizeof(string));
        format(string,sizeof(string),"A.Chat: %s: %s",string,text[1]);
        MessageToAdmins(0xFD01FDAA,string);
        return 0; // Don't go any further
    }
   
    format( String, sizeof( String ), "{RRGGBB}%s (%d): {RRGGBB}%s", PlayerName, playerid, text );

    for( new i = 0; i < MAX_PLAYERS; i++ )
        SendClientMessage( i, 0x0, String );

    return 0; // prevent double messages
}
Sorry about my English.. Kinda overdosed with "golden drink"
Greetings

@ Edit
Quote:
Originally Posted by Ralfie
Посмотреть сообщение
Код:
for( new i = 0; i < MAX_PLAYERS; i++ ) 
    SendClientMessage( playerid, 0x0, String );
lol...

Код:
SendClientMessageToAll(-1, String);
Mr. Einstein, it's the same ._.
Reply


Messages In This Thread
Player Message Color[+REP] - by Hemeei - 16.08.2015, 17:25
Re: Player Message Color - by Hemeei - 16.08.2015, 18:02
Re: Player Message Color - by Evocator - 16.08.2015, 18:06
Re: Player Message Color - by SpikY_ - 16.08.2015, 18:07
Re: Player Message Color - by Roberto80 - 16.08.2015, 18:07
Re: Player Message Color[+REP] - by LetsOWN[PL] - 16.08.2015, 18:09
Re: Player Message Color[+REP] - by Hemeei - 16.08.2015, 18:26
Re: Player Message Color - by Hemeei - 16.08.2015, 18:43
Re: Player Message Color[+REP] - by LetsOWN[PL] - 16.08.2015, 18:51
Re: Player Message Color[+REP] - by Evocator - 16.08.2015, 19:00

Forum Jump:


Users browsing this thread: 5 Guest(s)