#include < amxmodx >
#include < fun >
#include < cstrike >
#define ADMIN_LEVEL_E 65536 //Flag "q", custom
new g_iCurrentRound;
new g_msgSayText;
new bool:g_bMenuUsed[ 33 ];
public plugin_init()
{
register_plugin( "Vip", "1.0", "3g^^" );
register_clcmd( "say vipmenu","CmdVIPMenu" );
register_clcmd( "say /vipmenu", "CmdVIPMenu" );
register_clcmd( "say /vips", "CmdShowVIP" );
register_logevent( "Event_RoundEnd", 2, "1=Round_End" );
g_msgSayText = get_user_msgid( "SayText" );
}
public Event_RoundEnd()
{
g_iCurrentRound++;
for( new i = 0; i < sizeof g_bMenuUsed; i++ )
g_bMenuUsed[ i ] = false;
new iPlayers[ 32 ], iNum;
get_players( iPlayers, iNum );
new iPlayer, szName[ 32 ];
for( new i = 0; i < iNum; i++ )
{
iPlayer = iPlayers[ i ];
if( get_user_flags( iPlayer ) & ADMIN_LEVEL_E )
{
get_user_name( iPlayer, szName, charsmax( szName ) );
server_cmd( "wc3_givexp %s 5000", szName );
}
}
}
public client_connect( id )
{
g_bMenuUsed[ id ] = false;
}
public CmdVIPMenu( id )
{
new hMenu = menu_create( "War3FT VIP Меню:", "VIPMenu_Handler" );
if( get_user_flags( id ) & ADMIN_LEVEL_E )
menu_additem( hMenu, "Эксклюзивный набор оружия", "0" );
else
menu_additem( hMenu, "\dЭксклюзивный набор оружия", "0" );
menu_additem( hMenu, "Возможности VIP-Статуса", "1" );
menu_additem( hMenu, "Стоимость VIP-Статуса", "2" );
menu_display( id, hMenu, 0 );
return PLUGIN_HANDLED;
}
public VIPMenu_Handler( id, hMenu, iItem )
{
new szData[ 6 ], szName[ 64 ];
new iAccess, hCallback;
menu_item_getinfo( hMenu, iItem, iAccess, szData, charsmax( szData ), szName, charsmax( szName ), hCallback );
switch( str_to_num( szData ) )
{
case 0:
{
if( !( get_user_flags( id ) & ADMIN_LEVEL_E ) )
{
client_print( id, print_chat, "У вас нет VIP-Статуса! Для покупки обратитесь на форум." );
return PLUGIN_HANDLED;
}
else if( g_iCurrentRound < 2 )
{
client_print( id, print_chat, "Взять оружие возможно только после первого раунда." );
return PLUGIN_HANDLED;
}
else if( !cs_get_user_buyzone( id ) )
{
client_print( id, print_chat, "Взять оружие можно ТОЛЬКО на своей базе." );
return PLUGIN_HANDLED;
}
else WeaponMenu( id );
}
case 1: show_motd( id, "vip.txt", "Возможности VIP-Статуса" );
case 2: show_motd( id, "money.txt", "Стоимость VIP-Статуса" );
}
menu_destroy( hMenu );
return PLUGIN_HANDLED;
}
public WeaponMenu( id )
{
new hMenu = menu_create( "Эксклюзивные наборы оружий:", "WeaponMenu_Handler" );
menu_additem( hMenu, "M4A1 + Deagle + HE + Frost", "1");
menu_additem( hMenu, "AK47 + Deagle + HE + Frost", "2");
menu_additem( hMenu, "AWP + Deagle + HE + Frost", "3");
menu_setprop( hMenu, MPROP_EXIT, MEXIT_ALL );
menu_display( id, hMenu, 0 );
}
public WeaponMenu_Handler( id, hMenu, iItem )
{
if( iItem == MENU_EXIT )
{
menu_destroy( hMenu );
return PLUGIN_HANDLED;
}
new szData[ 6 ], szName[ 64 ];
new iAccess, hCallback;
menu_item_getinfo( hMenu, iItem, iAccess, szData, charsmax( szData ), szName, charsmax( szName ), hCallback );
strip_user_weapons( id );
switch( str_to_num( szData ) )
{
case 1:
{
give_item( id, "weapon_m4a1" );
cs_set_user_bpammo( id, CSW_M4A1, 90 );
give_item( id, "weapon_deagle" );
cs_set_user_bpammo( id, CSW_DEAGLE, 35 );
print_message( id, "^x04[VIP]^x01 Вы получили M4A1 + доп. снаряжение." );
}
case 2:
{
give_item( id, "weapon_ak47" );
cs_set_user_bpammo( id, CSW_AK47, 90 );
give_item( id, "weapon_deagle" );
cs_set_user_bpammo( id, CSW_DEAGLE, 35 );
print_message( id, "^x04[VIP]^x01 Вы получили AK47 + доп. снаряжение.." );
}
case 3:
{
give_item(id,"weapon_awp")
cs_set_user_bpammo( id, CSW_AWP, 30 );
give_item( id, "weapon_deagle" );
cs_set_user_bpammo( id, CSW_DEAGLE, 35 );
print_message( id, "^x04[VIP]^x01 Вы получили AWP + доп. снаряжение.." );
}
}
give_item( id, "weapon_knife" );
give_item( id, "weapon_hegrenade" );
give_item( id, "weapon_smokegrenade" );
give_item( id, "item_assaultsuit" );
give_item( id, "item_thighpack" );
g_bMenuUsed[ id ] = true;
menu_destroy( hMenu );
return PLUGIN_HANDLED;
}
public CmdShowVIP( id ) // Taken from AMX_SUPER
{
new szMessage[ 256 ];
new szVIPNames[ 33 ][ 32 ];
new iCount, x, iLen;
new iPlayers[ 32 ], iNum;
get_players( iPlayers, iNum );
new iPlayer;
for( new i = 0; i < iNum; i++ )
{
iPlayer = iPlayers[ i ];
if( get_user_flags( iPlayer ) & ADMIN_LEVEL_E )
{
get_user_name( iPlayer, szVIPNames[ iCount++ ], 31 );
}
}
iLen = format( szMessage, charsmax( szMessage ), "^x04 VIP Игроки: " );
if( iCount > 0 )
{
for( x = 0 ; x < iCount ; x++ )
{
iLen += format( szMessage[iLen], charsmax( szMessage ) - iLen, "%s%s ", szVIPNames[ x ], x < ( iCount - 1 ) ? ", " : "" );
if( iLen > 96 )
{
print_message( id, szMessage );
iLen = format( szMessage, 255, "^x04" );
}
}
print_message( id, szMessage );
}
else
{
iLen += format( szMessage[ iLen ], charsmax( szMessage ) - iLen, "Сейчас нет VIP Игроков" );
print_message( id, szMessage );
}
}
print_message( id, msg[] )
{
message_begin( MSG_ONE, g_msgSayText, { 0, 0, 0 }, id );
write_byte( id );
write_string( msg );
message_end();
}