#include < amxmodx >
#include < as_core >
#define PL_NAME "AS Informer"
#define PL_VERSION "1.0.0"
#define PL_AUTHOR "OverGame"
/* Настройки */
#define PL_USER_PREFIX
#define PL_CHAT_PREFIX "!g[Армия]!y"
new g_MaxPlayers, g_ObjHud;
native as_get_rankname ( szName [], len, level );
public plugin_init () {
register_plugin ( PL_NAME, PL_VERSION, PL_AUTHOR );
#if defined PL_USER_PREFIX
register_message ( get_user_msgid ( "SayText" ), "msg_send" );
#endif
g_MaxPlayers = get_maxplayers ();
g_ObjHud = CreateHudSyncObj ();
set_task ( 1.0, "hud_informer", _, _, _, "b" );
}
#if defined PL_USER_PREFIX
public msg_send ( msgId, msgDest, msgEnt ) {
new id = get_msg_arg_int ( 1 )
if ( !is_user_connected ( id ) ) return PLUGIN_CONTINUE;
new szTmp [ 256 ], szTmp2 [ 256 ], szRankname [ 35 ];
get_msg_arg_string ( 2, szTmp, charsmax ( szTmp ) );
as_get_rankname ( szRankname, charsmax ( szRankname ), as_get_user_level ( id ) );
format ( szRankname, charsmax ( szRankname ), "^x4[%s]", szRankname );
if ( !equal ( szTmp, "#Cstrike_Chat_All" ) ) {
add ( szTmp2,charsmax ( szTmp2 ), szRankname );
add ( szTmp2,charsmax ( szTmp2 ), " " );
add ( szTmp2,charsmax ( szTmp2 ), szTmp );
} else {
add ( szTmp2, charsmax ( szTmp2 ), szRankname );
add ( szTmp2, charsmax ( szTmp2 )," ^x03%s1^x01: %s2" );
}
set_msg_arg_string ( 2, szTmp2 );
return PLUGIN_CONTINUE;
}
#endif
public hud_informer () {
static id;
for ( id = 1; id <= g_MaxPlayers; id++ )
{
if ( !is_user_bot ( id ) && is_user_connected ( id ) ) {
static buffer [ 255 ], szRankname [ 35 ], szName [ 50 ], len;
set_hudmessage ( 60, 60, 60, -1.0, 0.0, 0, 1.0, 0.99, _, _, -1 );
get_user_name ( 0, szName, charsmax ( szName ) );
as_get_rankname ( szRankname, charsmax ( szRankname ), as_get_user_level ( id ) );
len = format ( buffer, charsmax ( buffer ), "%s", szName );
len += format ( buffer [ len ], charsmax ( buffer ) - len, "^n^nЗвание: %s", szRankname );
len += format ( buffer [ len ], charsmax ( buffer ) - len, "^nОпыт: %d/%d", as_get_user_exp ( id ),as_get_user_max_exp ( id ) );
show_hudmessage ( id, buffer );
ShowSyncHudMsg ( id, g_ObjHud, buffer );
}
}
return PLUGIN_CONTINUE;
}
public AS_New_Level ( id, level ) {
new szName [ 33 ], szRankname [ 35 ]; get_user_name ( id, szName, charsmax ( szName ) );
as_get_rankname ( szRankname, charsmax ( szRankname ), level );
send_chat ( 0, "%s Боец !t%s!y поднялся в звании! Теперь он !t%s!y!", PL_CHAT_PREFIX, szName, szRankname );
}
stock send_chat ( const id, const input [ ], any:... ) {
new count = 1, players [ 32 ];
static msg [ 188 ];
vformat ( msg, 187, input, 3 );
replace_all ( msg, 187, "!g", "^4" );
replace_all ( msg, 187, "!y", "^1" );
replace_all ( msg, 187, "!t", "^3" );
if ( id ) players [ 0 ] = id; else get_players ( players, count, "ch" );
{
for ( new i = 0; i < count; i++ ) {
if ( is_user_connected ( players [ i ] ) ) {
message_begin ( MSG_ONE_UNRELIABLE, get_user_msgid ( "SayText" ), _, players [ i ] );
write_byte ( players [ i ] );
write_string ( msg );
message_end ();
}
}
}
}