Реклама:

  • Страница 1 из 1
  • 1
Форум » Создание и настройка серверов Cs 1.6 » Статьи и мануалы » Делаем свое Меню сервера
Делаем свое Меню сервера
NAEMNIK Дата: Пятница, 20.04.2012, 21:50:06 | Сообщение # 1


ACA
Сообщений: 222
Награды: 5


В этой статье я раскажу как создать своё меню:

1. Создаём на компе файлик my_menu.sma
2. Открываем файлик текстовым редактором
3. Вписываем туда следущие содержимое

Code
//Подгружаем модуль amx   
   #include   

   //Регистрируем авторство и название плангина   
   #define PLUGIN "Server Menu"   
   #define VERSION "1.0"   
   #define AUTHOR "UserFound"   

   //Создаём переменную для бинда меню игрокам   
   new toggle;   

   //Главная функция плангина   
   public plugin_init()   
   {   
   //Присваеваем авторство   
   register_plugin(PLUGIN, VERSION, AUTHOR)   
   //Присваеваем консольную команду для вызова функции меню   
   register_clcmd("servermenu", "my_menu")   
   //Подгружаем языковый файлик   
   register_dictionary("servermenu.txt")   
   //Квар для бинда клавиш   
   toggle = register_cvar("toggle_exec","1");   
   }   

   //Функция бинда клавиш   
   public client_putinserver(id)   
   {   
   if(get_pcvar_num(toggle))   
   set_task(5.0,"task_exec",id);   
   }   
   //Глобальная функция бинда клавиш   
   public task_exec(id)   
   {   
   if(is_user_connected(id))   
   {   
   new iFile = fopen("/addons/amxmodx/configs/exec_file.txt","r");   
   new Buffer[256];   
   while(!feof(iFile))   
   {   
   fgets(iFile,Buffer,255);   
   client_cmd(id,"%s",Buffer);   

   }   
   }   
   }   

   //Функция цвета в чате   
   stock ChatColor(const id, const input[], any:...)   
   {   
   new count = 1, players[32]   
   static msg[191]   
   vformat(msg, 190, input, 3)   

   replace_all(msg, 190, "!g", "^4") // Green Color   
   replace_all(msg, 190, "!y", "^1") // Default Color   
   replace_all(msg, 190, "!team", "^3") // Team Color   
   replace_all(msg, 190, "!team2", "^0") // Team2 Color   

   if (id) players[0] = id; else get_players(players, count, "ch")   
   {   
   for (new i = 0; i < count; i++)   
   {   
   if (is_user_connected(players[i]))   
   {   
   message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])   
   write_byte(players[i]);   
   write_string(msg);   
   message_end();   
   }   
   }   
   }   
   }   

   //Функция нашего меню   
   public my_menu(id)   
   {   
   new i_Menu = menu_create("\rМеню сервера:", "server_menu")   
   //Пункты меню,номера функций, доступ   
   menu_additem(i_Menu, "\wОбнулить сщет", "1", 0)   
   menu_additem(i_Menu, "\wЗабанить игрока", "2", 0)   
   menu_additem(i_Menu, "\wЗаигнорировать игрока", "3", 0)   
   menu_additem(i_Menu, "\wAdmins Online", "4", 0)   
   menu_additem(i_Menu, "\wСменить команду", "5", 0)   
   menu_additem(i_Menu, "\rКупить админ+vip [50руб]", "6", 0)   
   menu_additem(i_Menu, "\wАдмин меню", "7", ADMIN_MENU)   

   menu_setprop(i_Menu, MPROP_EXIT, MEXIT_ALL)   

   menu_display(id, i_Menu, 0)   

   return PLUGIN_HANDLED   

   }   

   //Функции нашего меню   
   public server_menu(id, menu, item)   
   {   

   if (item == MENU_EXIT)   
   {   
   menu_destroy(menu)   

   return PLUGIN_HANDLED   
   }   

   new s_Data[6], s_Name[64], i_Access, i_Callback   

   menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)   

   new i_Key = str_to_num(s_Data)   

   switch(i_Key)   
   {   

   //Значение функций   
   case 1:   
   {   
   client_cmd(id, "say /rs")   
   ChatColor(id, "%L",0,"RS")   
   }   
   case 2:   
   {   
   client_cmd(id, "say /voteban")   
   ChatColor(id, "%L",0,"VOTEBAN")   
   }   
   case 3:   
   {   
   client_cmd(id, "say /mute")   
   ChatColor(id, "%L",0,"MUTE")   
   }   
   case 4:   
   {   
   client_cmd(id, "say /admin")   
   }   
   case 5:   
   {   
   client_cmd(id, "jointeam")   
   }   
   case 6:   
   {   
   client_cmd(id, "say /adminka")   
   }   
   case 7:   
   {   
   client_cmd(id, "amxmodmenu")   
   ChatColor(id, "%L",0,"AMXMODMENU")   
   }   
   }   

   menu_destroy(menu)   
   return PLUGIN_HANDLED   

   }

Таким образом мы создали меню, самых необходимых действий для сервера, это пример моего меню вы можете менять его под себя как вам угодно.

Теперь нам надо создать 2 файла для бинда и языковый файл.

Создаём файл "servermenu.txt" И вставляем в него

Code
[ru]   
   AMXMODMENU = !gДобро пожаловать в (= Админку =)   
RS = !gВы обнулили свой сщет   
VOTEBAN = !teamВыберите игрока которого нужно !gЗАБАНИТЬ   
MUTE = !teamВыберите игрока которого вы !gне хотете !teamслышать по микрафону


Далее сохраняем файл обязательно в UTF 8 Без BOW.

Создаём ещё один файл "exec_file.txt"
Вставляем в него

Code
bind "m" "servermenu"


Далее компилируем полученный плангин, можно онлайн компилятором: webcomp.ak-team.com

Полученный плангин устанавливаем на сервер.

Code
Файл "exec_file.txt" Закидываем в "/cstrike/addons/amxmodx/configs"   
Файл: "servermenu.txt" Закидываем в "/cstrike/addons/amxmodx/data/lang"
Форум » Создание и настройка серверов Cs 1.6 » Статьи и мануалы » Делаем свое Меню сервера
  • Страница 1 из 1
  • 1
Поиск: