Приветствую, уважаемые участники форума dev-cs.ru Хочу поделится своим опытом с теми, кто часто занимается проверкой/тестированием/отладкой плагинов. Цель этой статьи — сохранить самый ценный ресурс — Ваше Время.

Все мы учимся на своих ошибках и приобретаем бесценный опыт. Оглядываясь назад, я могу сказать, что потратил довольно много времени на тестирование многих мелочей, когда можно было бы использовать это время с большой пользой. Здесь я опишу многие приёмы, которые пришли ко мне с опытом и позволили значительно сократить время на проверку плагинов. Статья может быть полезна как тем, кто занимается созданием плагинов, так и просто владельцам серверов, предпочитающим тестировать плагины перед установкой на свой сервер.

По ходу статьи постоянно идут отсылки на приложения ( выделены оранжевым ).
Приложения прикреплены в виде архиве, внизу первого сообщения темы.
Или их можно загрузить здесь: https://drive.google.com/file/d/1Cplk4hnnj0RGGkiNEtW3jjdlAH_FrM5m/view

Как узнать плагины сервера минекрафт — TravoQur


Помимо приложений, архив по ссылке выше включает в себя версию статьи в формате PDF.

Спойлер: 0. Начало

Перед началом уточню, что большинство тестов я проводил с ботами при отключенном интернете. Адресом сервера был 192.168.0.1:27016

Спойлер: 1. Быстрый рестарт

Часто бывает нужным быстро сделать рестарт. И я написал для себя простой плагин rr.amxx для тестового сервера – введя в консоль команду rr происходит рестарт раундов на сервере.

Смотрите приложение 1: rr.sma или код ниже

Спойлер: rr

#include public plugin_init() < register_plugin(«RESTART [TEST]», «1.0», «Leo_[BH]») register_concmd(«rr», «restart») >public restart()

Альтернатива: бинд amx_cvar sv_restart 1 на любую клавишу, например,
bind p «amx_cvar sv_restart 1»

Но я уже на автомате могу набрать комбинацию клавиш ~ rr Enter ~, по этому пользуюсь первым вариантом.

Спойлер: 2. Убить всех, быстро закончить раунд

Чтобы наступил следующий раунд, самый просто способ это просто убить всех игроков. kk.amx – используются консольные команды qq или kk или bot_kill (последнее, конечно, не обязательно :] )

Смотрите приложение 2: kk.sma или код ниже

Спойлер: kk

#include public plugin_init() < register_plugin(«KILL ALL [TEST]», «1.0», «Leo_[BH]») register_concmd(«qq», «KillAll») register_concmd(«kk», «KillAll») // register_concmd(«bot_kill», «KillAll») >public KillAll() < for(new i = 1; i < 33; i++) < if(is_user_alive(i)) user_kill(i) >>

Дополнительно:можете забиндить на клавишу, к примеру:
bind x kk

Альтернативный вариант: написать плагин для окончания раунда по такой-же или иной команде.

Спойлер: 3. Авто вход в команду

Настроенный плагин team_join позволит не тратить время на такую мелочь как выбор команды и скина игрока.

КАК УЗНАТЬ ПЛАГИНЫ НА СЕРВЕРЕ | НОВЫЙ СПОСОБ


Оригинальный плагин: https://forums.alliedmods.net/showthread.php?t=69819

Настройки:
tjm_join_team 4
tjm_switch_team 0
tjm_class_t 5
tjm_class_ct 5
tjm_block_change 0

Рекомедую изменить настройки в самом исходном коде (изменить квары по умолчанию).

Еще из-за этого плагина боты помирают после подключения к игре, используйте модифицированную мною версию этого плагина (готовое решение, настройки уже выставлены, ботов будем игнорировать):

Смотрите приложение 3: team_join.sma

Спойлер: 4. Ваш тест-сервер в игровом меню

resourceGameMenu.res можно отредактировать, вставив туда пункт быстрого подключения к любимому серверу. или тестовому серверу, в нашем случае.

Смотрите приложение 4: gamemenu

Как результат, можно подключаться к серверу быстрее, не открывая диалогового окна Find Servers. А также быстро делать переподключения (альтернатива: reconnect).

Спойлер: 5. Автоподключение к тест-серверу сразу после запуска игры

Делаем автоконнект к серверу, пару вариантов:

