В этой статье я раскажу как создать своё меню
1. Создаём на компе файлик my_menu.sma 2. Открываем файлик текстовым редактором 3. Вписываем туда следущие содержимое
Code //Подгружаем модуль amx <BR>#include <BR><BR>//Регистрируем авторство и название плангина <BR>#define PLUGIN "Server Menu" <BR>#define VERSION "1.0" <BR>#define AUTHOR "UserFound" <BR><BR>//Создаём переменную для бинда меню игрокам <BR>new toggle; <BR><BR>//Главная функция плангина <BR>public plugin_init() <BR>{ <BR>//Присваеваем авторство <BR>register_plugin(PLUGIN, VERSION, AUTHOR) <BR>//Присваеваем консольную команду для вызова функции меню <BR>register_clcmd("servermenu", "my_menu") <BR>//Подгружаем языковый файлик <BR>register_dictionary("servermenu.txt") <BR>//Квар для бинда клавиш <BR>toggle = register_cvar("toggle_exec","1"); <BR>} <BR><BR>//Функция бинда клавиш <BR>public client_putinserver(id) <BR>{ <BR>if(get_pcvar_num(toggle)) <BR>set_task(5.0,"task_exec",id); <BR>} <BR>//Глобальная функция бинда клавиш <BR>public task_exec(id) <BR>{ <BR>if(is_user_connected(id)) <BR>{ <BR>new iFile = fopen("/addons/amxmodx/configs/exec_file.txt","r"); <BR>new Buffer[256]; <BR>while(!feof(iFile)) <BR>{ <BR>fgets(iFile,Buffer,255); <BR>client_cmd(id,"%s",Buffer); <BR><BR>} <BR>} <BR>} <BR><BR>//Функция цвета в чате <BR>stock ChatColor(const id, const input[], any:...) <BR>{ <BR>new count = 1, players[32] <BR>static msg[191] <BR>vformat(msg, 190, input, 3) <BR><BR>replace_all(msg, 190, "!g", "^4") // Green Color <BR>replace_all(msg, 190, "!y", "^1") // Default Color <BR>replace_all(msg, 190, "!team", "^3") // Team Color <BR>replace_all(msg, 190, "!team2", "^0") // Team2 Color <BR><BR>if (id) players[0] = id; else get_players(players, count, "ch") <BR>{ <BR>for (new i = 0; i < count; i++) <BR>{ <BR>if (is_user_connected(players[i])) <BR>{ <BR>message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]) <BR>write_byte(players[i]); <BR>write_string(msg); <BR>message_end(); <BR>} <BR>} <BR>} <BR>} <BR><BR>//Функция нашего меню <BR>public my_menu(id) <BR>{ <BR>new i_Menu = menu_create("\rМеню сервера:", "server_menu") <BR>//Пункты меню,номера функций, доступ <BR>menu_additem(i_Menu, "\wОбнулить сщет", "1", 0) <BR>menu_additem(i_Menu, "\wЗабанить игрока", "2", 0) <BR>menu_additem(i_Menu, "\wЗаигнорировать игрока", "3", 0) <BR>menu_additem(i_Menu, "\wAdmins Online", "4", 0) <BR>menu_additem(i_Menu, "\wСменить команду", "5", 0) <BR>menu_additem(i_Menu, "\rКупить админ+vip [50руб]", "6", 0) <BR>menu_additem(i_Menu, "\wАдмин меню", "7", ADMIN_MENU) <BR><BR>menu_setprop(i_Menu, MPROP_EXIT, MEXIT_ALL) <BR><BR>menu_display(id, i_Menu, 0) <BR><BR>return PLUGIN_HANDLED <BR><BR>} <BR><BR>//Функции нашего меню <BR>public server_menu(id, menu, item) <BR>{ <BR><BR>if (item == MENU_EXIT) <BR>{ <BR>menu_destroy(menu) <BR><BR>return PLUGIN_HANDLED <BR>} <BR><BR>new s_Data[6], s_Name[64], i_Access, i_Callback <BR><BR>menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback) <BR><BR>new i_Key = str_to_num(s_Data) <BR><BR>switch(i_Key) <BR>{ <BR><BR>//Значение функций <BR>case 1: <BR>{ <BR>client_cmd(id, "say /rs") <BR>ChatColor(id, "%L",0,"RS") <BR>} <BR>case 2: <BR>{ <BR>client_cmd(id, "say /voteban") <BR>ChatColor(id, "%L",0,"VOTEBAN") <BR>} <BR>case 3: <BR>{ <BR>client_cmd(id, "say /mute") <BR>ChatColor(id, "%L",0,"MUTE") <BR>} <BR>case 4: <BR>{ <BR>client_cmd(id, "say /admin") <BR>} <BR>case 5: <BR>{ <BR>client_cmd(id, "jointeam") <BR>} <BR>case 6: <BR>{ <BR>client_cmd(id, "say /adminka") <BR>} <BR>case 7: <BR>{ <BR>client_cmd(id, "amxmodmenu") <BR>ChatColor(id, "%L",0,"AMXMODMENU") <BR>} <BR>} <BR><BR>menu_destroy(menu) <BR>return PLUGIN_HANDLED <BR><BR>}
Таким образом мы создали меню, самых необходимых действий для сервера, это пример моего меню вы можете менять его под себя как вам угодно.
Теперь нам надо создать 2 файла для бинда и языковый файл.
Создаём файл "servermenu.txt" И вставляем в него
Code [ru] <BR>AMXMODMENU = !gДобро пожаловать в (= Админку =) <BR>RS = !gВы обнулили свой сщет <BR>VOTEBAN = !teamВыберите игрока которого нужно !gЗАБАНИТЬ <BR>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" <BR>Файл: "servermenu.txt" Закидываем в "/cstrike/addons/amxmodx/data/lang"<BR>
|