Здравствуйте с вами Zver!
Это моя первая стать
В ней я расскажу,как же изменить amxmodmenu и так начнем с терминов.
amxmodmenu — это меню для игроков с определенными правами доступа,графическое управление сервером.
Исходник — исходный код плагина
Компилятор-программа для изменения исходного кода под определенную среду,в данном случае Сервер Counter Strike 1.6
Итак, начнем изменение нашего amxmodmenu
Для начала нам нужно найти исходник amxmodmenu,он находится в cstrikeaddonsamxmodxscripting
и называется menufront.sma
Нам нужно открыть его в блокноте
После открытия мы должны найти следующий код:
AddDefaultMenus()
{
AddMenuLang("KICK_PLAYER", "amx_kickmenu", ADMIN_KICK, "Players Menu")
AddMenuLang("BAN_PLAYER", "amx_banmenu", ADMIN_BAN, "Players Menu")
AddMenuLang("SLAP_SLAY", "amx_slapmenu", ADMIN_SLAY, "Players Menu")
AddMenuLang("TEAM_PLAYER", "amx_teammenu", ADMIN_LEVEL_A, "Players Menu")
AddMenuLang("CHANGEL", "amx_mapmenu", ADMIN_MAP, "Maps Menu")
AddMenuLang("VOTE_MAPS", "amx_votemapmenu", ADMIN_VOTE, "Maps Menu")
AddMenuLang("SPECH_STUFF", "amx_speechmenu", ADMIN_MENU, "Commands Menu")
AddMenuLang("CLIENT_COM", "amx_clcmdmenu", ADMIN_LEVEL_A, "Players Menu")
AddMenuLang("SERVER_COM", "amx_cmdmenu", ADMIN_MENU, "Commands Menu")
AddMenuLang("CVARS_SET", "amx_cvarmenu", ADMIN_CVAR, "Commands Menu")
AddMenuLang("CONFIG", "amx_cfgmenu", ADMIN_MENU, "Commands Menu")
AddMenuLang("LANG_SET", "amx_langmenu", ADMIN_CFG, "Multi-Lingual System")
AddMenuLang("STATS_SET", "amx_statscfgmenu", ADMIN_CFG, "Stats Configuration")
AddMenuLang("PAUSE_PLUG", "amx_pausecfgmenu", ADMIN_CFG, "Pause Plugins")
AddMenuLang("RES_WEAP", "amx_restmenu", ADMIN_CFG, "Restrict Weapons")
AddMenuLang("TELE_PLAYER", "amx_teleportmenu", ADMIN_CFG, "Teleport Menu")
}
Теперь давайте разберем код:AddMenuLang("KICK_PLAYER", "amx_kickmenu", ADMIN_KICK, "Players Menu")
Часть меню которая отвечает за пункт КикнутьAddMenuLang("BAN_PLAYER", "amx_banmenu", ADMIN_BAN, "Players Menu")
Часть меню которая отвечает за пункт ЗабанитьAddMenuLang("SLAP_SLAY", "amx_slapmenu", ADMIN_SLAY, "Players Menu")
Часть меню которая отвечает за пункт Ударить/УбитьAddMenuLang("TEAM_PLAYER", "amx_teammenu", ADMIN_LEVEL_A, "Players Menu")
Часть меню которая отвечает за пункт Команда игрокаAddMenuLang("VOTE_MAPS", "amx_votemapmenu", ADMIN_VOTE, "Maps Menu")
Часть меню которая отвечает за пункт ГолосованиеAddMenuLang("CHANGEL", "amx_mapmenu", ADMIN_MAP, "Maps Menu")
Часть меню которая отвечает за пункт Сменить картуAddMenuLang("SPECH_STUFF", "amx_speechmenu", ADMIN_MENU, "Commands Menu")
Часть меню которая отвечает за пункт Голосовые сообщенияAddMenuLang("CLIENT_COM", "amx_clcmdmenu", ADMIN_LEVEL_A, "Players Menu")
Часть меню которая отвечает за пункт Клиент менюAddMenuLang("SERVER_COM", "amx_cmdmenu", ADMIN_MENU, "Commands Menu")
Часть меню которая отвечает за пункт ПеременныеAddMenuLang("CVARS_SET", "amx_cvarmenu", ADMIN_CVAR, "Commands Menu")
Часть меню которая отвечает за пункт КварыAddMenuLang("CONFIG", "amx_cfgmenu", ADMIN_MENU, "Commands Menu")
Часть меню которая отвечает за пункт КонфигAddMenuLang("LANG_SET", "amx_langmenu", ADMIN_CFG, "Multi-Lingual System")
Часть меню которая отвечает за пункт ЯзыкAddMenuLang("STATS_SET", "amx_statscfgmenu", ADMIN_CFG, "Stats Configuration")
Часть меню которая отвечает за пункт СтатистикаAddMenuLang("PAUSE_PLUG", "amx_pausecfgmenu", ADMIN_CFG, "Pause Plugins")
Часть меню которая отвечает за пункт Плагин менюAddMenuLang("RES_WEAP", "amx_restmenu", ADMIN_CFG, "Restrict Weapons")
Часть меню которая отвечает за пункт Запрет оружияAddMenuLang("TELE_PLAYER", "amx_teleportmenu", ADMIN_CFG, "Teleport Menu")
Часть меню которая отвечает за пункт Телепорт
Для удаления пункта, удалите часть кода, который отвечает за этот пункт.
После удаления этого ненужного пункта, сохраните и скомпилируйте (измененный menufront.sma перенести мышкой, на значок compile.exe)
Далее заходим в папкуcstrikeaddonsamxmodxscriptingcompiled
и находим наш готовый плагин menufront.amxx
Далее копируем его в папкуcstrikeaddonsamxmodxplugins
с заменой, всё!
Всем пока, надеюсь эта статья вам помогла!
Не будь злюкой, напиши «Спасибо» в комменты
Если что-то непонятно, спрашивайте,отвечу всем!
Скажу вам это очень удобно, не нужно делать много биндов, и лишний раз вспоминать на какую кнопку забиндено то или иное меню.
И так начнем
Сохраните оригинал файлов menufron.sma и menufront.amx
1. Открываем файл menufront.sma… находитсяaddonsamxmodxscripting
2. Ищем строчку
AddDefaultMenus()
{
new flags;
3. После этого добавляем туда строчку
AddMenuLang(«LANG_TEG», «команда», get_clcmd_flags(«команда», flags) ? flags : ADMIN_KICK , «Players Menu»)
4. Сохраняем
5.Компилируем плагин
6. Копируем откомпилированный плагин в папку plugins, на вопрос заменить жмем Да
Открываем файл menufront.txt и добавляем строчкуLANG_TEG = lang_teg
Поясню:
Вместо слова команда вводим команду которую будет выполнять пункт меню. Вместо слова LANG_TEG вставляем тег в словарь перевода. Если вам не понятно что за тег, откройте файл menufront.txt находиться addonsamxmodxdatalang
Видим там что то похожее KICK_PLAYER = Kick Player или BAN_PLAYER = Ban Player ну там много пунктов, так вот KICK_PLAYER и BAN_PLAYER это и есть LANG_TEG
В основном LANG_TEG служит для перевода меню
Пример:
AddMenuLang(«UAIO_MENU», «uaio_menu», get_clcmd_flags(«uaio_menu», flags) ? flags : ADMIN_KICK , «Players Menu»)
затем открыл файл menufront.txt и добавил строчку UAIO_MENU = uaio_menu
Я добавил пункт который будет вызывать uaio_меню
Есть еще один способ
1.Открываем файл custommenuitems.cfg находится в addonsamxmodxconfigs
2.Добавляем строчку
amx_addmenuitem «текст меню» «команда меню» «флаги доступа» «название плагина»
«текст меню» — То что будет видно в меню
«команда меню»- команда посылаемая в консоль сервера, например uaio_menu
«флаги доступа» — флаг доступа, смотри файл user.ini
«название плагина»- название плагина
Например:
amx_addmenuitem «Админ меню» «uaio_menu» «d» «uaio_menu»
Так же можете менять кол-во строк в меню, по стандарту 8
#define MENUITEMSPERPAGE 8
цифру 8 меняете как вам удобно, но не советую делать более 12
Ну и все удачи.
Итог работы
Автор статьи: nana_pumckuu
#1
Jimmik
-
- Пользователь
-
- 15 сообщений
Новичок
Отправлено 26 Май 2013 — 22:42
Привет народ мне нужна помощь!)
Мне надо добавить команду сделать рестарт в amxmodmenu
Вот сам плагин ТЫК
мне надо добавить чтобы на цифру 8 была команда «Сделать рестарт» и когда нажимаешь на эту кнопку делался рестарт!)
Спасибо кто сделает.
- Наверх
#2
Rycuk
Отправлено 27 Май 2013 — 0:07
Привет народ мне нужна помощь!)
Мне надо добавить команду сделать рестарт в amxmodmenu
Вот сам плагин ТЫК
мне надо добавить чтобы на цифру 8 была команда «Сделать рестарт» и когда нажимаешь на эту кнопку делался рестарт!)
Спасибо кто сделает.
amxmodmenu -> 9, 3, 1 вроде так. Чем этот вариант не нравится?)
- Наверх
#3
Santiago
Отправлено 27 Май 2013 — 7:01
amxmodmenu -> 9, 3, 1 вроде так. Чем этот вариант не нравится?)
amxmodmenu -> 9,1, 3 если точнее =)
- Rycuk это нравится
- Наверх
#4
Jimmik
Jimmik
-
- Пользователь
-
- 15 сообщений
Новичок
Отправлено 27 Май 2013 — 9:47
amxmodmenu -> 9,1, 3 если точнее =)
У меня измененный amxmodmenu.
Не стандартный стоит.
- Наверх
#5
Rycuk
Отправлено 27 Май 2013 — 10:23
У меня измененный amxmodmenu.
Не стандартный стоит.
/addons/amxmodx/configs/cmds.ini
У тебя там есть что нибудь?
Если нет, вот:
«Pause» «amx_pause» «ad» «u»
» » «-» «» «u»
«Restart Round» «sv_restartround 1» «a» «u»
Ещё есть плагин в ПУ, когда пишешь /reset сервер делает рестарт.
- Наверх
#6
Jimmik
Jimmik
-
- Пользователь
-
- 15 сообщений
Новичок
Отправлено 27 Май 2013 — 11:07
/addons/amxmodx/configs/cmds.ini
У тебя там есть что нибудь?
Если нет, вот:
«Pause» «amx_pause» «ad» «u»
» » «-» «» «u»
«Restart Round» «sv_restartround 1» «a» «u»Ещё есть плагин в ПУ, когда пишешь /reset сервер делает рестарт.
Да блин у меня не стандартный amxmodmenu, а вот какой
Мне надо чтобы в этом меню появилась команда «Сделать рестарт» а я не знаю как это сделать!
В /addons/amxmodx/configs/cmds.ini У меня там прописано это
» » «-» «» «u»
«Restart Round» «sv_restartround 5» «a» «u»
- Наверх
#7
nox904
Отправлено 27 Май 2013 — 11:16
пробни так
AddDefaultMenus()
{
new flags;
AddMenuLang(«KICK_PLAYER», «amx_kickmenu», get_clcmd_flags(«amx_kickmenu», flags) ? flags : ADMIN_KICK , «Players Menu»)
AddMenuLang(«BAN_PLAYER», «amx_banmenu», get_clcmd_flags(«amx_banmenu», flags) ? flags : ADMIN_BAN, «Players Menu»)
AddMenuLang(«SLAP_SLAY», «amx_slapmenu», get_clcmd_flags(«amx_slapmenu», flags) ? flags : ADMIN_SLAY, «Players Menu»)
AddMenuLang(«TEAM_PLAYER», «amx_teammenu», get_clcmd_flags(«amx_teammenu», flags) ? flags : ADMIN_LEVEL_A, «Players Menu»)
AddMenuLang(«VOTE_MAPS», «amx_votemapmenu», get_clcmd_flags(«amx_votemapmenu», flags) ? flags : ADMIN_VOTE, «Maps Menu»)
AddMenuLang(«WEAPON_COM», «weaponmenu», get_clcmd_flags(«weaponmenu», flags) ? flags : ADMIN_LEVEL_H, «Players Menu»)
AddMenuLang(«VIP_COM», «vipmenu», get_clcmd_flags(«vipmenu», flags) ? flags : ADMIN_LEVEL_H, «Players Menu»)
AddMenuLang(«restartround», «sv_restartround 5», get_clcmd_flags(«sv_restartround 5», flags) ? flags : ADMIN_KICK, «Players Menu»)
}
menufront.txt
restartround = Сделать рестарт
Сообщение отредактировал nox904: 27 Май 2013 — 11:18
- Наверх
#8
BaHeK
BaHeK
-
- Модератор
-
- 324 сообщений
Пользователь
Отправлено 27 Май 2013 — 18:31
пробни так
AddDefaultMenus()
{
new flags;
AddMenuLang(«KICK_PLAYER», «amx_kickmenu», get_clcmd_flags(«amx_kickmenu», flags) ? flags : ADMIN_KICK , «Players Menu»)
AddMenuLang(«BAN_PLAYER», «amx_banmenu», get_clcmd_flags(«amx_banmenu», flags) ? flags : ADMIN_BAN, «Players Menu»)
AddMenuLang(«SLAP_SLAY», «amx_slapmenu», get_clcmd_flags(«amx_slapmenu», flags) ? flags : ADMIN_SLAY, «Players Menu»)
AddMenuLang(«TEAM_PLAYER», «amx_teammenu», get_clcmd_flags(«amx_teammenu», flags) ? flags : ADMIN_LEVEL_A, «Players Menu»)
AddMenuLang(«VOTE_MAPS», «amx_votemapmenu», get_clcmd_flags(«amx_votemapmenu», flags) ? flags : ADMIN_VOTE, «Maps Menu»)
AddMenuLang(«WEAPON_COM», «weaponmenu», get_clcmd_flags(«weaponmenu», flags) ? flags : ADMIN_LEVEL_H, «Players Menu»)
AddMenuLang(«VIP_COM», «vipmenu», get_clcmd_flags(«vipmenu», flags) ? flags : ADMIN_LEVEL_H, «Players Menu»)
AddMenuLang(«restartround», «sv_restartround 5», get_clcmd_flags(«sv_restartround 5», flags) ? flags : ADMIN_KICK, «Players Menu»)
}
menufront.txtrestartround = Сделать рестарт
Если не знаешь, лучше не пиши, такая бредятина работать не будет
- Наверх
#9
Jimmik
Jimmik
-
- Пользователь
-
- 15 сообщений
Новичок
Отправлено 27 Май 2013 — 21:41
Если не знаешь, лучше не пиши, такая бредятина работать не будет
Кто может сделать чтобы работало
- Наверх
#10
nox904
Отправлено 27 Май 2013 — 21:51
Кто может сделать чтобы работало
мб это ты http://www.amx-x.ru/…42acbbf8765c294 то там сделали
- Наверх
#11
Jimmik
Jimmik
-
- Пользователь
-
- 15 сообщений
Новичок
Отправлено 28 Май 2013 — 9:42
мб это ты http://www.amx-x.ru/…42acbbf8765c294 то там сделали
Мне его сделали, а я поменял сервер на 1000fps и потерял тот файл который качал тут. а щас уже нельзя там скачать файл тот
- Наверх