Напишем несложный плагин, меню ВИПА.
1. Подключим нужные модули, зарегистрируем плагин и команду: Code #include <amxmodx> #include <fun> #include <cstrike> #include <engine>
#define PLUGIN "Name" #define VERSION "Version" #define AUTHOR "Author"
new bool:has_used[33]
public plugin_init() { register_clcmd( "say /vipmenu", "VIPMenu" ); register_clcmd( "say_team /vipmenu", "VIPMenu" );
register_logevent("event_new_round", 2, "1=Round_Start") }
plugin_init - обязательная функция, без нее amx просто не сможет запустить Ваш плагин. register_clcmd - регистрируем команду Name - название вашего плагина, Version - версия, Author - автор.
2. Установим флаг доступа и создадим меню: Code public VIPMenu( id ) { if(!has_used[id]) { if(get_user_flags(id) & ADMIN_LEVEL_H) { new vip_menu = menu_create( "\rVip меню:", "menu_handler" ); menu_additem( vip_menu, "\w255Hp и 255брони", "1", 0 ); menu_additem( vip_menu, "\wПолный комплект гранат", "2", 0 ); menu_additem( vip_menu, "\wНизкая гравитация", "3", 0); menu_additem( vip_menu, "\wP228 (\r13 патронов\w)", "4", 0); menu_setprop( vip_menu, MPROP_EXIT, MEXIT_ALL ); menu_display( id, vip_menu, 0 ); }
if(get_user_flags(id) - Админский флаг menu_additem - Добавление пункта меню
3. Вывод текста игрокам: Code else { client_print(id, print_chat, "[VIP] Вы не имеете доступ к этому меню!!!") // Вывод если у игрока нет опр. флага } } else { client_print(id, print_chat, "[VIP] Вы уже открыли меню!!!") // Вывод если игрок пытается открыть меню 2 раз } }
4. Пишем обработчик: Code public menu_handler( id, menu, item ) { if( item == MENU_EXIT ) { menu_destroy( menu ); return PLUGIN_HANDLED; } new data[6], iName[64]; new access, callback; menu_item_getinfo( menu, item, access, data,5, iName, 63, callback ); new key = str_to_num( data ); switch( key ) { case 1: { if( is_user_alive( id ) ) { set_user_health( id, 255 ); //Sets health of id to 150 set_user_armor( id, 255 ); //Sets armor of id to 200 } } case 2: { if( is_user_alive( id ) ) { give_item( id, "weapon_hegrenade" ) give_item( id, "weapon_flashbang" ) give_item( id, "weapon_flashbang" ) give_item( id, "weapon_smokegrenade" ) } } case 3: { if( is_user_alive( id ) ) { set_user_gravity( id, 0.5 ); } } case 4: { if(is_user_alive(id)) { give_item( id, "weapon_p228" ); } } } has_used[id] = true; menu_destroy( menu ); return PLUGIN_HANDLED; }
public event_new_round() arrayset(has_used, false, 33)
set_user_health - установить hp set_user_armor - установить ap give_item - Дать вещь [weapon_m4a1, weapon_ak47] set_user_gravity - Установить гравитацию игроку
Итого:
Code #include <amxmodx> #include <fun> #include <cstrike> #include <engine>
#define PLUGIN "Name" #define VERSION "Version" #define AUTHOR "Author"
new bool:has_used[33]
public plugin_init() { register_clcmd( "say /vipmenu", "VIPMenu" ); register_clcmd( "say_team /vipmenu", "VIPMenu" );
register_logevent("event_new_round", 2, "1=Round_Start") }
public VIPMenu( id ) { if(!has_used[id]) { if(get_user_flags(id) & ADMIN_LEVEL_H) { new vip_menu = menu_create( "\rVip меню:", "menu_handler" ); menu_additem( vip_menu, "\w255Hp и 255брони", "1", 0 ); menu_additem( vip_menu, "\wПолный комплект гранат", "2", 0 ); menu_additem( vip_menu, "\wНизкая гравитация", "3", 0); menu_additem( vip_menu, "\wP228 (\r13 патронов\w)", "4", 0); menu_setprop( vip_menu, MPROP_EXIT, MEXIT_ALL ); menu_display( id, vip_menu, 0 ); } else { client_print(id, print_chat, "[VIP] Вы не имеете доступ к этому меню!!!") } } else { client_print(id, print_chat, "[VIP] Вы уже открыли меню!!!") } }
public menu_handler( id, menu, item ) { if( item == MENU_EXIT ) { menu_destroy( menu ); return PLUGIN_HANDLED; } new data[6], iName[64]; new access, callback; menu_item_getinfo( menu, item, access, data,5, iName, 63, callback ); new key = str_to_num( data ); switch( key ) { case 1: { if( is_user_alive( id ) ) { set_user_health( id, 255 ); //Sets health of id to 150 set_user_armor( id, 255 ); //Sets armor of id to 200 } } case 2: { if( is_user_alive( id ) ) { give_item( id, "weapon_hegrenade" ) give_item( id, "weapon_flashbang" ) give_item( id, "weapon_flashbang" ) give_item( id, "weapon_smokegrenade" ) } } case 3: { if( is_user_alive( id ) ) { set_user_gravity( id, 0.5 ); } } case 4: { if(is_user_alive(id)) { give_item( id, "weapon_p228" ); } } } has_used[id] = true; menu_destroy( menu ); return PLUGIN_HANDLED; }
public event_new_round() arrayset(has_used, false, 33)
*Для отображения русского текста используйте тектовый редактор AkelPad, сохраняйте в разрешении UTF-8
|