Garry's Mod

Garry's Mod

76 ratings
Metrostroi Dispatcher
1
   
Award
Favorite
Favorited
Unfavorite
Content Type: Addon
Addon Type: Tool
Addon Tags: Roleplay, Realism
File Size
Posted
Updated
96.127 KB
Mar 5, 2019 @ 1:04am
Nov 17, 2025 @ 4:36am
26 Change Notes ( view )

Subscribe to download
Metrostroi Dispatcher

In 1 collection by Alexell
MSS Test
126 items
Description
Разработчики: Alexell & Agent Smith
Версия: 4.2
Исходный код: https://github.com/Alexell/metrostroi_dispatcher
Лицензия: MIT

Диспетчерский функционал и расписания для машинистов Metrostroi.

Аддон полностью совместим с GitHub версией Metrostroi.

Команды:
  • !dmenu (или в консоль disp_menu) - вызывает меню диспетчера, доступна игрокам с правом ulx disp, а также любому игроку, которого назначили на пост ДСЦП или ДЦХ
  • !disp - занять пост ДЦХ (также есть в меню)
  • !undisp - освободить пост ДЦХ (также есть в меню)
  • !sget - получить автоматическое расписание
  • !sclear - очистить имеющееся расписание
  • !sauto - вкл/выкл автоматическую перевыдачу расписания после оборота
  • !spass - проехать любой запрещающий сигнал без регистрации нарушения в Metadmin с возможностью открыть ПС и перевести стрелки по маршруту

Возможности меню диспетчера:
  • открывать и закрывать маршруты
  • проехать запрещающий сигнал без регистрации нарушения в Metadmin
  • занять пост ДЦХ, освободить или назначить на пост ДЦХ другого игрока
  • установить интервал движения
  • назначить на пост ДСЦП или снять с поста
  • наблюдать за всеми интервалами в одном месте
  • выдавать расписание игрокам с указанием выдержек и комментария
  • в один клик телепортироваться к пультам на блок-постах
  • администраторы могут также добавлять блок-посты на картах, где они не заполнены (на вкладке "Блок-посты" будет соответствующая кнопка)

Особенности аддона:
  • панели ДЦХ, ДСЦП и расписания скрываются с экрана на клиенте при наличии в руке камеры или консольной командой disp_showpanel 0
  • панели ДЦХ, ДСЦП и расписания не скрываются, когда ДЦХ на посту
  • панель расписания отображается, только когда игрок в кресле машиниста
  • панель интервалов отображается на месте панели расписания, в один момент времени можно включить только одну из них
  • если на посту есть ДЦХ, автоматическое раписание получить не получится
  • расписание автоматически очищается по достижению времени обратного отправления (последняя строка в расписании)
  • блок-посты заполнены только на картах, где есть пульты: gm_metro_mosldl_v1, gm_mus_neoorange_e, gm_metro_jar_imagine_line_v4, gm_jar_pll_redux_v1, gm_metronvl, gm_metro_virus, gm_metro_nekrasovskaya_line_v5, gm_metro_crossline_r199h, gm_metro_kalinin_v2, gm_mus_loopline_e
  • данные блок-постов сохраняются в garrysmod\data\mdispatcher_controlrooms.txt после первого запуска сервера с этим аддоном
  • администраторы так же могут переименовывать или полностью удалять все блок-посты той или иной карты в файле, чтобы затем заполнить их через меню по своему
  • для работы расписаний, на карте должны присутвовать платформы и Metrostroi.StationConfigurations (с совпадающими ID станций), а также треки и сигнализация
  • для корректного просчета расписаний, от первой до последней станции должен идти единый трек
  • на картах ПЛЛ и НВЛ сделано разделение линий, т.е. станции на второй линии будут иметь немного другую нумерацию, это необходимо для корректной работы расписаний
  • из-за особенностей карты gm_mus_loopline_e, расписания для нее недоступны

