Форум Trainsim

Форум Trainsim (http://www.trainsim.ru/forum/index.php)
-   MSTS - Маршруты (http://www.trainsim.ru/forum/forumdisplay.php?f=19)
-   -   Сигнализация: конфигурация и скрипты (http://www.trainsim.ru/forum/showthread.php?t=13819)

vicente 25.09.2021 13:33

[QUOTE=КЕ;602289]
Какое число было необходимым?[/QUOTE]
7

roman5 25.09.2021 13:44

[QUOTE=vicente;602286]Прграммировать светофоры для этого нужно с [B]С#[/B], а я вообще не знаю его, и в жизни программированием не занимаюсь.
[/QUOTE]
Удобный язык для программирования, еще qt c++ мощная штука. В msts внешнее апи очень урезанное, даже под отладку нормальных возможностей не дали - из скрипта невозможно определить с каким из шейпов идет работа. Приходится извращаться: снимать user1-4 опции у нужных сигналов, чтобы получить уникальный набор [B]future[/B].

Я тут поборол сигналку на БМО 1.8. Покопав далее скрипт distance входных сигналов заметил такое:

[CODE]if ( sig_feature( SIGFEAT_GRADIENT_PLATE ) && !sig_feature( SIGFEAT_NUMBER_PLATE ) ) {
WORK1 = opp_sig_mr ( SIGFN_NORMAL );
if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { opp_ONE_WAY = 1; }
WORK1 = opp_sig_lr ( SIGFN_DISTANCE );
if ( WORK1 ==# SIGASP_RESTRICTING ) { opp_POEZD = 2; } if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { opp_POEZD = 1; }
}

if ( sig_feature( SIGFEAT_GRADIENT_PLATE ) && !sig_feature( SIGFEAT_NUMBER_PLATE ) ) {
if ( ( block_state() ==# BLOCK_OCCUPIED || POEZD !=# 0 ) && opp_POEZD !=# 1 ) { state = SIGASP_STOP_AND_PROCEED; }
if ( opp_ONE_WAY ==# 1 || opp_POEZD ==# 2 ) { state = SIGASP_STOP_AND_PROCEED; }
}[/CODE]

Оказывается для удержания направления перегона используют не только SAP в distance, но и SAP в normal проходных сигналов.

Глянул код голов normal у проходных, нашел это:

[CODE]state = SIGASP_STOP;
if ( sig_feature( SIGFEAT_NUMBER_PLATE ) && POEZD !=# 1 ) {
if ( block_state() !=# BLOCK_CLEAR || POEZD ==# 2 || ONE_WAY ==# 1 ) { state = SIGASP_STOP_AND_PROCEED; }
}[/CODE]
То есть, если сигналы включены, то distance [B]POEZD [/B] = 0 по скрипту и занятые участки будут в normal SAP ставить.

А выше это в коде:

[CODE]WORK1 = next_sig_mr ( SIGFN_NORMAL ); if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { ONE_WAY = 1; }[/CODE]

Обеспечивает удержание sap на головах normal, где участки уже clear.

Направление перегона переключается не в Иванцево, а в Драчеево, то есть с другого конца, по редактору видно, что [B]enable[/B] не дотягивает до входного, его скрипт не срабатывает. Попробовал увеличить в[B]APK_3AB_YGR_YW_DISTANCE[/B] параметр [B]SignalNumClearAhead[/B] до 15. Теперь работает на тестовой сцене.

vicente 25.09.2021 13:51

[QUOTE=КЕ;602289]В смысле - менять исходный код ORTS?
[/QUOTE]
Нет. Исходный код меняют разрабы. Есть там определённая процедура изменения кода. "Открытость" состоит в том, что любой желающий может [B]предложить[/B] изменения в коде, а команда вносит эти изменения в тестовые версии по своему усмотрению. Русификацию, например, делает твой "визави" на форуме Игоря... ну, тот, что в беседу тебя внёс на elvastower.com , ссылку на которую ты мне кинул :D
Речь идёт о замене sigscr.dat на программу на С#.

Кстати, молодёжь, кто знает Шарп? Я вообще в нем ни бум-бум! :o
Может кто-нибудь набрость какой-нибудь скрипт сигнальной головы? Я имею в виду перевод из этого недо-С в С#... Я бы глянул и смекнул: что к чему. Потому что самоучитель я ниасиливаю (стар?), да и времени, если честно - совсем на него нет. Туплю на азах, в общем.
Форма скрипта в с# такова:
[QUOTE]
using System;
using Orts.Simulation.Signalling;

namespace ORTS.Scripting.Script
{ public class MYSIGNALTYPE : CsSignalScript // мой сигнальный тип - название Signal_Head
{
public override void Initialize()
{
// Perform some initializations here, taking into account // that no route information is available at this point
}
public override void Update()
{
// Set the aspect of your signal here depending on route state } public override void HandleSignalMessage(int signalId, string message)
{} } }
[/QUOTE]

roman5 25.09.2021 13:59

[QUOTE=vicente;602294]
Кстати, молодёжь, кто знает Шарп? Я вообще в нем ни бум-бум! :o[/QUOTE]
Да проблема не в языке, а в самом проекте, нужно ведь изучить сорцы OR, прочитать даташиты по их функционалу, что и как подавать в эти переопределяющие методы [B]ovveride[/B]. Сам язык понять можно быстро по ютуб урокам.

Судя по всему вся логика в [B]Update[/B]. А вот [B]HandleSignalMessage[/B] это что не очень понял, то ли для отладки, то ли обмен инфой между сигналами.

vicente 25.09.2021 14:16

Рома, я писал, что не вижу по Иванцево буфера изменения направления. Головы входного "хватают" STOP_AND_PROCEED с выходного и соответственно - противоположное направление. А как в Драчеево это переключается? Там стоит дополнительный служебный маркер?

И, это... спасибо за проделанную работу. Дотошный :D

[size="1"][color="Silver"]Добавлено через 4 минуты[/color][/size]
Источник скачивается на сайте. Если понимаешь язык, можешь разобраться не только с сигналкой, но и с другими интересующими вещами в соответствующих cs файлах. Меня интересует пока только синтаксис

[size="1"][color="Silver"]Добавлено через 11 минут[/color][/size]
[QUOTE=roman5;602295]
Судя по всему вся логика в [B]Update[/B]. А вот [B]HandleSignalMessage[/B] это что не очень понял, то ли для отладки, то ли обмен инфой между сигналами.[/QUOTE]
Если честно, пока (подчёркиваю- пока), вся эта авантюра с С# - довольно спорна. Но, старое поколение уходит, может быть, в скором времени вся логика, заимствованная из MSTS будет переписана. Это не есть хорошо, ИМХО, так как совместимость с MSTS - основоопределяющее условие, которое было заявлено при открытии проекта. Сейчас она (совместимость эта) всё дальше и дальше. Главная причина перехода на С#-скрипты - уаеличение аспектов, которых [S]тупым американцам[/S] кое-кому там не хватает. Снятие информации с предыдущего светофора промелькнуло в одном из постов, но с тех пор по теме - тишина. Синтаксис, как я уже сказал, моя главная проблема, но беглым просмотром sc я узнаю знакомые функции. Пока по сигналам "сзади" - глухо.

roman5 25.09.2021 14:39

[QUOTE=vicente;602296]Головы входного "хватают" STOP_AND_PROCEED с выходного и соответственно - противоположное направление.[/QUOTE]
Не совсем так, выходные вроде тут вообще не участвуют, у них нету в distance SAP. Между входным и выходными стоят служебные маркеры: они выдают res на занятые либо копируют distance с выходного, но там все кроме sap. То есть когда появляется поезд на станции, входной видит res состояние на маркере. И тут делает себе sap:
[CODE]if ( ( block_state() ==# BLOCK_OCCUPIED || POEZD !=# 0 ) && opp_POEZD !=# 1 ) { state = SIGASP_STOP_AND_PROCEED; }
if ( opp_ONE_WAY ==# 1 || opp_POEZD ==# 2 ) { state = SIGASP_STOP_AND_PROCEED; }[/CODE]

При чем тут несколько вариантов, [B]opp_POEZD=0[/B] для станции отправления:
1. Поезд еще на станции [B]POEZD=2[/B] - попадаем в первый if, потом выезжаем за маркер, тут по [B]block_state()[/B] начинает sap удерживаться.
2. На Драчеево стоит маркер около входного встречный.
3. Когда заезжаем за входной, на встречном проходном скрипт делает на normal голове аспект sap, благодаря этому теперь [B]opp_ONE_WAY=1[/B] помогает держать перегон.
В тех случаях, где входной и встречный проходной не рядом стоят, то за счет встречного маркера у входного делается [B]opp_POEZD=2[/B] - состояние res встречного маркера.

Таким образом, [B]opp_ONE_WAY [/B] помогает держать sap на перегоне, если туда заедут по удалению не сколько поездов, переменная будет скинута, как только последний поезд заедет за входной станции прибытия.

[size="1"][color="Silver"]Добавлено через 14 минут[/color][/size]
Немножко скринов еще сделал.

[SPOILER][IMG]https://s211vla.storage.yandex.net/rdisk/aabbde5b669ae2f4481f86b9535ba636316e26da12a8f4ed0088bfc843807432/614f3369/CP0r4W7WBqH1rzBA08nC4dSHB9NBKYWTVvXur3FQYzlWW0ve7GbuUBTO0SFRUT-zO0U0tg0NY2Xy7SutJph6RA==?uid=0&filename=скрин.png&disposition=inline&hash=&limit=0&content_type=image%2Fpng&owner_uid=0&fsize=6158980&hid=e66f946d1c2d88d42353df6bdc6529b8&media_type=image&tknv=v2&etag=aa177c74985ba659ed0bd397b98645f3&rtoken=ikV2VPtqKCcG&force_default=no&ycrid=na-73296d88f8ae215f3a32364f55c8dc10-downloader13f&ts=5ccd2c234ec40&923c7898e5226691c790fcae3ec9f53b&pb=U2FsdGVkX1_NOwEFOQiMFHP9xVzSo1O8LvXkxXfpFvjnAUWIEkYG0i44ayGbHPzldywxYqLCOcrid6BNDMA0s68-yMDKRo03hc2anjgbTaM[/IMG][/SPOILER]

На 1-2 скринах: никого нет, сигналка в обе стороны включена.
На 3: трафик появился, белый на маркере, sap подхватился.
На 4-5 выезд со станции. Переключение маркера на clear2 - перегон свободен за ним.
На 6-7: проходной изначально stop normal, по проезду на sap перешел.

КЕ 25.09.2021 17:09

У всех скрины открываются? А то у меня - нет.

Predator 25.09.2021 17:19

[QUOTE=КЕ;602301]У всех скрины открываются? А то у меня - нет.[/QUOTE]
У меня не открываются.

КЕ 25.09.2021 19:03

Ром, скрины проверь - не открываются!

[size="1"][color="Silver"]Добавлено через 1 час 3 минуты[/color][/size]
[QUOTE=vicente;602296]Синтаксис, как я уже сказал, моя главная проблема, но беглым просмотром sc я узнаю знакомые функции. Пока по сигналам "сзади" - глухо.[/QUOTE]
Сюда бы еще Рому RWM, он тоже вроде программер. Жаль, давно пропал с форумов...

Predator 25.09.2021 19:40

Ребята, а есть ли способ решения задачи, при которой бы сервис игрока или трафика, смог бы выехать за сигнал светофора, после чего сделав реверс в сторону этого же светофора, уже по заранее проложенному пути? Насколько мне известно, это невозможно, так как на светофоре горит красный и как только проезжаешь его, игра заканчивается.

КЕ 25.09.2021 19:45

В MSTS - разгонись, потом КМ в ноль, и реверс назад. Проедешь закрытый сигнал без разбора у начальника депо!:crazy:

Predator 25.09.2021 21:08

А как трафик в этом случае поведёт себя? :)

КЕ 25.09.2021 21:21

Встанет у красного, разумеется.

roman5 25.09.2021 21:55

[QUOTE=КЕ;602301]У всех скрины открываются? А то у меня - нет.[/QUOTE]
Перезалил, хотел с яндекс диск дать ссылки на оригинальные скрины, не пожатые.
[SPOILER]

[IMG]https://i.ibb.co/wd1vyBt/1.png[/IMG]
[IMG]https://i.ibb.co/Nj2gHBV/2.png[/IMG]
[IMG]https://i.ibb.co/JCkPRx2/3.png[/IMG]
[IMG]https://i.ibb.co/vxdDTkk/4.png[/IMG]
[IMG]https://i.ibb.co/vhhfN3G/5.png[/IMG]
[IMG]https://i.ibb.co/r3n7TCm/6.png[/IMG]
[IMG]https://i.ibb.co/Q8kSLFM/7.png[/IMG]

[/SPOILER]

vicente 25.09.2021 22:24

[QUOTE=КЕ;602291] Олег, ты говоришь про это? -[/QUOTE]
Именно


[QUOTE=КЕ;602291]
Нашёл интересное замечание в наших давних сообщениях:
[/QUOTE]
"Как молоды мы были, как молоды мы были..."
Именно так эта функция описана кужувцами в Документации по сигнализациям MSTS . Не я один "сел в лужу" с оппозитами, надо сказать в своё оправдание. Вполне себе уважаемые Буржуи в отношении сигнализаций, тоже не вкуривали этот вопрос, пока знающие люди не разъяснили. На данный момент, совершенно очевидно: как работают функции с префиксом opp_

КЕ 25.09.2021 22:28

[QUOTE=vicente;602316]...Не я один "сел в лужу" с оппозитами...[/QUOTE]
Я тоже там!:rofl:
[QUOTE=vicente;602273]
Мне нужна информация по АЛСН. Маневры на перегон, маневры по станции, потеря кодов в поездном режиме. Когда какие коды. В интернете, что-то, не густо в этом плане...:o[/QUOTE]
Ответили на СЦБист.ком:
[QUOTE]
Зависит от типа АБ.
На числовой кодовой поймает код (любой код, а не только зелёный, значность кода зависит от места нахождения ранее отправленного поезда или числа блок-участков на коротком перегоне)
На АБТЦ не поймает.
На АБТ 80-х годов поймает, 90-х - не поймает, пока не доедет до первой сигнальной установки по удалению.
[/QUOTE]

vicente 26.09.2021 09:45

[QUOTE=P.r.e.d.a.t.o.R;602308]Ребята, а есть ли способ решения задачи, при которой бы сервис игрока или трафика, смог бы выехать за сигнал светофора, после чего сделав реверс в сторону этого же светофора, уже по заранее проложенному пути? Насколько мне известно, это невозможно, так как на светофоре горит красный и как только проезжаешь его, игра заканчивается.[/QUOTE]
Двойную точку разворота на стрелках не пробовал? Так, чтобы первыц реверс был [B]до[/B] последней стрелки до занятого пути?

КЕ 26.09.2021 10:24

Олег, и что это даст? Это маневры, что ли?

[size="1"][color="Silver"]Добавлено через 3 минуты[/color][/size]
Сигнализация не дает белый на маневры?

Predator 26.09.2021 11:25

[QUOTE=КЕ;602324]
Сигнализация не дает белый на маневры?[/QUOTE]
Видимо нет, так как это особенность сигнализации MSTS. Игра не понимает маневровый режим. Все светофоры открываются в поездном режиме.

КЕ 26.09.2021 11:50

Иногда это все-таки удается сделать, но зависит от путевого развития и расстановки самих светофоров.
Если после отцепки лок уходит в тупик, например. Но это надо скрипт сигнализации смотреть.

vicente 26.09.2021 12:23

[QUOTE=КЕ;602324] Олег, и что это даст? Это маневры, что ли?[/QUOTE]
Ну, если я правильно понял "вводную", то - да. Светофор может быть закрыт либо из-за поездной ситуации, либо из-за скрипта (бывает, линк не прописан, неправильная установка светофора - такое тоже бывало, и т.п.).
Что это даст? В Open Rails такой "финт" укоротит блок до точки разворота. Вот и подумал: "чем чёрт не шутит?" :D
[QUOTE=КЕ;602324]
Сигнализация не дает белый на маневры? [/QUOTE]
Надо бы уточнить: какой маршрут, какая версия (вычислить: что за сигналка) и какой светофор. Я так понимаю, речь идёт о входном. Входной и не должен давать маневровый

Predator 26.09.2021 12:50

[QUOTE=P.r.e.d.a.t.o.R;602308]Ребята, а есть ли способ решения задачи, при которой бы сервис игрока или трафика, смог бы выехать за сигнал светофора, после чего сделав реверс в сторону этого же светофора, уже по заранее проложенному пути? Насколько мне известно, это невозможно, так как на светофоре горит красный и как только проезжаешь его, игра заканчивается.[/QUOTE]

[QUOTE=vicente;602323]Двойную точку разворота на стрелках не пробовал? Так, чтобы первыц реверс был [B]до[/B] последней стрелки до занятого пути?[/QUOTE]
Хочу скорректировать свой вопрос более грамотно в понимании задачи:
Сервис игрока отправляется со станции по зелёному сигналу светофора по заранее заданному пути. После чего, заезжает за выходной светофор и останавливается за точкой разворота чуть подальше от неё. Меняю кабину на обратный путь, чтобы проехать этот выходной светофор. Как только проезжаю его, игра заканчивается и появляется сообщение: Вы проехали на красный сигнал светофора. Пробывал разные способы проезда но результат один и тот же. Может дело в скриптах светофора? Что скажете? ;)

КЕ 26.09.2021 13:17

А если проезжать точно до точки разворота?
На этом светофоре есть обратносмотрящая "голова" (не обязательно с видимым огнем), которая почему-то не открывается.
Но чтобы сказать точнее, надо знать маршрут и конкретно это место - что за светофор там стоит.
Какой маршрут и какая сигнализация на нем?
Хотя возможен какой-то сбой в путевой базе данных маршрута - иногда помогала переустановка светофора.

Predator 26.09.2021 13:36

[QUOTE=КЕ;602330]А если проезжать точно до точки разворота?[/QUOTE]
Что я и сделал, без изменений.
[QUOTE=КЕ;602330]Какой маршрут и какая сигнализация на нем?[/QUOTE]
Маршрут Светлогорск-Александровск-Верхнегорск-Лучистая, версии 1
Вымышленный русский маршрут, протяженностью около 180 километров. Маршрут неэлектрифицирован.Тестирую манёвры вблизи станции Иваньковская. Какая сигнализация на маршруте, к сожалению затрудняюсь ответить.
Скрин, неоткрывающегося светофора:[url]https://c.radikal.ru/c37/2109/26/e3ba8bd46f08.png[/url]

vicente 26.09.2021 13:41

Всё равно "не вкурил"! Ты выехал "за выходной", остановился "за точкой разворота" (где? На стрелках? В горловине? Получается : между выходным и входным с противоположной стороны?). И что дальше? Ты меняешь кабину (на противоположную?), едем обратно? Выходной, получается, с другой стороны пути? То есть, если первый, к примеру - четный, во втооом случае, "выходной" - нечетный?
И, ещё раз просим маршрут и версия маршрута!

КЕ 26.09.2021 13:59

Там тимасовская сигналка, поковырянная Бигманом.:D

Predator 26.09.2021 13:59

[QUOTE=vicente;602336] Выходной, получается, с другой стороны пути?
[/QUOTE]
Да, c другой и с этой, ближней стороны, как на скрине, как я предполагаю. Поправьте меня, если что не так. :o
[QUOTE=vicente;602336] едем обратно?[/QUOTE]
Да, едем обратно.
[QUOTE=vicente;602336]
И, ещё раз просим маршрут и версия маршрута![/QUOTE]
Маршрут Светлогорск
Версия 1.0

КЕ 26.09.2021 14:06

Какой-то непонятный выходной - 2-линзовый...
И если происходит "проезд", то точно дело в нем.

vicente 26.09.2021 15:16

Хм... похоже, маневровый NORMAL WR (?) . У него есть одна интересная деталь. А можно скриншот редактора сценариев и на нем указать место, на котором сделан предыдущий скрин и как-то выделить/обозначить PATH этого сервиса. Сразу обозначу подозрение. Если светофор - тот, о котором я говорю и дальше есть противошерстная стрелка не по марщруту - будет красный

КЕ 26.09.2021 15:57

WR? Вроде говорилось про зеленый...

vicente 26.09.2021 17:53

[QUOTE=КЕ;602342]WR? Вроде говорилось про зеленый...[/QUOTE]
Ждём уточнений, короче. ;)

КЕ 26.09.2021 19:18

Там стоит[B] T_Signal_Small_GR.s[/B] - неправильно, это тупиковая станция, должен быть маневровый К-Б.
[I]T_Signal_Small_GR.s[/I] имеет одну голову:
[SPOILER]SCRIPT T_Small_GR

extern float block_state ();
extern float route_set ();
extern float next_sig_lr ();
extern float next_sig_mr ();
extern float def_draw_state ();
extern float state;
extern float draw_state;
extern float enabled;
extern float sig_feature ();
float next_state;

state = 1;
if (enabled && (block_state() == BLOCK_CLEAR))
{
next_state = next_sig_lr (SIGFN_NORMAL);
if ((next_state == 0) || ((next_sig_mr (SIGFN_NORMAL) == 1) && (next_state == 2)))
{ state = 2; }
else
{ state = 7; }
}
draw_state = def_draw_state (state);[/SPOILER]
В этой горловине все - карлики [B]T_Signal_Small_GR[/B]. Но их там не должно быть, дальше движение только маневровое (в тупик или на подъездные пути).
И этот светофор не даст зайти под состав. Он открывается, только если БУ свободен (поэтому вообще непонятно, зачем в его скрипте прописан маневровый аспект, хотя в конфиге геометрических параметров белого огня нет).
И опять как всегда, в логе - ошибки сигнализации.

vicente 26.09.2021 19:59

Я, ароде, тоже вижу на скрине тупики. Но, состав не заметил. Конечно, все светофоры, кроме маневровых у Тимаса будут закрыты на занятый путь.
Возможный вариант решения - сделать маршрут на свободный путь (будет, я так понимаю, красный, но его можно будет проехать - RESTRICTING), оттуда опять - точка разворота, не заезжая за сигнал - ещё одна - под состав.

[size="1"][color="Silver"]Добавлено через 4 минуты[/color][/size]
[SPOILER]
Немного оффтопа в теме по сигнализациям MSTS - "закончу" тему по С# скриптам в Open Rails - два дня штудирую Шарп и источники кодов и ещё кучу всего. Пока, по крайней мере относительно меня - отбой и "обе машины - стоп". Сыро. Разработчики вставляют только тот функционал, который они считают нужным для целей, для которых и переводят сигналку на С#. Большинство функций sigscr.dat , насколько я врубился в это дело, в С# будут недоступны.
Но, Шарп буду продолжать изучать :D
[/SPOILER]

КЕ 26.09.2021 20:05

[QUOTE=vicente;602346]... переводят сигналку на С#. Большинство функций sigscr.dat , насколько я врубился в это дело, в С# будут недоступны.[/QUOTE]
Но тогда смысл?..
_________________
Короче - выкинуть нафиг оттуда эти светофоры, и установить маневровые К-Б.
И выпустить патч.;)

vicente 26.09.2021 20:39

Я уже писал: кое-кому из разрабов не хватает [S]сообразительности... терпения... знаний С/С++ ... желания программить в sigscr.dat[/S] аспектов и ещё, там, разные отмазки были
[SPOILER]
Мы разрабатываем некоторые сценарии сигналов для воссоздания испанских систем сигнализации, и мы обнаружили, что SIGSCR немного ограничивает. (...) Вот некоторые из причин, по которым, по нашему мнению, может быть полезен C #:

*** 8 аспектов MSTS недостаточно для представления всех аспектов сигнала (например, в Испании у нас есть до 16 различных аспектов). Каждый сигнал показывает подмножество общих аспектов, поэтому обходным путем является повторное использование одного и того же аспекта MSTS для разных аспектов. Однако это вызывает проблемы с продвинутыми системами управления поездом, такими как ETCS, которые будут предпринимать разные действия в зависимости от аспекта сигнала. (...)

*** Сигналы трудно отлаживать людям, не знакомым с кодом OR. Использование C # позволяет использовать Console.WriteLine (), что полезно для простой отладки логики.

*** Нет связи между сигналом и последующим. В испанской сигнализации есть одна конкретная ситуация, когда второй сигнал должен быть ограничен до тех пор, пока первый сигнал не будет очищен более 10 секунд, когда эта функция требуется. Я добавил вызов функции SendSignalMessage, который отправит строковое сообщение требуемому сигналу.

*** Работа с глобальными переменными утомительна, потому что их нужно читать и сохранять при каждом обновлении.


*** Некоторые из проблем могут быть решены с помощью существующего интерфейса SIGSCR (например, количество доступных аспектов может быть расширено, как это делается с помощью определений SIGFN_ и SIGSUBT_), но другим потребуется уделить много времени синтаксическому анализатору SIGSCR.
[/SPOILER]

КЕ 26.09.2021 20:55

Ну понятно, там свои запросы. Но [COLOR="Blue"]sigscr.dat[/COLOR] останется?

vicente 26.09.2021 21:31

Да, конечно.
Более того, в С# можно будет писать отдельно-взятую сигнальную голову. Сим будет прежде всего проверять наличие скрипта в С#, если не найдёт - sigscr.dat в папке OpenRails , если и там нет - в корневой папке MSTS . Вот такой, вот, геморрой

КЕ 26.09.2021 21:45

То есть какой-то субобъект можно описать отдельным скриптом на С#, а все остальное в sigscr, так?

roman5 26.09.2021 22:16

[QUOTE=КЕ;602344]
И опять как всегда, в логе - ошибки сигнализации.[/QUOTE]
А речь про какой лог, в скрипте не вижу [B]debug_out2 [/B]функций, сам msts вроде лог не делает. Или это про OR ?

vicente 26.09.2021 22:23

Они говорят о Signal Type. Получается - так. Сначала программа ищет его в С#, причём, компилируется это дело в реальном времени - в процессе запуска игры. Если в скрипте на С# есть ошибки или нет такого скрипта для одноименного типа, заявленного в sigcfg.dat, тогда программа обращается к sigscr.dat .
Мне тоже многое пока непонятно. Как быть с заявленной конфигурацией в sigcfg.dat ? С [S]буржуйскими[/S] дополнительными аспектами тоже не всё так просто. 8 "родных" MSTS -овских аспектов остаются. Они "двигают" поезда AI (трафики), они выводятся на CabSignal дисплей и т.д. То, что они придумали - некий "текстовый" аспект (обзывай, как хочешь) и этими аспектами светофоры обмениваются как сообщениями. Бррр...
Говорю же, ПОКА, повторюсь, ПОКА, функционал разнообразием не блещет, а класс "наследуется" из нового файла source - ещё вопрос или я могу "снимать" нужные мне внешние функции через включение соответствующего совершенно другого *.cs -файла. Если да - можно будет подумать о каких-то отдельных, особых головах в С#. Но, вряд ли, в том виде, в котором оно сейчас. Но, поиграться можно на досуге (пока этого длсуга у меня нет).


Текущее время: 13:58. Часовой пояс GMT +4.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
© 2001-2019, Администраторы и разработчики Клуба Trainsim