Gun meniu:
* M4A1+DEAGLE
* AK47+DEAGLE
* FAMAS+DEAGLE
Dingsta po 10s gun meniu jeigu nieko nepasirenki, yra vip connect žinutė, kuri rašo čhate kai prisijungia vip.
Admin čhat limitas per vieną round.
Code: Select all
#include < amxmodx >#include < amxmisc >#include < cstrike >#include < fakemeta >#include < hamsandwich > #pragma semicolon 1 #define PLUGIN "Public VIP"#define VERSION "0.1"#define AUTHOR "AGAME.us.lt" #define VIP_ACCESS ADMIN_LEVEL_H#define get_user_vip(%1) ( get_user_flags( %1 ) & VIP_ACCESS ) #define VIP_MODELS 0 // 0: disable | 1: enable VIP models#define VIP_CONNECT_MSG 0 // 0: disable | 1: enable VIP connect message#define VIP_GRENADES 1 // 0: don't give grenades | 1: give all grenades #define MAX_NO_VIPMENU 4#define MAX_CLCMD_NORIUVIP 2#define MAX_CLCMD_VIPS 4#define MAX_COLORS 10 new g_no_vipmenu[ MAX_NO_VIPMENU ][ ] = { "aim_", "awp_", "fy_", "cs_deagle5" };new g_clcmd_noriuvip[ MAX_CLCMD_NORIUVIP ][ ] = { "say noriuvip", "say /noriuvip" };new g_clcmd_vips[ MAX_CLCMD_VIPS ][ ] = { "say vip", "say /vip", "say vips", "say /vips" }; new g_Colors[ MAX_COLORS ][ ] = { "COL_WHITE", "COL_RED", "COL_GREEN", "COL_BLUE", "COL_YELLOW", "COL_MAGENTA", "COL_CYAN", "COL_ORANGE", "COL_OCEAN", "COL_MAROON" };new g_Values[ MAX_COLORS ][ ] = { { 255, 255, 255 }, { 255, 0, 0 }, { 0, 255, 0 }, { 0, 0, 255 }, { 255, 255, 0 }, { 255, 0, 255 }, { 0, 255, 255 }, { 227, 96, 8 }, { 45, 89, 116 }, { 103, 44, 38 } };new Float:g_Pos[ 4 ][ ] = { { 0.0, 0.0 }, { 0.05, 0.55 }, { -1.0, 0.2 }, { -1.0, 0.7 } }; #if VIP_MODELS new g_mdl_T_VIP[ ] = "eseatr"; new g_mdl_CT_VIP[ ] = "eseact";#endif new g_round_counter; new g_menu_awp_limit = 5;new g_admin_chat_limit = 5; new g_awp_choosen_counter[ 33 ];new g_admin_chat_counter[ 33 ]; new bool:b_show_menu = true; new g_msgid_SayText;new g_msgChannel; new admin_chat_id;new amx_show_activity;new g_AdminChatFlag = ADMIN_CHAT; public plugin_init( ){ register_plugin( PLUGIN, VERSION, AUTHOR ); register_dictionary( "adminchat.txt" ); register_dictionary( "common.txt" ); register_logevent( "logevent_Round_Start", 2, "1=Round_Start" ); register_event( "TextMsg", "event_GameCommencing", "a", "2=#Game_Commencing", "2=#Game_will_restart_in" ); RegisterHam( Ham_Spawn, "player", "ham_Spawn", 1 ); register_menucmd( register_menuid( "vip_menu" ), 1023, "vip_menu_handler" ); new i; for ( i = 0; i < MAX_CLCMD_NORIUVIP; i++ ) register_clcmd( g_clcmd_noriuvip[ i ], "clcmd_noriuvip" ); for ( i = 0; i < MAX_CLCMD_VIPS; i++ ) register_clcmd( g_clcmd_vips[ i ], "clcmd_vips" ); register_clcmd( "say", "cmdSayChat", ADMIN_CHAT, "@[@|@|@][w|r|g|b|y|m|c]<text> - displays hud message" ); register_clcmd( "say_team", "cmdSayAdmin", 0, "@<text> - displays message to admins" ); register_concmd( "amx_say", "cmdSay", ADMIN_CHAT, "<message> - sends message to all players" ); admin_chat_id = register_concmd( "amx_chat", "cmdChat", ADMIN_CHAT, "<message> - sends message to admins" ); register_concmd( "amx_psay", "cmdPsay", ADMIN_CHAT, "<name or #userid> <message> - sends private message" ); register_concmd( "amx_tsay", "cmdTsay", ADMIN_CHAT, "<color> <message> - sends left side hud message to all players" ); register_concmd( "amx_csay", "cmdTsay", ADMIN_CHAT, "<color> <message> - sends center hud message to all players" ); amx_show_activity = get_cvar_pointer( "amx_show_activity" ); if ( amx_show_activity == 0 ) amx_show_activity = register_cvar( "amx_show_activity", "2" ); new str[ 1 ]; get_concmd( admin_chat_id, str, 0, g_AdminChatFlag, str, 0, -1 ); g_msgid_SayText = get_user_msgid( "SayText" );} public plugin_cfg( ){ new mapname[ 32 ], i; get_mapname( mapname, charsmax( mapname ) ); for ( i = 0; i < MAX_NO_VIPMENU; i++ ) { if ( equal( mapname, g_no_vipmenu[ i ], strlen( g_no_vipmenu[ i ] ) ) ) b_show_menu = false; }} #if VIP_MODELS public plugin_precache( ) { new szmodels[ 2 ][ 192 ], i; format( szmodels[ 0 ], charsmax( szmodels[ ] ), "models/player/%s/%s.mdl", g_mdl_T_VIP, g_mdl_T_VIP ); format( szmodels[ 1 ], charsmax( szmodels[ ] ), "models/player/%s/%s.mdl", g_mdl_CT_VIP, g_mdl_CT_VIP ); for ( i = 0; i < 2; i++ ) engfunc( EngFunc_PrecacheModel, szmodels[ i ] ); }#endif public client_putinserver( id ){ new parm[ 1 ]; parm[ 0 ] = id; if ( !is_user_bot( id ) ) set_task( 30.0, "task_informer", id, parm, 1 ); #if VIP_CONNECT_MSG if ( get_user_vip( id ) ) { new vip_name[ 32 ]; get_user_name( id, vip_name, charsmax( vip_name ) ); print_colored_message( 0, "^x04[eMod.lt]^x03 VIP zaidejas^x01 %s^x03 prisijunge!", vip_name ); } #endif} public task_informer( parm[ ] ){ print_colored_message( parm[ 0 ], "^x04[eMod.lt]^x01 Informacija kaip įsigyti Vip-^x03 /noriuvip^x01 | Admin-^x03 /uzas" );} public logevent_Round_Start( ){ g_round_counter++; new players[ 32 ], pnum, i; get_players( players, pnum, "a" ); for ( i = 0; i < pnum; i++ ) { if ( get_user_vip( players[ i ] ) ) { if( b_show_menu ) { #if VIP_GRENADES vip_give_item( players[ i ], "weapon_hegrenade" ); vip_give_item( players[ i ], "weapon_flashbang" ); vip_give_item( players[ i ], "weapon_flashbang" ); vip_give_item( players[ i ], "weapon_smokegrenade" ); #endif vip_give_item( players[ i ], "item_thighpack" ); cs_set_user_armor( players[ i ], 100, CS_ARMOR_VESTHELM ); } if ( b_show_menu && ( g_round_counter >= 3 ) ) show_vipmenu( players[ i ] ); } }} public event_GameCommencing( ){ g_round_counter = 0;} public show_vipmenu( id ){ new pos = 0, menu[ 512 ], items[ 4 ][ 512 ], i; pos += format( menu[ pos ], charsmax( menu ) - pos, "\y[eMod.lt] Vip meniu:^n^n" ); format( items[ 0 ], charsmax( items[ ] ), "M4A1 + Deagle^n" ); format( items[ 1 ], charsmax( items[ ] ), "AK-47 + Deagle^n" ); format( items[ 2 ], charsmax( items[ ] ), "Famas + Deagle^n" ); format( items[ 3 ], charsmax( items[ ] ), "AWP + Deagle \y(Left %d)^n", ( g_menu_awp_limit - g_awp_choosen_counter[ id ] ) ); for ( i = 0; i < 4; i++ ) { pos += format( menu[ pos ], charsmax( menu ) - pos, "\r%d. \w%s", i + 1, items[ i ] ); } pos += format( menu[ pos ], charsmax( menu ) - pos, "^n\r0. \wExit" ); new keys; keys = ( 1<<0 ) | ( 1<<1 ) | ( 1<<2 ) | ( 1<<9 ); if ( ( g_round_counter >= 3 ) && ( ( g_menu_awp_limit - g_awp_choosen_counter[ id ] ) > 0 ) ) { keys |= ( 1<<3 ); } show_menu( id, keys, menu, 15, "vip_menu" );} public vip_menu_handler( id, key ){ switch ( key ) { case 0: { new bool:b_valid_c4 = false; if ( ( get_user_team( id ) == 1 ) && user_has_weapon( id, CSW_C4 ) ) b_valid_c4 = true; vip_strip_weapons( id ); vip_give_item( id, "weapon_m4a1" ); vip_give_item( id, "ammo_556nato" ); vip_give_item( id, "ammo_556nato" ); vip_give_item( id, "ammo_556nato" ); vip_give_item( id, "weapon_deagle" ); vip_give_item( id, "ammo_50ae" ); vip_give_item( id, "ammo_50ae" ); vip_give_item( id, "ammo_50ae" ); vip_give_item( id, "ammo_50ae" ); vip_give_item( id, "ammo_50ae" ); if ( b_valid_c4 ) { vip_give_item( id, "weapon_c4" ); cs_set_user_plant( id, 1 ); } } case 1: { new bool:b_valid_c4 = false; if ( ( get_user_team( id ) == 1 ) && user_has_weapon( id, CSW_C4 ) ) b_valid_c4 = true; vip_strip_weapons( id ); vip_give_item( id, "weapon_ak47" ); vip_give_item( id, "ammo_762nato" ); vip_give_item( id, "ammo_762nato" ); vip_give_item( id, "ammo_762nato" ); vip_give_item( id, "weapon_deagle" ); vip_give_item( id, "ammo_50ae" ); vip_give_item( id, "ammo_50ae" ); vip_give_item( id, "ammo_50ae" ); vip_give_item( id, "ammo_50ae" ); vip_give_item( id, "ammo_50ae" ); if ( b_valid_c4 ) { vip_give_item( id, "weapon_c4" ); cs_set_user_plant( id, 1 ); } } case 2: { new bool:b_valid_c4 = false; if ( ( get_user_team( id ) == 1 ) && user_has_weapon( id, CSW_C4 ) ) b_valid_c4 = true; vip_strip_weapons( id ); vip_give_item( id, "weapon_famas" ); vip_give_item( id, "ammo_556nato" ); vip_give_item( id, "ammo_556nato" ); vip_give_item( id, "ammo_556nato" ); vip_give_item( id, "weapon_deagle" ); vip_give_item( id, "ammo_50ae" ); vip_give_item( id, "ammo_50ae" ); vip_give_item( id, "ammo_50ae" ); vip_give_item( id, "ammo_50ae" ); vip_give_item( id, "ammo_50ae" ); if ( b_valid_c4 ) { vip_give_item( id, "weapon_c4" ); cs_set_user_plant( id, 1 ); } } case 3: { g_awp_choosen_counter[ id ]++; new bool:b_valid_c4 = false; if ( ( get_user_team( id ) == 1 ) && user_has_weapon( id, CSW_C4 ) ) b_valid_c4 = true; vip_strip_weapons( id ); vip_give_item( id, "weapon_awp" ); vip_give_item( id, "ammo_338magnum" ); vip_give_item( id, "ammo_338magnum" ); vip_give_item( id, "ammo_338magnum" ); vip_give_item( id, "weapon_deagle" ); vip_give_item( id, "ammo_50ae" ); vip_give_item( id, "ammo_50ae" ); vip_give_item( id, "ammo_50ae" ); vip_give_item( id, "ammo_50ae" ); vip_give_item( id, "ammo_50ae" ); if ( b_valid_c4 ) { vip_give_item( id, "weapon_c4" ); cs_set_user_plant( id, 1 ); } } case 9: { } }} public ham_Spawn( id ){ if ( !is_user_alive( id ) ) return HAM_IGNORED; if ( get_user_vip( id ) ) { #if VIP_MODELS new CsTeams:team; team = cs_get_user_team( id ); if ( team == CS_TEAM_T ) cs_set_user_model( id, g_mdl_T_VIP ); else if ( team == CS_TEAM_CT ) cs_set_user_model( id, g_mdl_CT_VIP ); #endif cs_set_user_armor( id, 100, CS_ARMOR_VESTHELM ); } return HAM_IGNORED;} public clcmd_noriuvip( id ){ new sztitle[ 64 ]; format( sztitle, charsmax( sztitle ), "Vip" ); show_motd( id, "vip.txt", sztitle );} public clcmd_vips( ent ){ new adminnames[ 33 ][ 32 ]; new message[ 192 ]; new id, count, x, len; for ( id = 1; id <= 32; id++ ) { if ( is_user_connected( id ) && get_user_vip( id ) ) get_user_name( id, adminnames[ count++ ], 31 ); } len = format( message, charsmax( message ), "[eMod.lt] Vip online: " ); if ( count > 0 ) { for ( x = 0; x < count; x++ ) { len += format( message[ len ], charsmax( message ) - len, "%s%s ", adminnames[ x ], ( x < ( count - 1 ) ) ? ", " : "" ); if ( len > 96 ) { print_colored_message( ent, message ); len = format( message, charsmax( message ), "^x04" ); } } print_colored_message( ent, message ); } else { len += format( message[ len ], charsmax( message ) - len, "No VIP online." ); print_colored_message( ent, message ); }} public cmdSayChat( id ){ if ( !access( id, g_AdminChatFlag ) ) return PLUGIN_CONTINUE; new said[ 6 ], i = 0; read_argv(1, said, charsmax( said ) ); if ( ( said[ 0 ] == '@' ) && !( get_user_flags( id ) & ADMIN_BAN ) && ( ( g_admin_chat_limit - g_admin_chat_counter[ id ] ) <= 0 ) ) { client_print( id, print_chat, "[eMod.lt] Jus isnaudojote Admin Chat limita ir nebegalite toliau rasyti." ); return PLUGIN_HANDLED; } while ( said[ i ] == '@' ) i++; if ( !i || i > 3 ) return PLUGIN_CONTINUE; new message[ 192 ], a = 0; read_args( message, charsmax( message ) ); remove_quotes( message ); switch ( said[ i ] ) { case 'r': a = 1; case 'g': a = 2; case 'b': a = 3; case 'y': a = 4; case 'm': a = 5; case 'c': a = 6; case 'o': a = 7; } new n, s = i; if ( a ) { n++; s++; } while ( said[ s ] && isspace( said[ s ] ) ) { n++; s++; } new name[ 32 ], authid[ 32 ], userid; get_user_authid( id, authid, charsmax( authid ) ); get_user_name( id, name, charsmax( name ) ); userid = get_user_userid( id ); log_amx( "Chat: ^"%s<%d><%s><>^" tsay ^"%s^"", name, userid, authid, message[ i + n ] ); log_message( "^"%s<%d><%s><>^" triggered ^"amx_tsay^" (text ^"%s^") (color ^"%L^")", name, userid, authid, message[ i + n ], "en", g_Colors[ a ] ); if ( ++g_msgChannel > 6 || g_msgChannel < 3 ) g_msgChannel = 3; new Float:verpos = g_Pos[ i ][ 1 ] + float( g_msgChannel ) / 35.0; g_admin_chat_counter[ id ]++; set_hudmessage( g_Values[ a ][ 0 ], g_Values[ a ][ 1 ], g_Values[ a ][ 2 ], g_Pos[ i ][ 0 ], verpos, 0, 6.0, 6.0, 0.5, 0.15, -1 ); switch ( get_pcvar_num( amx_show_activity ) ) { case 3, 4: { new pl, maxpl = get_maxplayers( ); for ( pl = 1; pl <= maxpl; pl++ ) { if ( is_user_connected( pl ) && !is_user_bot( pl ) ) { if ( is_user_admin( pl ) ) { show_hudmessage( pl, "%s : %s", name, message[ i + n ] ); client_print( pl, print_notify, "%s : %s", name, message[ i + n ] ); } else { show_hudmessage( pl, "%s", message[ i + n ] ); client_print( pl, print_notify, "%s", message[ i + n ] ); } } } } case 2: { show_hudmessage( 0, "%s : %s", name, message[ i + n ] ); client_print( 0, print_notify, "%s : %s", name, message[ i + n ] ); } default: { show_hudmessage( 0, "%s", message[ i + n ] ); client_print( 0, print_notify, "%s", message[ i + n ] ); } } return PLUGIN_HANDLED;} public cmdSayAdmin( id ){ new said[ 2 ]; read_argv( 1, said, 1 ); if ( said[ 0 ] != '@' ) return PLUGIN_CONTINUE; new message[ 192 ], name[ 32 ], authid[ 32 ], userid; new players[ 32 ], inum; read_args( message, 191 ); remove_quotes( message ); get_user_authid( id, authid, 31 ); get_user_name( id, name, 31 ); userid = get_user_userid( id ); log_amx( "Chat: ^"%s<%d><%s><>^" chat ^"%s^"", name, userid, authid, message[ 1 ] ); log_message( "^"%s<%d><%s><>^" triggered ^"amx_chat^" (text ^"%s^")", name, userid, authid, message[ 1 ] ); if ( is_user_admin( id ) ) format( message, 191, "(%L) %s : %s", id, "ADMIN", name, message[ 1 ] ); else format( message, 191, "(%L) %s : %s", id, "PLAYER", name, message[ 1 ] ); get_players( players, inum ); for ( new i = 0; i < inum; ++i ) { if ( players[ i ] != id && get_user_flags( players[ i ] ) & g_AdminChatFlag ) client_print( players[ i ], print_chat, "%s", message ); } client_print( id, print_chat, "%s", message ); return PLUGIN_HANDLED;} public cmdChat( id, level, cid ){ if ( !cmd_access( id, level, cid, 2 ) ) return PLUGIN_HANDLED; new message[ 192 ], name[ 32 ], players[ 32 ], inum, authid[ 32 ], userid; read_args( message, 191 ); remove_quotes( message ); get_user_authid( id, authid, 31 ); get_user_name( id, name, 31 ); userid = get_user_userid( id ); get_players( players, inum ); log_amx( "Chat: ^"%s<%d><%s><>^" chat ^"%s^"", name, userid, authid, message ); log_message( "^"%s<%d><%s><>^" triggered ^"amx_chat^" (text ^"%s^")", name, userid, authid, message ); format( message, 191, "(ADMINS) %s : %s", name, message ); console_print( id, "%s", message ); for ( new i = 0; i < inum; ++i ) { if ( access( players[ i ], g_AdminChatFlag ) ) client_print( players[ i ], print_chat, "%s", message ); } return PLUGIN_HANDLED;} public cmdSay( id, level, cid ){ if ( !cmd_access( id, level, cid, 2 ) ) return PLUGIN_HANDLED; new message[ 192 ], name[ 32 ], authid[ 32 ], userid; read_args( message, 191 ); remove_quotes( message ); get_user_authid( id, authid, 31 ); get_user_name( id, name, 31 ); userid = get_user_userid( id ); client_print( 0, print_chat, "%L", LANG_PLAYER, "PRINT_ALL", name, message ); console_print( id, "%L", LANG_PLAYER, "PRINT_ALL", name, message ); log_amx( "Chat: ^"%s<%d><%s><>^" say ^"%s^"", name, userid, authid, message ); log_message( "^"%s<%d><%s><>^" triggered ^"amx_say^" (text ^"%s^")", name, userid, authid, message ); return PLUGIN_HANDLED;} public cmdPsay( id, level, cid ){ if ( !cmd_access( id, level, cid, 3 ) ) return PLUGIN_HANDLED; new name[ 32 ]; read_argv( 1, name, 31 ); new priv = cmd_target( id, name, 0 ); if ( !priv ) return PLUGIN_HANDLED; new length = strlen( name ) + 1; get_user_name( priv, name, 31 ); new message[ 192 ], name2[ 32 ], authid[ 32 ], authid2[ 32 ], userid, userid2; get_user_authid( id, authid, 31 ); get_user_name( id, name2, 31 ); userid = get_user_userid( id ); read_args( message, 191 ); if ( message[ 0 ] == '"' && message[ length ] == '"' ) { message[ 0 ] = ' '; message[ length ] = ' '; length += 2; } remove_quotes( message[ length ] ); get_user_name( priv, name, 31 ); if ( id && id != priv ) client_print( id, print_chat, "(%s) %s : %s", name, name2, message[ length ] ); client_print( priv, print_chat, "(%s) %s : %s", name, name2, message[ length ] ); console_print( id, "(%s) %s : %s", name, name2, message[ length ] ); get_user_authid( priv, authid2, 31 ); userid2 = get_user_userid( priv ); log_amx( "Chat: ^"%s<%d><%s><>^" psay ^"%s<%d><%s><>^" ^"%s^"", name2, userid, authid, name, userid2, authid2, message[ length ] ); log_message( "^"%s<%d><%s><>^" triggered ^"amx_psay^" against ^"%s<%d><%s><>^" (text ^"%s^")", name2, userid, authid, name, userid2, authid2, message[ length ] ); return PLUGIN_HANDLED;} public cmdTsay( id, level, cid ){ if ( !cmd_access( id, level, cid, 3 ) ) return PLUGIN_HANDLED; new cmd[ 16 ], color[ 16 ], color2[ 16 ], message[ 192 ], name[ 32 ], authid[ 32 ], userid = 0; read_argv( 0, cmd, 15 ); new bool:tsay = ( tolower( cmd[ 4 ] ) == 't' ); read_args( message, 191 ); remove_quotes( message ); parse( message, color, 15 ); new found = 0, a = 0; new lang[ 3 ], langnum = get_langsnum( ); for ( new i = 0; i < MAX_COLORS; ++i ) { for ( new j = 0; j < langnum; j++ ) { get_lang( j, lang ); format( color2, 15, "%L", lang, g_Colors[ i ] ); if ( equali( color, color2 ) ) { a = i; found = 1; break; } } if ( found == 1 ) break; } new length = found ? ( strlen( color ) + 1 ) : 0; if ( ++g_msgChannel > 6 || g_msgChannel < 3 ) g_msgChannel = 3; new Float:verpos = ( tsay ? 0.55 : 0.1 ) + float( g_msgChannel ) / 35.0; get_user_authid( id, authid, 31 ); get_user_name( id, name, 31 ); userid = get_user_userid( id ); set_hudmessage( g_Values[ a ][ 0 ], g_Values[ a ][ 1 ], g_Values[ a ][ 2 ], tsay ? 0.05 : -1.0, verpos, 0, 6.0, 6.0, 0.5, 0.15, -1 ); switch ( get_pcvar_num( amx_show_activity ) ) { case 3, 4: { new maxpl = get_maxplayers( ); for ( new pl = 1; pl <= maxpl; pl++ ) { if ( is_user_connected( pl ) && !is_user_bot( pl ) ) { if ( is_user_admin( pl ) ) { show_hudmessage( pl, "%s : %s", name, message[ length ] ); client_print( pl, print_notify, "%s : %s", name, message[ length ] ); } else { show_hudmessage( pl, "%s", message[ length ] ); client_print( pl, print_notify, "%s", message[ length ] ); } } } console_print( id, "%s : %s", name, message[ length ] ); } case 2: { show_hudmessage( 0, "%s : %s", name, message[ length ] ); client_print( 0, print_notify, "%s : %s", name, message[ length ] ); console_print( id, "%s : %s", name, message[ length ] ); } default: { show_hudmessage( 0, "%s", message[ length ] ); client_print( 0, print_notify, "%s", message[ length ] ); console_print( id, "%s", message[ length ] ); } } log_amx( "Chat: ^"%s<%d><%s><>^" %s ^"%s^"", name, userid, authid, cmd[ 4 ], message[ length ] ); log_message( "^"%s<%d><%s><>^" triggered ^"%s^" (text ^"%s^") (color ^"%s^")", name, userid, authid, cmd, message[ length ], color2 ); return PLUGIN_HANDLED;} stock vip_strip_weapons( id ){ new entity; entity = engfunc( EngFunc_CreateNamedEntity, engfunc( EngFunc_AllocString, "player_weaponstrip" ) ); if ( !pev_valid( entity ) ) return; dllfunc( DLLFunc_Spawn, entity ); dllfunc( DLLFunc_Use, entity, id ); engfunc( EngFunc_RemoveEntity, entity ); vip_give_item( id, "weapon_knife" ); vip_give_item( id, "item_thighpack" ); #if VIP_GRENADES vip_give_item( id, "weapon_hegrenade" ); vip_give_item( id, "weapon_flashbang" ); vip_give_item( id, "weapon_flashbang" ); vip_give_item( id, "weapon_smokegrenade" ); #endif} stock vip_give_item( id, const item[ ] ){ new entity; entity = engfunc( EngFunc_CreateNamedEntity, engfunc( EngFunc_AllocString, item ) ); if ( !pev_valid( entity ) ) return; new Float:origin[ 3 ]; pev( id, pev_origin, origin ); set_pev( entity, pev_origin, origin ); set_pev( entity, pev_spawnflags, pev( entity, pev_spawnflags ) | SF_NORESPAWN ); dllfunc( DLLFunc_Spawn, entity ); new save; save = pev( entity, pev_solid ); dllfunc( DLLFunc_Touch, entity, id ); if ( pev( entity, pev_solid ) != save ) return; engfunc( EngFunc_RemoveEntity, entity );} stock print_colored_message( ent, string[ ], ... ){ new szmessage[ 192 ]; vformat( szmessage, charsmax( szmessage ), string, 3 ); if ( ent ) { message_begin( MSG_ONE, g_msgid_SayText, { 0,0,0 }, ent ); write_byte( ent ); write_string( szmessage ); message_end( ); } else { new players[ 32 ], pnum, i; get_players( players, pnum, "ch" ); for ( i = 0; i < pnum; i++ ) { if ( is_user_connected( players[ i ] ) ) { message_begin( MSG_ONE_UNRELIABLE, g_msgid_SayText, { 0,0,0 }, players[ i ] ); write_byte( players[ i ] ); write_string( szmessage ); message_end( ); } } }}