Иконка ресурса

amxx reapi [ACS] Weapon Control System 1.4.0.8

Нет прав для скачивания
Версия Дата выхода Скачиваний Оценка
1.4.0.8 16 0.00 звёзд 0 оценок
1.4.0.7 14 0.00 звёзд 0 оценок
1.4.0 49 0.00 звёзд 0 оценок
Добавлено:
  • Поддержка динамических лимитов TEAM и TOTAL, включена по-умолчанию кваром acs_wcs_dynamic_limits "1". Данный режим при дропе оружия вычитает единицу (-1) из текущих лимитов.
    Код:
    ;# "3 AWP"                "0"    ""  ""        "4"     ""    ""    ""    ""    "" "3" "0"            "weapon_awp"                                                                    ""    ""    ""
    Игроки смогут купить/отобрать/поднять максимум 3 AWP на команду. Если кто-то из игроков команды "выронит" AWP, то любой игрок той же команды сможет купить/отобрать/поднять +1 AWP.
  • Добавлен квар acs_wcs_players_num_mode "1" позволяющий учитывать в лимитах только количество активных игроков (без учета наблюдателей).
  • Добавлен 3-й параметр "#" консольной команды round_end <delay> <id string> #, для сброса счетчика раундов WCS и повторным запуском сценария разминки (для ночных режимов работы без смены карты).
  • Форматирование VIP меню в зависимости от наличия GameCMS и AES Bonus.
  • Добавлена поддержка цветного префикса сообщений в словаре. Например, WCS_PREFIX = ^1[^4Тест^1]
  • Для тех у кого "подгорает"😅 от стандартной стрельбы движка Re/HLDS обновил AccuracyFix до 1.0.7а, у автора модуля с исправленным багом версия убежала до 1.0.8. По факту одно и тоже.
Исправлено:
  • Код автозакрытия меню. Если в начале раунда держать кнопку(-и) W/A/S/D и открыть VIP меню, оно не закрывалось по таймеру.
  • Забыл включить контроль троттлинга сообщений, когда тестировал. Из-за чего при достижении лимитов TEAM или TOTAL, если подойти к ограниченному оружию чат игрока "заваливало" сообщениями о превышении лимита.
  • Формировании строки ошибки. Имеет тип static и перед началом проверки лимитов не очищалась, что иногда приводило к объединению информации о срабатывании "множества" лимитов, хотя по факту всегда срабатывает один.
  • Ошибка с датами, при парсинге срока услуги игрока в GameCMS. Используемая строка "0000-00-00 00:00:00" для обозначения бессрочной услуги в timestamp оказалась не равна int 0:scratch_one-s_head:
  • Ошибка с кваром acs_wcs_notify_mode, забыл подключить...
  • Исправлены прочие незначительные ошибки, произведена оптимизация и стабилизация кода. Перенес свой вариант AutoExecConfig().
Благодарность: @WILL_BE, за все найденные выше ошибки, педантичные замечания, дельные советы и помощь в тестировании плагина :good2:

ВНИМАНИЕ! Требуется ReAPI 5.24+, добавил инклуды в дистрибутив. Файл словаря обновлен!
Исправлены ошибки:
  • Неправильно учитывались лимиты оружия при возрождении игрока (в том числе внешним плагином) с кастомным оружием из предыдущего раунда.
  • При установке любой величины скорости для кастомного оружия игрок мог игнорировать параметры квара mp_freezetime и убегать с точки возрождения раньше других игроков. Спасибо, Dau84.
  • Нравится
Реакции: Dau84
Добавлено:
  • Поддержка любого "внешнего" оружия, с возможностью установки любых ограничений. Название оружия должно начинаться с "ext_"
  • Макрос random_x(...) для возможности генерации случайных элементов в конфигурационном файле, в поле items раздела [ADVANCED TASKS]. Таким образом реализована разминка со случайно выбранным оружием, полный эквивалент всех возможных Random Weapon Warmup. Отображаемое имя пустого элемента оружия задается в словаре параметром WP_NAME_RANDOM_0_EMPTY = Ножах. Чтобы увеличить вероятность выпадения какого-либо оружия в списке, нужно его добавить большее число раз. Пустой элемент ",," не выдает никакого оружия. Думаю макрос можно добавить во все поля, чтобы выдавать случайные бонусы игрокам при событиях убийства на разных картах...
  • Динамический режим закрытия VIP меню.
  • Возможность биндить любое созданное меню оружия на любую клиентскую команду, например, Магазин ANEW на команду /anew или say /anew, тем самым прозрачно перехватывая функционал плагина AES Bonus. Для этого плагин в списке plugins.ini нужно поднять выше AES Bonus.
  • Наконец-то реализована единая "точка входа" для всего используемого на сервере оружия, с единой системой учета его количества и управления на основе заданных сценариев ограничений, с двухуровневым VIP Menu.
