Garry's Mod

Garry's Mod

70 ratings
Metrostroi Dispatcher
   
Award
Favorite
Favorited
Unfavorite
Content Type: Addon
Addon Type: Tool
Addon Tags: Roleplay, Realism
File Size
Posted
Updated
96.182 KB
Mar 5, 2019 @ 1:04am
Dec 11, 2024 @ 3:17am
24 Change Notes ( view )

Subscribe to download
Metrostroi Dispatcher

In 1 collection by Alexell
MSS Test
118 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)
7
Oct 22, 2023 @ 9:55pm
Баг-трекер / Bug-Reports
Alexell
6
Jun 29, 2023 @ 12:18pm
Предложения / Suggestions
Alexell
0
Mar 12, 2024 @ 1:06am
Lua bug
yshnpr
37 Comments
Alexell  [author] Mar 11, 2024 @ 10:42pm 
Поскольку список станций на большинстве карт обычно не меняется, блок-посты заполняются один раз и забываются, поэтому и возможности их удалить в меню нет. Но вы всегда можете удалить их в файле на сервере garrysmod\data\mdispatcher_controlrooms.txt
unfacted Mar 11, 2024 @ 8:08am 
как удалить блок-пост? во вкладке блок-посты для администраторов также отсутствует кнопка
RicoReight Feb 16, 2024 @ 9:44am 
It would be nice to have an English version, so that people who don't understand English very well.
Agent Smith  [author] Nov 29, 2023 @ 10:35am 
Cappu4ino , в ULX есть право ulx disp
другие права находятся в той же категории, что и ulx disp
asdd Nov 29, 2023 @ 2:01am 
Я не могу выдать себе доступ к дцх че делать?
Alexell  [author] Oct 23, 2023 @ 9:40pm 
Поправили еще ночью.
Машинист Пивной Тяги Oct 23, 2023 @ 11:03am 
Аддон сдох, после обновы на серваке ничего нет
Alexell  [author] Jun 29, 2023 @ 7:23pm 
Да, именно так. Все сказано в описании аддона.
BuoYancY_dabl Jun 29, 2023 @ 10:53am 
Ничего себе быстрое реагирование))) То-есть при вводе комманды сгенерируется расписание?
Alexell  [author] Jun 29, 2023 @ 10:51am 
Расписания выдаются вручную. Может выдать ДЦХ, но в их отсутствие игроки могут сами себе взять расписание. Выезжаешь из тупика на станцию, и отправляешь в чат команду !sget