Сегодня поговорим о маркерах группы Signal Open Message (SOM).
Это самые простые по функционалу маркеры, их задача - просто делать светофорам запрос на открывание. И все. Если светофор по каким-либо причинам не открылся, запрос бесследно теряется.
В данный момент имеется 3 маркера группы SOM - "Время", "Линк" и "Квик-драйв". Отличия заключаются в том, при каком событии маркер сделает запрос.
Маркер "Время". Сгенерирует указанное количество запросов, когда истечет время, указанное в команде. Маркер устанавливается в любом месте перед светофором, который необходимо открыть. Стрелка линка должна быть направлена в сторону этого светофора. Рекомендую устанавливать маркер так, чтобы его линк был максимально близко к этому светофору и, если на этом пути будет находиться состав, что чтобы линк не оказался под ним. Далее надо ввести команду (или команды). Это делается в окошке вкладки свойств. Для того, чтобы открыть вкладку свойств, необходимо дважды кликнуть по маркеру. Команда состоит из времени запроса (или таймера), количества запросов и атрибутов. Если надо отослать запрос в указанное время, то используется формат написания, включающий двоеточия: 00:25, 13:41. Если надо, чтобы запрос был отослан спустя какое-то время после активации команды, то просто указывается число: 10, 125. При такой записи маркер отсчитает это время в секундах и выполнит запрос. Количество запросов - это число 1, 2 или 3. Соответствуют однократному, двухкратному или трехкратному нажатию клавиши ТАВ.
Атрибутов в версии с 240319.0.10.1b и выше - два. Первый атрибут - это слово tab, если его вписать в команду, то маркер позволит игроку самостоятельно делать запросы, нажимая кнопку ТАВ. Если этого атрибута нет - маркер заблокирует запросы игрока, тем самым запретит открыть светофор, если это нежелательно по сюжету сценария. Второй атрибут - буква "w" и число (например: "w40"). Этот атрибут изменит время удержания маневрового огня открытым с дефолтных 120 секунд на указанное в атрибуте (для "w40" это будет 40 секунд).
Примеры команд:
"10:25:15-2-tab" - маркер отошлет двойной таб в 10 часов 25 минут и двенадцать секунд игрового времени, если игрок сделает запрос раньше - маркер его пропустит;
"13:25-1" - маркер отошлет одинарный таб в 13 минут и двенадцать секунд от полуночи игрового времени, если игрок сделает запрос раньше - маркер его перехватит;
"45-1" - маркер отошлет одинарный таб спустя сорок пять секунд от момента активации команды, если игрок сделает запрос раньше - маркер его перехватит;
"7:14:00-1, 10-2-w240" - маркер отошлет одинарный таб в 7 часов 14 минут игрового времени, после чего, через десять секунд - отошлет двойной запрос. Все попытки игрока вручную открыть светофор будут заблокированы. Светофор будет открыт в маневровом режиме не 120 секунд, а 240.
Команд может быть любое количество. Разделяются команды запятыми, пробелы и регистр не играют роли. Если после установки в маркер не было вписано ни одной команды, он отключится. Также отключаются маркеры, выполнившие все предписанные команды, запросы от игрока таким маркером не перехватываются.
Маркер "Линк". Сгенерирует указанное количество запросов линком 0, когда через линк 1 проследует состав. Линк 0 устанавливается согласно рекомендациям для маркера "Время", линк 1 - на пути ожидаемого следования состава. Команда состоит из символа, указывающего, голову или хвост состава контролировать, количество запросов и атрибут. Символ - это латинская буква "E" или "S". E указывает, что отслеживать надо конец проезда составом через линк 1. "S" - начало. Можно символ не указывать - тогда по умолчанию будет отслеживаться конец проезда. Количество запросов - число 1, 2 или 3, все как для маркера "Время". Атрибут - слово "tab", работает так же, как для маркера "Время".
Примеры команд:
"S-1" - одиночный запрос будет отправлен в момент, когда состав начнет пересекать линк 1, если игрок сделает запрос раньше - маркер его перехватит;
"E-2-tab" - маркер отошлет двойной таб в момент, когда состав закончит пересекать линк 1, если игрок сделает запрос раньше - маркер его пропустит;
"2-tab, S-1" - маркер отошлет двойной таб в момент, когда состав закончит пересекать линк 1, если игрок сделает запрос раньше - маркер его пропустит; после этого маркер отошлет одинарный запрос в момент начала пересечения линка 1, все запросы от игрока будут перехвачены.
Как и для маркера "Время", количество команд не ограничено, команды пишутся через запятую, пробелы и регистр не имеют значения. После выполнения заданной программы маркеры "Линк" перестают перехватывать запросы игрока.
Маркер "Квик драйв". Предназначен для использования в сценариях квик драйва. В настройке не нуждается. Устанавливается в местах предполагаемого движения игрока или составов AI. Если такой маркер обнаруживает состав игрока, то спустя 5...40 сек он автоматически отошлет запрос на поездной режим (время ожидания определяется случайно). Если же перед светофором состав под управлением AI, маркер отошлет запрос при приближении состава на определенное расстояние, в зависимости от скорости движения.
Использование маркера "Квик драйв" на этом не ограничивается, его можно использовать и в других сценариях, в частности, если игроку в начале сценария необходимо открыть светофор в поездном режиме, то можно установить маркер "Время" с командой "время-1" (где время - требуемая задержка), а можно поставить маркер "Квик драйв" без каких-либо настроек.
Также все маркеры группы SOM имеют отладочные команды. Это команды запуска системы ведения логфайлов. Если требуется отследить выполнение команды маркером или светофором, которому отсылаются запросы, в корневой папке игры надо создать папку Log, а в окошке вкладки свойств вписать требуемую команду:
"Log_m" - команда маркеру вести лог-файл;
"Log_s" - команда светофору вести лог-файл;
"info" - команда маркеру выводить отладочные сообщения о происходящих событиях;
"name-имя" - присвоить маркеру указанное "имя".
Имя маркеру задается для облегчения определения именно его логфайла, в случае, если логи ведут несколько маркеров. Если имя не указать, маркер сгенерирует себе имя автоматически.
Примеры использования отладочных команд:
"log_m" - маркер создаст в папке Log логфайл со своим автоматически сгенерированным именем (например, SOMQD-'0000593'.txt)
"log_s, log_m" - маркер создаст в папке Log логфайл со своим автоматически сгенерированным именем (например, SOMQD-'0000593'.txt); также будет отдана команда на ведение логфайла светофором, управляемым этим маркером;
"log_m, name-marker1" - маркер создаст в папке Log логфайл с указанным именем (например, SOML-'marker1'.txt).
Команды отладки вписываются в любой последовательности, разделяются запятыми. Выполнятся при запуске сценария, независимо от порядка написания. Регистр и наличие пробелов не имеют значения. Если папки Log нет, система ведения логфайлов не активируется.
После ввода команд требуется сохранять сценарий. Почему-то редактор не учитывает ввод данных в окошко вкладки свойств изменениями, которые надо сохранять, поэтому, если из всех действий в редакторе были лишь правки команд маркерам, эти правки могут не сохраниться. В таком случае, помимо редактирования команд, достаточно передвинуть сам маркер, чтобы редактор "увидел" изменения и предложил их сохранить.