I. Создать файл конфигурации autoexec.cfg в директории мода.
Наполнить содержимым: Connect 192.168.0.1:27016

II. Установить параметры запуска игры:
+Connect 192.168.0.1:27016

Альтернативным вариантом могу назвать возможность запуска сервера не через hlds.exe, а с помощью клиенто-сервера (просто на клиенте установить metamod, amxmodx и запускать как новую игру)

Читайте также:  Что дает приманка в Майнкрафт

Спойлер: 6. Не логировать вход администраторов

Приложенный мною admin_nolog.amxx – то же, что и admin.amxx с amxmodx 1.8.2, только без функции логирования администраторов, входящих на сервер. Зачем? Функцией log_amx я часто пользуюсь для записи отладочной информации плагинов, и желаю чтобы ничего лишнего в журналах (логах) не было. На локальном тестовом сервере ведь все равно кроме вас никого с админов не будет.

Смотрите приложение 6: admin_nolog.sma

P.S. — я просто закомментировал все строки log_amx в плагине admin.sma
Если вы используете amxmodx новой версии, можете сделать то же самое.

P.S.2 – Надеюсь, вы внимательны и не забудете заменить в amxmodx/configs/plugins.ini строку admin.amxx на admin_nolog.amxx

Спойлер: 7. MapList Genegator

Один из простейших, но в то же время полезнейших плагинов, которые я когда-либо делал. Загрузили новую карту на сервер, а прописывать её в maps.ini благодаря больше плагину не нужно.
Смотрите приложение 7: mapslist_generator.sma или загрузите плагин отсюда

Описание плагина: Плагин считывает все файлы c расширением .bsp в директории maps и вставляет их названия в текстовый файл карт сервера, то есть в maps.ini | Это снимает с вас задачу ручной прописи названия каждой карты в maps.ini | Как результат, установка новых карт на ваш сервер станет быстрее и проще.

Спойлер: 8. Настройка server.cfg под тест-сервер

mp_freezetime 0
mp_startmoney 16000

Это не требует объяснений, но все-равно напомню, что для тест сервера есть смысл убрать freeze time вовсе, а стартовое количество денег увеличить до максимума (в большинстве случаев). В остальном руководитесь правилом: лучше настроить один раз server.cfg, чем постоянно менять переменные.

P.S. — на ReGameDll настройка ведется в файле game.cfg, а не server.cfg

Спойлер: 9. Плагин status_info + autoprint

Смысл плагина — показать вам такие данные как ваш ник, ip, steamid и права доступа сразу после входа на сервер. Главное здесь, права доступа. Ведь иногда требуется проверить кое-что с правами админа или без них. Плагин напомнит вам,не забыли ли вы отключить себе привилегии для специальной проверки, а потом снова их включить. Чтобы вы не теряли драгоценные минуты, пытаясь понять, а «почему же оно не работает?».

Смотрите приложение 9: status_me.sma

Альтернатива: консольная команда, бинд команды amx_who

Спойлер: 10. Неуязвимость

Это уже классика тестов в играх. Напишите себе плагин на бессмертие, неуязвимость или огромное количество ХП. Поунижайте ботов XD

Альтернатива: sv_cheats 1

Спойлер: 11. Небольшие карты, удобные для тестов

Подберите одну или несколько карт, которые отлично бы подошли для тестов.
Мне идеально подошла карта aim_2stories
Прозрачные стены позволяют не напрягаться на сражения с ботами, а компактность карты позволяет проводить тесты быстро
Конечно, если вам нужно тестировать что-то с бомбой или заложниками, вы будете использовать другую карту

Спойлер: 12. Еще о биндах и комбинациях клавиш

Я уже научился чуть ли на автомате вводить такие комбинации клавиш, как:
~ qq ► ~
~ rr ► ~
~ q ↑ ►

Подробнее:
~ qq ► ~
тильда qq Enter тильда — убить всех

~ rr ► ~
тильда rr Enter тильда — рестарт раунда

~ q ↑ ►
тильда q стрелка_вверх Enter — выбор команды quit в консоле и выход с игры

Знаете, а ведь комбинация ~ q ↑ ► быстрее чем навести мышью на «Quit» в меню…

Но ускорить такие мелочи можно еще больше. Можно создать в игровом меню «быстрые команды». Можно сделать бинды, дабы нажатий всего одной клавиши исполнять то или иное действие. Может у вас многокнопочная мышь, и это станет еще проще. Идей по автоматизации исполнения однородный действий довольно много, можете делиться своими.