Список хуков:
  • MDispatcher.TookPost (ник игрока) - выполняется, когда игрок заступил на пост ДЦХ
  • MDispatcher.FreedPost (ник игрока) - выполняется, когда игрок покинул пост ДЦХ
  • MDispatcher.SetInt (ник игрока, интервал) - выполняется, когда диспетчер изменил интервал
  • MDispatcher.DSCPSet (сообщение) - выполняется при назначении на пост ДСЦП
  • MDispatcher.DSCPUnset (сообщение) - выполняется при снятии с поста ДСЦП

Хуки можно использовать для вывода событий куда-либо, например на ваш Discord сервер.
Примеры использования:
hook.Add("MDispatcher.SetInt","SetInterval",function(ply,int) local msg = "Диспетчер "..ply.." установил интервал движения "..int -- далее ваш код для отправки msg в Дискорд end)
hook.Add("MDispatcher.DSCPSet","SetDSCP",function(msg) -- далее ваш код для отправки msg в Дискорд end)

При необходимости, вы также можете в ваших скриптах делать условия с использованием глобальной переменной MDispatcher.ActiveDispatcher, которая принимает значение true, если на посту ДЦХ есть игрок или false, если нет.

Необходимые аддоны:
  • Metrostroi
  • ULX
  • ULib
Popular Discussions View All (3)
16
May 24, 2025 @ 3:06pm
Баг-трекер / Bug-Reports
Alexell
6
Jun 29, 2023 @ 12:18pm
Предложения / Suggestions
Alexell
0
Jan 9 @ 6:46am
Создание блок-постов
_FROLL1Y_
45 Comments
Romeo Jan 17 @ 2:20am 
У меня не показывает некоторые светофоры и маршруты что делать
Летов's fan Jan 5 @ 8:42am 
А в одиночной игре работает?
Alexell  [author] Nov 16, 2025 @ 4:00pm 
Конфликт на пустом месте там по идее не может случиться, т.к. у нашего аддона своя глобальная таблица, что на сервере, что на клиенте. Разве что какой-то другой аддон намеренно вмешивается в эту таблицу с какой-то целью или заменяет какой-то файл нашего аддона, но он использует старую его версию, из-за чего часть функционала может ломаться.
МетроГолденМайер Nov 16, 2025 @ 12:06am 
В том и дело, что я всю линию проезжаю в обратную сторону и его не видно) в качестве лайфхака я скринил его из хвостовой кабины и сохранял, потом возвращался в головную кабину и ехал по скриншоту)
Думаю, что с каким-то аддоном конфликтует. Подписался на другую коллекцию, с ней не заметил такого бага, всё отлично работает. Но спасибо за ответ
Alexell  [author] Nov 15, 2025 @ 7:52am 
МетроГолденМайер, не пропадать оно не может, вы ведь достигли конца маршрута. Но этот момент само собой мы учли, после смены кабины расписания сначала не будет, но когда из тупика заедете на станцию и остановитесь, оно автоматически сгенерируется.
МетроГолденМайер Nov 15, 2025 @ 2:35am 
Приветствую. Заметил следующую проблему с расписаниями - при смене кабины после оборота оно "пропадает". Его видно только из одной кабины, с которой управлял ранее. Это как-то фиксится?
Alexell  [author] Sep 4, 2025 @ 3:41pm 
Здравствуйте. Нет, такой возможности нет, но думаю сделать такую опцию я смогу, но позже, в ближайшее время мне не до этого.
Transportniy_fanat Sep 2, 2025 @ 12:43pm 
Здраствуйте, подскажите пожалуйста возможно ли как-то установить свой интервал по умолчанию? (Без настроек он 2:00) а надо например 10:00. Возможно ли данную вещь сделать?
Alexell  [author] Mar 11, 2024 @ 10:42pm 
Поскольку список станций на большинстве карт обычно не меняется, блок-посты заполняются один раз и забываются, поэтому и возможности их удалить в меню нет. Но вы всегда можете удалить их в файле на сервере garrysmod\data\mdispatcher_controlrooms.txt
unfacted Mar 11, 2024 @ 8:08am 
как удалить блок-пост? во вкладке блок-посты для администраторов также отсутствует кнопка