Всем доброго времени суток форумчане,ошибка появляется не часто,просьба помочь ее исправить.
Ошибка:
L 01/17/2014 - 15:03:41: Start of error session. L 01/17/2014 - 15:03:41: Info (map "de_dust2x2_mirror") (file "addons/amxmodx/logs/error_20140117.log") L 01/17/2014 - 15:03:41: [CSTRIKE] Invalid player 22 L 01/17/2014 - 15:03:41: [AMXX] Displaying debug trace (plugin "vipmenu.amxx") L 01/17/2014 - 15:03:41: [AMXX] Run time error 10: native error (native "cs_get_user_buyzone") L 01/17/2014 - 15:03:41: [AMXX] [0] textzBNPGD.sma::VIPMenu_Handler (line 100)
Сам плагин:
#include < amxmodx > #include < fun > #include < cstrike > #include < colorchat > #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", "?" ); register_clcmd( "say /vip","CmdVIPMenu" ); register_clcmd( "vip", "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 500", szName ); cs_set_user_money(iPlayer, 16000) } } } 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, "Эксклюзивный набор оружия (VIP)", "0" ); else menu_additem( hMenu, "Эксклюзивный набор оружия (VIP)", "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( "Эксклюзивные наборы оружий (VIP):", "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 ); } 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 ); } 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 ); } } 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 ) { iLen = format( szMessage, 255, "^x04" ); } } } else { iLen += format( szMessage[ iLen ], charsmax( szMessage ) - iLen, "Сейчас нет VIP Игроков на сервере" ); } } print_message( id, msg[] ) { message_begin( MSG_ONE, g_msgSayText, { 0, 0, 0 }, id ); write_byte( id ); write_string( msg ); message_end(); }