Hello Guys , i use 1 msg say plugin but it doesn't write log in server console , help me please to add log ! Thx very much!
I want like this :
-----------------------------------------------
how to do space betwen chat(messages)
Screen From Game Client( Normal HLDS CHAT):
Screen From Game Client( With this plugin CHAT):
PHP Code:
#include < amxmodx >
#include < amxmisc >
#include < cstrike >
new g_iMsgID_SayText;
new g_iAdminChatFlag = ADMIN_ALL;
public plugin_init( )
{
register_clcmd( "say", "CmdSay" );
register_clcmd( "say_team", "CmdSayTeam" );
g_iMsgID_SayText = get_user_msgid( "SayText" );
new szCommand[ 32 ], iFlags;
for( new i = 0; get_concmd( i, szCommand, charsmax( szCommand ), iFlags, "", 0, 0, -1 ); i++ )
{
if( equal( szCommand, "amx_chat" ) )
{
g_iAdminChatFlag = iFlags;
break;
}
}
}
public CmdSay( iPlayer )
{
if( !is_user_connected( iPlayer ) )
{
return PLUGIN_HANDLED_MAIN;
}
new szArgs[ 194 ];
if( !IsValidMessage( iPlayer, false, szArgs, charsmax( szArgs ) ) )
{
return PLUGIN_HANDLED_MAIN;
}
new iAlive = is_user_alive( iPlayer );
new CsTeams:iTeam = cs_get_user_team( iPlayer );
new iPlayers[ 32 ], iNum;
get_players( iPlayers, iNum );
new szName[ 32 ];
get_user_name( iPlayer, szName, charsmax( szName ) );
new const szPrefixes[ 2 ][ CsTeams ][ ] =
{
{
"^1*DEAD* ",
"^1*DEAD* ",
"^1*DEAD* ",
"^1*SPEC* "
},
{
"",
"",
"",
""
}
};
new szMessage[ 192 ];
formatex( szMessage, charsmax( szMessage ), "%s^3%s^1 : %s", szPrefixes[ iAlive ][ iTeam ], szName, szArgs );
new iTarget;
for( new i = 0; i < iNum; i++ )
{
iTarget = iPlayers[ i ];
if( iTarget == iPlayer || ( iAlive || is_user_connected( iTarget ) ) && is_user_alive( iTarget ) == iAlive )
{
message_begin( MSG_ONE_UNRELIABLE, g_iMsgID_SayText, _, iTarget );
write_byte( iPlayer );
write_string( szMessage );
message_end( );
}
}
return PLUGIN_HANDLED_MAIN;
}
public CmdSayTeam( iPlayer )
{
if( !is_user_connected( iPlayer ) )
{
return PLUGIN_HANDLED_MAIN;
}
new szArgs[ 194 ];
if( !IsValidMessage( iPlayer, true, szArgs, charsmax( szArgs ) ) )
{
return PLUGIN_HANDLED_MAIN;
}
new iAlive = is_user_alive( iPlayer );
new CsTeams:iTeam = CsTeams:( ( _:cs_get_user_team( iPlayer ) ) % 3 );
new iPlayers[ 32 ], iNum;
get_players( iPlayers, iNum );
new szName[ 32 ];
get_user_name( iPlayer, szName, charsmax( szName ) );
new const szPrefixes[ 2 ][ CsTeams ][ ] =
{
{
"(Spectator)",
"*DEAD*(Terrorist)",
"*DEAD*(Counter-Terrorist)",
""
},
{
"(Spectator)",
"(Terrorist)",
"(Counter-Terrorist)",
""
}
};
new szMessage[ 192 ];
formatex( szMessage, charsmax( szMessage ), "^1%s^3 %s^1 : %s", szPrefixes[ iAlive ][ iTeam ], szName, szArgs );
for( new i = 0, iTeammate; i < iNum; i++ )
{
iTeammate = iPlayers[ i ];
if( iTeammate == iPlayer || ( iAlive || is_user_connected( iTeammate ) ) && is_user_alive( iTeammate ) == iAlive && CsTeams:( ( _:cs_get_user_team( iTeammate ) ) % 3 ) == iTeam )
{
message_begin( MSG_ONE_UNRELIABLE, g_iMsgID_SayText, _, iTeammate );
write_byte( iPlayer );
write_string( szMessage );
message_end( );
}
}
return PLUGIN_HANDLED_MAIN;
}
bool:IsValidMessage( iPlayer, bool:bTeamSay, szMessage[ ], iLen )
{
read_args( szMessage, iLen );
remove_quotes( szMessage );
if( !szMessage[ 0 ] )
{
return false;
}
new iPos, cChar, i;
while( ( cChar = szMessage[ iPos ] ) == '@' )
{
iPos++;
i++;
}
if( i > 0 )
{
return ( !( bTeamSay ? ( i == 1 ) : ( 1 <= i <= 3 ) ) || !access( iPlayer, g_iAdminChatFlag ) );
}
while( 0 < ( cChar = szMessage[ iPos++ ] ) <= 255 )
{
if( cChar != ' ' && cChar != '%' )
{
return true;
}
}
return false;
}