Читайте также:  Капельник в Майнкрафт зачем

Спойлер: 13. Компиляция плагинов прямо в директорию с плагинами

Компиляция плагинов по одному на горячую клавишу через NotePad++ прямо в директорию plugins тестового сервера банально сэкономят вам время на «вырезать/вставить». Как настроить NotePad++ на быстрое компилирование плагинов, описано в статье:

Этот подход очень хорош, когда работаете с плагинами по одному. Но имейте ввиду, что когда вам нужно скомпилировать сразу большое количество плагинов, лучше их закинуть у scripting и запустить compile.exe

Спойлер: 14. Everything
Everything — наше всё.
Leo_[BH]​

Это волшебная программа. Не могу передать словами, сколько времени она мне сэкономила и продолжает экономить каждый день. Она у меня на горячую клавишу Win+1 стоит. Это не просто так. Моё личное мнение — это самая полезная программа в мире для работы на ПК.

Everything – поисковый движок, который индексирует все файлы на накопителях т позволяет производить «живой поиск» по всем вашим файлам. Забудьте о такой схеме доступа к файлу, как [Мой компьютер — Диск X – выбор директории — выбор субдиректории]. Вы знаете имя файла. Вы владеете навыком печати на клавиатуре. Программа предоставит вам всё за мгновение.

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

Загрузить программу Everything бесплатно с официального сайта разработчика: https://www.voidtools.com/

Спойлер: 15. Далее — советы по организацию тестов

Потратив много времени на тестирование каждой мелочи с мимимальным толком (особенно много я занимался сборками зомби-модов), я понял, что с таким подходом моя эффективность крайне низка. По этому хочу посоветовать не повторять моих ошибок, а организовывать для себя список, куда записывать «Всё, что нужно проверить» в порядке нумерации. Это можно делать на бумаге, или в электронном виде — на ваше усмотрение. Советую проводить только глобальные тесты, когда накопился солидный список того, что требуется протестировать.

Этот подход стоить применять к разработке чего-то крупного, например, сборок или больших модов.

Спойлер: 16. Тестеры

В конце концов, можно передать ответственность за проверку плагинов другим людям, которые заинтересованы в этом. Но это больше подходит для крупных плагинов и модов. Главное: составляйте чёткий и обширный список всего того, что нужно проверить. Как это организовать, уже думайте сами.

Спойлер: Еще советы

  • Есть такой интересный плагин как Potti — a controllable fakeplayer — контролируемые фейковые игроки, вроде ботов, только их можно заставить повторять действия за вами

Источник: dev-cs.ru

Как проверить работу плагинов и/или модулей?

1) Проверка плагинов.
Для того, что бы проверить работу плагинов, Вам требуется перейти по следующему пути — «Панель управления — управление — консоль», затем введите в консольную строку команду «amxx list» , после чего нажмите «отправить» .

Пример:
Currently loaded plugins:
name version author file status

[ 1] AES: Informer 0.2 serfreeman1337 aes_informer.am running
[ 2] AES: Experience Editor 0.1 serfreeman1337 aes_exp_editor. running
[ 3] AES: Exp CSTRIKE 0.3 serfreeman1337 aes_exp_cstrike running
[ 4] AES: Bonus System 0.2 serfreeman1337 aes_bonus_syste running
[ 5] AES: Bonus CSTRIKE 0.4 serfreeman1337 aes_bonus_cstri running
5 plugins, 5 running

Читайте также:  Эдисон бесконечная ферма пороха в Майнкрафт

Состояние плагинов.
running — означает, что плагин запущен.
bad load — означает, что плагин не запущен.

2) Проверка модулей.
Для того, что бы проверить работу модулей, Вам требуется перейти по следующему пути — «Панель управления — управление — консоль», затем введите в консольную строку команду «meta list» , после чего нажмите «отправить» .