Исправлено:
  • Несколько ошибок, редко приводящих к режиму CSDM до смены карты.
  • Исправлен сценарий разминки, квары mp_round_infinite 1 и mp_forcerespawn 1 нужно устанавливать сразу в начале, иначе прилетит событие GAME_COMMENCE и в некоторых случаях нумерация раундов увеличивалась на +1, ломая заданный сценарий.
  • Функция экранирования спецсимволов при запросах к БД GameCMS
  • Режим работы квара acs_wcs_vipmenu_timeout. При положительном (+) значении задает таймаут автозакрытия VIP меню, после начала движения, при отрицательном (-) - таймаут с момента открытия меню игроку. 0 - автозакрытие выключено. Значение по-умолчанию уменьшено до "3". При обновлении плагина не забудьте его исправить.
ВНИМАНИЕ! Обновлен словарь! В прилагаемом примере "разминки на случайном оружие" (Random Weapon Warmup), в конфигурационном файле acs_wcs.ini изменена нумерация таймеров и добавлены новые элементы.
  • Добавлена поддержка типов задач в разделе [ADVANCED LIMITS] конфига acs_wcs.ini в виде флагов: 1 - игрок находится в зоне закупки, 2 - время закупки, определяемое кваром mp_buytime, не истекло. Это нужно чтобы выдавать, например, броню и гранаты 1 раз за раунд, в самом начале, чтобы при воскрешении игрока (у кого стоит этот плагин) не выдавался полный боекомплект. Флаги можно суммировать (0 - всегда, 1 - только в зоне закупки, 2 - только в течение периода времени mp_buytime в начале раунда, 3 - только в зоне закупки и в течение периода времени mp_buytime в начале раунда). В раздел Настройки добавлю
    Код:
    ;$ "Гранаты"        "3"    "m"    ""    "3"    "0"    "" "" "" ""    "+weapon_hegrenade,+weapon_flashbang:2,+weapon_smokegrenade"        ""    ""                                                    ""
  • Добавлено экранирование спецсимволов при формировании SQL-запроса.
  • Забыл подключить квар acs_wcs_log, исправил.
  • Небольшая оптимизация кода для повышения стабильности и предсказуемости работы.
  • Добавил недостающий сценарий лимита, позволяющий равномерно и справедливо распределять ограниченное по количеству оружие между игроками команды, например, AWP. Поле лимита на игрока можно задать в формате "X:Y:Z", где X - ограничение на количество закупок оружия игроком за раунд, Y - количество непрерывных (повторяющихся) закупок, Z - через сколько раундов можно повторить закупку при достижения лимита Y. Указывать доп. параметры Y и Z имеет смысл при X = 0 либо при X < Y, если вы совмещаете условия фильтрации. Если Z не задано, Z = 0 (т.е. ограничение Y действует только в текущем раунде). В разделе Настройка добавлю
    Код:
    ;# "Лимит AWP"    "1"    ""    ""    "4"    ""    ""    ""    ""    "0:1:2"  "3"  "0"    "weapon_awp"    ""    ""    ""
    Означает, что лимит на покупку действует с 4-го раунда, лимит любых AWP на команду - 3 ед., каждый игрок может купить AWP 1 раз, повторно - только через 2 раунда.
  • Добавил поддержку в фильтре по картам, возможность их указывать через запятую, в том числе их префиксы, например "awp_,de_,$".
  • Обновлен файл словаря в связи с расширением функционала.
  • Мелкие косметические изменения кода.
  • Обновлен файл .so модуля. Исправлена ошибка в условии if (0 < EntityIndex <= gpGlobals->maxClients). Да, такое тоже бывает...:pardon:Спасибо, the_hunter:good2:
  • Отвязал от инклудов GameCMS, реализовал получение необходимых плагину данных напрямую из БД. Теперь плагин должен компилироваться без проблем. Добавлены новые квары acs_wcs_gamecms_enable, acs_wcs_gamecms_db_host, acs_wcs_gamecms_db_name, acs_wcs_gamecms_db_user, acs_wcs_gamecms_db_pass. По-умолчанию, интергация с GameCMS отключена.
  • Обновлен словарь, в связи с появлением новых кваров.
  • Произведена небольшая оптимизация кода, с учетом не совсем корректной, на мой взгляд, работы rg_round_end(), что приводило в некоторых случаях к крашам ReGame (ну и сервера в целом) с ошибками вида: CHalfLifeMultiplay::PlayerThink(CBasePlayer*) или UpdateClientData(edict_s const*, int, clientdata_s*). Корректно, в терминах заложенных в ReGame алгоритмов, этот ReAPI-шный натив раунд не завершает. Поэтому легко можно словить событие Respawn всех игроков и краш сервера, если в предыдущем раунде, например, на разминке создавались сотни объектов в ходе ожесточенного противостояния команд.
  • Добавил недостающие инклуды от GameCMS, которые используются для отображения оставшегося срока действия услуги в меню оружия. Теперь должно компилироваться без ошибок.
  • Добавил квар acs_wcs_gamecms_enable, по-умолчанию "0". Если у вас стоит плагин gamecms_api.amxx можете установить его в "1".
Сверху Снизу