Act-Cs.Ru - CS | CSS | CS:GO | Photoshop

  • Профиль
  • Добро пожаловать на сайт ACT-CS.RU
  • Статистика
  • Онлайн всего: 37
    Гостей: 37
    Пользователей: 0
    Гости сайта Пользователи



           

    Пользователей всего: 46521 Материалов всего [?]: 1218 +

    Сегодня были:
    Главная » Статьи » Статьи

    Создание меню для VIP игроков
    Напишем несложный плагин, меню ВИПА.

    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
    Категория: Статьи | Добавил: Master (07.04.2012)
    Просмотров: 1893 | Рейтинг: 0.0/0
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Администрация ответственности за содержание материала не несет.
    Все файлы размещенные на нашем портале, принадлежат исключительно их владельцам.
    При копировании материала, ссылка на сайт обязательна!

    ACT-CS.ru 2012 - 2013 | Хостинг от uCoz | Карта сайта | Карта форума | Robots.txt | RSS