Пример:
[ 1] AMX Mod X RUN — amxmodx_mm_i386. v1.8.2-d ini Start ANY
[ 2] dproto RUN — dproto_i386.so v0.9.187 ini Start Never
[ 3] Fun RUN — fun_amxx_i386.so v1.8.2-e pl1 ANY ANY
[ 4] CStrike RUN — cstrike_amxx_i38 v1.8.2-e pl1 ANY ANY
[ 5] CSX RUN — csx_amxx_i386.so v1.8.2-e pl1 ANY ANY
[ 6] MySQL RUN — mysql_amxx_i386. v1.8.2-d pl1 ANY ANY
[ 7] FakeMeta RUN — fakemeta_amxx_i3 v1.8.2-e pl1 ANY ANY
[ 8] Ham Sandwich RUN — hamsandwich_amxx v1.8.2-e pl1 ANY ANY
[ 9] Engine RUN — engine_amxx_i386 v1.8.2-e pl1 ANY ANY
9 plugins, 9 running

Состояние плагинов.
RUN — означает, что модуль запущен и работает.
bad load — означает, что модуль работает не правильно.

Источник: forgame.su

Как проверить плагины на сервере minecraft

Как проверить работу плагинов/модулей?

Проверка всех работающих/не работающих плагинов на сервере.

Зайдите в панель управления сервером, далее во вкладку «Консоль».
Нажмите кнопку AMXX LIST. (команда в консоли amxx list)

На экране появиться список всех ваших работающих/не работающих плагинов.

Пример:

#################### console ##################################

Currently loaded plugins:
name version author file status

[ 1] AES: Informer 0.2 serfreeman1337 aes_informer.am running
[ 2] AES: Experience Editor 0.1 serfreeman1337 aes_exp_editor. running
[ 3] AES: Exp CSTRIKE 0.3 serfreeman1337 aes_exp_cstrike running
[ 4] AES: Bonus System 0.2 serfreeman1337 aes_bonus_syste running
[ 5] AES: Bonus CSTRIKE 0.4 serfreeman1337 aes_bonus_cstri bad load
5 plugins, 5 running

########################################################################

running — плагин запущен.
bad load — плагин не запущен/не работает.

Проверка всех работающих/не работающих модулей на сервере.

Зайдите в панель управления сервером, далее во вкладку «Консоль».
Нажмите кнопку META LIST.(команда в консоли meta list)
На экране появиться список всех ваших работающих/не работающих модулей.

Пример:

Currently loaded plugins: description stat pend file vers src load unload [ 1] SafeNameAndChat RUN — SafeNameAndChat.so v1.1 ini ANY ANY [ 2] VoiceTranscoder RUN — VoiceTranscoder.so v2017RC3 ini ANY ANY [ 3] Reunion RUN — reunion_mm_i386.so v0.1.0.92 ini Start Never [ 4] ReAuthCheck RUN — reauthcheck_mm_i386.so v0.1.6 ini Start Never [ 5] Rechecker RUN — rechecker_mm_i386.so v2.5 ini Chlvl ANY [ 6] ReSemiclip RUN — resemiclip_mm_i386.so v2.3.9 ini Chlvl ANY [ 7] WHBlocker RUN — whblocker_mm_i386.so v1.5.696 ini Chlvl ANY [ 8] AMX Mod X RUN — amxmodx_mm_i386.so v1.9.0.5235 ini Start ANY [ 9] ReAimDetector RUN — reaimdetector_amxx_i386.so v0.2.2 pl8 ANY Never [10] hackdetector RUN — hackdetector_amxx_i386.so v0.15.328.lite pl8 ANY ANY [11] FakeMeta RUN — fakemeta_amxx_i386.so v1.9.0.5235 pl8 ANY ANY [12] MySQL RUN — mysql_amxx_i386.so v1.9.0.5235 pl8 ANY ANY [13] ReAPI RUN — reapi_amxx_i386.so v5.8.0.163-dev pl8 ANY Never [14] CStrike RUN — cstrike_amxx_i386.so v1.9.0.5235 pl8 ANY ANY [15] Engine RUN — engine_amxx_i386.so v1.9.0.5235 pl8 ANY ANY [16] Ham Sandwich RUN — hamsandwich_amxx_i386.so v1.9.0.5235 pl8 ANY ANY [17] CSX RUN — csx_amxx_i386.so v1.9.0.5235 pl8 ANY ANY [18] Fun RUN — fun_amxx_i386.so v1.9.0.5235 pl8 ANY ANY 18 plugins, 18 running

RUN — означает, что модуль запущен и работает.
bad load — означает, что модуль работает не правильно, либо не запушен.

Источник: radhosting.ru