Форум 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)

vitro 22.11.2016 15:54

Ну можно не перед каждым, пока добивать не будет) В хвост поезду можно подавать, как бы его обгоняя, связкой с оппозитными головами?

КЕ 22.11.2016 16:20

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

vicente 22.11.2016 16:25

Всё равно не дело это. Обыграть, что мотовоз короче, чем поезд, поставив сигнал с обратного направления, тоже, пока не представляю как. Светофор будет зажигаться метров за 80

vitro 22.11.2016 17:30

[QUOTE=vicente;541479]
(А где маршрут? :D )[/QUOTE]

Маршрут являет собой СТЛ с Бутовкой и ГЗЛ на тоннелях от E69 с дырками на стрелках, с тупо конвертнутыми станциями из ТРС). Мне кажется меня тут за него пристрелят)) Ибо у меня есть разрешение авторов только на куски эстакадных секций, и на ковыряние модели светофора от Кости:). Если интересно, могу создать тему, описать подробнее.

vicente 22.11.2016 18:07

А... понятно. Что-то вроде моего маршрута... Не,не надо, а то загрызут )))
А стрелки дефолтные в туннели есть же...

КЕ 22.11.2016 19:15

[QUOTE=vicente;541545]...Обыграть, что мотовоз короче, чем поезд, поставив сигнал с обратного направления, тоже, пока не представляю как. Светофор будет зажигаться метров за 80[/QUOTE]
Зажигаться, если путь свободен от хвоста состава? Поставить какие-то 2 спецсветофора на заданном расстоянии друг от друга, задний - обратно развёрнутый; определим, что едет грузовой в 3 вагона или мотовоз...
И какой-то отдельный аспект надо передать вперёд по ходу поезда - оппозитными NORMAL-головами, стоящими в каждом светофоре? Тогда код "побежит" вперёд по ходу сервиса; но будут ли оппозиты чётко работать?

vitro 22.11.2016 19:43

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

КЕ 22.11.2016 22:54

Ручного переключения нет (только в РТС есть переключение режима для манёвров), надо в скриптах как-то делать.

vicente 23.11.2016 01:32

[QUOTE=vitro;541576] просто в определенное время включить и выключить. [/QUOTE]
Нет такого. Ни в MSTS ни в ORTS.

Можно попробовать поймать последний сигнал в тупике через [B]dist_multi_sig_хх()[/B]. Проблематично, конечно, но попробуй. Я не знаю: поймает ли сигнал эту функцию на большом расстоянии. Смысл такой: ставишь в тупике вместо SHUNTING особый NORMAL (сначала так попробуй, не факт что сработает, но шансов больше). Запрограммируй его давать аспект, который не используешь во всех режимах на маршруте (RESTRICTING, STOP_AND_PROCEED, CLEAR_1, APPROACH_3, по ситуации твоей), когда блок за ним занят (стоит твоя невидимка). Между ним и концом трэка поставь "для верности" DISTANCE (надеюсь, ты не используешь их, если используешь - другой тип надо ставить, которого нет на пути сервисов до самого конца). Стрелки должны по умолчанию вести в тупик (прямо, то есть).
В скрипте задай
[QUOTE]if (dist_multi_sig_lr (SIGFN_NORMAL, SIGFN_DISTANCE) ==# [наш аспект особый] )
{есть показания}[/QUOTE]
Дальше всё зависит от того насколько далеко сим будет "видеть" путь. По хрестоматии, он должен видеть его по стрелкам до конца и ловить последний DISTANCE. Но, на практике из-за SNCA и множества узлов по пути, может быть сбой. Но, попытайся.

vitro 23.11.2016 01:49

Лол, все использую. Все восемь. И ещё двух не хватает, дистанс тоже использую, как раз они и должны включаться)))

КЕ 23.11.2016 01:56

[QUOTE=vitro;541622]Лол, все использую. Все восемь. И ещё двух не хватает...[/QUOTE]
С защитными участками, что ли?
Если DISTANCE-ов нет, то можно и так
[CODE]if (dist_multi_sig_lr (SIGFN_NORMAL, SIGFN_INFO) ==# [наш аспект особый] )
{есть показания}[/CODE]

vicente 23.11.2016 02:00

[QUOTE=vitro;541622]Лол, все использую. Все восемь. И ещё двух не хватает, дистанс тоже использую, как раз они и должны включаться)))[/QUOTE]
Все восемь на метро? Ммм... Зажигать можно посредством draw_state, на той же голове NORMAL, не прибегая к DISTANCE

vitro 23.11.2016 02:36

Хотя у меня APPROACH_1 используется для зажигания ПС в ручном режиме, или для выдачи кода ОЧ. Концы тупиков как раз осигналены нормалами, постоянно подающими этот аспект. Сейчас попробую воткнуть дистанс и посмотрю, зажжёт ли)

[size="1"][color="Silver"]Добавлено через 3 минуты[/color][/size]
[QUOTE=КЕ;541624]С защитными участками, что ли?[/QUOTE]
[QUOTE=vicente;541625]Все восемь на метро? Ммм... Зажигать можно посредством draw_state, на той же голове NORMAL, не прибегая к DISTANCE[/QUOTE]

Нормалы - коды АРС. Указатель в кабине имеет ячейки: ОЧ 0 40 60 70 80. Если текущая разрешённая скорость больше, чем на следующей РЦ, то светятся две ячейки, с текущей и предупредительной частотой. Вот и получаем:
[CODE] SIGASP_STOP - "0";
SIGASP_STOP_AND_PROCEED - "0" и "40";
SIGASP_RESTRICTING - "40";
SIGASP_APPROACH_1 - "ОЧ";
SIGASP_APPROACH_2 - "40" и "60";
SIGASP_APPROACH_3 - "60";
SIGASP_CLEAR_1 - "70";
SIGASP_CLEAR_2 - "80";[/CODE]

[size="1"][color="Silver"]Добавлено через 9 минут[/color][/size]
В тех доках МСТС говорится, что она может быть только dist_multi_sig_[B]mr[/B]()

[size="1"][color="Silver"]Добавлено через 12 минут[/color][/size]
Пока не работает, немного скринов:
[SPOILER][IMG]https://pp.vk.me/c837122/v837122167/e3c1/rSCdiHtrMDw.jpg[/IMG]
[IMG]https://pp.vk.me/c837122/v837122167/e3ca/wP1Q_meblr8.jpg[/IMG]
[IMG]https://pp.vk.me/c837122/v837122167/e3d3/j-SjE3_uXwI.jpg[/IMG][/SPOILER]
Еду до Алтуфьево в ускоренном режиме, посмотрю, ближе к нему зажгутся, или нет.

[size="1"][color="Silver"]Добавлено через 2 минуты[/color][/size]
(Надо бы дырки у порталов позатыкать)

[size="1"][color="Silver"]Добавлено через 2 минуты[/color][/size]
На Биберево тоже не горят, значит дело в скриптах.
[SPOILER][IMG]https://pp.vk.me/c837122/v837122167/e3dc/5rFT4XFuW8c.jpg[/IMG]
[IMG]https://pp.vk.me/c837122/v837122167/e3e5/JjO24paPzH0.jpg[/IMG][/SPOILER]

[size="1"][color="Silver"]Добавлено через 4 минуты[/color][/size]
А, ну ясен хрен, MOST RESTRICTIVE, а значит навернется на первом стопе.

vicente 23.11.2016 02:52

"-1" поставь

vitro 23.11.2016 02:56

CLEAR_2 будет

[size="1"][color="Silver"]Добавлено через 1 минуту[/color][/size]
Однако, пытаюсь

vicente 23.11.2016 03:08

На последнем NORMAL в тупике показание дай "-1" на занятый блок, на остальных
if (dist_multi_sig_mr (SIGFN_NORMAL, SIGFN_DISTANCE) ==# -1 )
{есть показания}
Ты не будешь этот аспект ничем ловить, он только передаёт режим

[size="1"][color="Silver"]Добавлено через 1 минуту[/color][/size]
И иди "от тупика" дальше. Начни с ближайшей станции, а не за 40 км и отдаляйся с каждым тестом

vitro 23.11.2016 03:16

Все равно не работает. Ничего, что у меня не дистанс, а шунтинг?

vicente 23.11.2016 03:26

Покажи скрипты обоих полностью. Думаю, что шантингами они вообще не занимались. Так что результат непредсказуем

vitro 23.11.2016 03:32

Блин, уже комп вырубил, завтра напишу. И на тестовом роуте поиграюсь, если что, то поменяю типы с дистансом местами. P.S. Светофоры дистансом, потому что они отдельно работают от АРС. Например, если впереди идущий отправился, то как только он освободит две рц-будет уже разрешающее показание. А светофор автоблокировки откроется только когда поезд уедет со следующей станции. Я вроде на заборине упоминал об этом

vicente 23.11.2016 03:41

Ещё вводная. По-моему, ты много от сима хочешь)))

vitro 23.11.2016 11:00

Ну тем и интереснее)) Накрайняк есть контроль енабледом)

vicente 23.11.2016 16:16

"Энэйблить" будут в равной степени как мотовозы, так и поезда с АРС - фэйл, ИМХО.
Надо выделить чем эти два сервиса отличаются. Я тут писал о длине - раз. Ты говорил о пути - два. Чем ещё?
Тестил с ближайшей к тупику станции? И скрипты кинь проходных и тупикового. Может там что подправить надо будет

vitro 23.11.2016 19:17

Сервисы ничем не отличаются, по условиям сценария включаем АБ, захотелось нам. Можем на нормальном поезде ехать, а потом типа у нас АРС накрылась и нам включили АБ

[size="1"][color="Silver"]Добавлено через 3 минуты[/color][/size]
Сам светофор
[CODE]SCRIPT ARS_2AB

extern float block_state();
extern float route_set();
extern float def_draw_state();
extern float state;
extern float draw_state;
extern float enabled;
extern float dist_multi_sig_mr();
float next_state;
float ars_flag;

state = SIGASP_STOP;
next_state = next_sig_lr (SIGFN_DISTANCE);
//ars_flag = next_sig_lr (SIGFN_SHUNTING);
if (dist_multi_sig_mr (SIGFN_NORMAL, SIGFN_SHUNTING) ==# -1)
ars_flag = 1;
if ((block_state() ==# BLOCK_CLEAR && next_state ==# SIGASP_CLEAR_2) || (block_state() ==# BLOCK_CLEAR && next_state ==# SIGASP_RESTRICTING))
{
state = SIGASP_CLEAR_2;
}
if (ars_flag == 0)
draw_state = 2;
else
draw_state = def_draw_state (state);[/CODE]
Нормал в тупике
[CODE]SCRIPT TUPIK
extern float state;
state = -1;[/CODE]
Шантинг
[CODE]SCRIPT ARS_FLAG

extern float def_draw_state();
extern float state;
extern float draw_state;
extern float enabled;
float next_state;

state = SIGASP_APPROACH_1;
//state = next_sig_lr (SIGFN_SHUNTING);
draw_state = def_draw_state (state);[/CODE]

vicente 24.11.2016 03:42

Ну, во-первых
[QUOTE]SCRIPT ARS_2AB

extern float block_state();
extern float route_set();
extern float def_draw_state();
extern float state;
extern float draw_state;
extern float enabled;
extern float dist_multi_sig_mr();
float next_state;
float ars_flag;

state = SIGASP_STOP;
next_state = next_sig_lr (SIGFN_DISTANCE);
//ars_flag = next_sig_lr (SIGFN_SHUNTING);

if (((block_state() ==# BLOCK_CLEAR) && (next_state ==# SIGASP_CLEAR_2)) || ((block_state() ==# BLOCK_CLEAR) && (next_state ==# SIGASP_RESTRICTING)))
{
state = SIGASP_CLEAR_2;
}
draw_state = def_draw_state (state);
if (dist_multi_sig_mr (SIGFN_NORMAL, SIGFN_SHUNTING) ==# -1)
{
draw_state = 2;
}
[/QUOTE]
Так будет правильней

[size="1"][color="Silver"]Добавлено через 5 минут[/color][/size]
Тупиковый
[QUOTE]
extern float block_state();
extern float state;

state = SIGASP_STOP;
if (block_state() !=# BLOCK_CLEAR)
{
state = -1;
}
draw_state = def_draw_state (state);
[/QUOTE]
Ты же даёшь ему "-1" когда "за тупиком" стоит невидимка,так?

[size="1"][color="Silver"]Добавлено через 3 минуты[/color][/size]
Шантинг пофиг какой у него скрипт. Он нужен для того, чтобы дать границу функции [I]dist_multi_sig_mr()[/I], снимать с него показания вряд ли получится

vitro 24.11.2016 10:10

Пока что пофиг, что там в тупике стоит, я пытался просто светофоры зажечь. В принципе, я все таки enabled'ом думаю. Интересно, что у меня с этой АБ получилось так, что на блок участки оно делится не светофором, а границей предыдущей РЦ (предыдущей красной пирамидкой). Вот и можно контролить в светофоре enabled, если нет, то зажигать его и пару-тройку за ним.

[size="1"][color="Silver"]Добавлено через 18 минут[/color][/size]
Где-то вдали у нас в конце обязательно будет тот, до которого путь не дойдёт, и он будет заведомо !enabled. Помимо этого, за ним ничего определяться, и если не использовать SIGASP_STOP, то по нему можно будет отловить конец трека. И уже тогда, если светофор !enabled и контрольная голова не равна нулю (!enabled && next_sig_lr(SIGFN_SHUNTING)), то тогда это точно светофор, начиная с которого надо врубать.

[size="1"][color="Silver"]Добавлено через 1 минуту[/color][/size]
Т.е тогда необходимость в двух-трёх отпадает

vicente 24.11.2016 21:18

enabled() вообще не в тему здесь. Не важно: какой SNCA ты поставишь, ORTS на стрелках тебя "обломает". Я тут подумал : надо DISTANCEами передавать. Один аспект на АРС, остальные -- на показания. Всё равно гореть будет вся линия

vitro 24.11.2016 23:14

Ну почему обломает, если у меня будет готовый маршрут для сервиса?

[size="1"][color="Silver"]Добавлено через 34 минуты[/color][/size]
Вообще, в изолированных условиях enabled работает как раз как надо. Живой пример: вот вам схема прекрасной станции Чертановская. [SPOILER][IMG]https://pp.vk.me/c837122/v837122167/cc80/40dh2gWJ__Y.jpg[/IMG][/SPOILER]
В её границах есть светофор ЧР-551, у которого есть маршрутный указатель с показаниями "1" и "Д". Если мы едем на Чертановскую - горит один. А если мы собираемся проехать за стрелку и встать у знака 8 (за светофор "Д"), то как раз горит Д.
[SPOILER][IMG]https://pp.vk.me/c837122/v837122167/cc92/j6V6yOcGivA.jpg[/IMG]
[IMG]https://pp.vk.me/c837122/v837122167/cc9b/95Qe5lbox0I.jpg[/IMG][/SPOILER]
В мультиплеере (как на скринах выше) это реализовано банальным перекрыванием руками ближайшей к знаку 8 следующей сигнальной точки АРС с INFO-скриптом.
[SPOILER][IMG]https://pp.vk.me/c837122/v837122167/cca4/aZ1Z3GP9EZA.jpg[/IMG][/SPOILER]
В сценариях, как раз благодаря enabled, "Д" включается, если путь не доходит до точки с ИНФО-скриптом, в данном случае из-за реверсивной точки, что и соответствует действительности.

vicente 25.11.2016 00:17

Сделай таблицу аспекты "против" сигалов АРС и АБ

[size="1"][color="Silver"]Добавлено через 2 минуты[/color][/size]
Идея заключается в том, чтобы DISTANCE сделать одним аспектом, а зажигать его через draw_state , привязывая к this_sig_xx(SigFn_NORMAL)

[size="1"][color="Silver"]Добавлено через 4 минуты[/color][/size]
Скажем, он у тебя при АРС погашен STOP, а если следующий NORMAL "-1" [B]или[/B] следующий DISTANCE не STOP, давать другой аспект (например, CLEAR_2) и показание в зависимости от основного NORMAL

[size="1"][color="Silver"]Добавлено через 1 минуту[/color][/size]
Обязательно при этом определяющий светофор в тупике [B]не[/B] привязывать к enabled()

[size="1"][color="Silver"]Добавлено через 4 минуты[/color][/size]
[QUOTE=vitro;541862]
В сценариях, как раз благодаря enabled, "Д" включается, если путь не доходит до точки с ИНФО-скриптом, в данном случае из-за реверсивной точки, что и соответствует действительности.[/QUOTE]
ИМХО, в ОР чем дальше ты от него будешь, тем меньше шансов, что он будет работать, даже если SNCA будет 120. ОР всегда оставит стрелки в непонятном положении для возможности поставить блокировку, там идёт через BLOCK_JN_OBSTRUCTED и enabled() при этом не читается

vitro 25.11.2016 03:20

[QUOTE=vicente;541874]
Идея заключается в том, чтобы DISTANCE сделать одним аспектом, а зажигать его через draw_state , привязывая к this_sig_xx(SigFn_NORMAL)
[/QUOTE]
Именно так я и сделал, если АРС-ный аспект, то синий или красный смотрим по коду АРС.

Тем временем есть результаты первых тестов:
Подъезжаем под точку ожидания, светофор автоблокировки включён (красный он тут потому что первый)
[SPOILER][IMG]https://pp.vk.me/c837123/v837123167/c13e/enyw3F6Koik.jpg[/IMG][/SPOILER]
Когда точка ожидания истекает, маршрут готовится через него и светофор гаснет:
[SPOILER][IMG]https://pp.vk.me/c837123/v837123167/c147/C8T8lhFtUW8.jpg[/IMG][/SPOILER]
Таким образом "элементарная" еденица управления автоблокировкой уже работает, сейчас буду тестить маршруты из нескольких перегонов. :)

[size="1"][color="Silver"]Добавлено через 1 час 31 минуту[/color][/size]
Ихихихи, работает!)

Kaminadan 02.12.2016 00:46

Какая на данный момент сигнализация лучшая? И еще, много ли ресурсов она будет забирать, а то комп хилый, ему подавай что полегче

КЕ 02.12.2016 13:41

Сигнализация комп не грузит, на ФПС (есди говорим про это) никак не повлияет.
А какая лучше - это смотря что именно лучше? Простота установки, или количество моделей, или работа в разных трех симуляторах... Что именно нужно в первую очередь?

Kaminadan 02.12.2016 16:45

[QUOTE]Что именно нужно в первую очередь?[/QUOTE]

Нужно что бы было как можно больше разных типов светофоров, конечно важно что бы сосем уж сложно устанавливать не было

КЕ 02.12.2016 18:23

Много разных в сигнализации АРК.

Kaminadan 02.12.2016 18:26

Надо посмотреть

vicente 29.01.2017 02:07

Опомнился и вспомнил об ApproachControlSettings , для того, чтобы реализовать обгоны скриптом светофора (точки ожидания перестали удовлетворять), и вот очередной сюрприз: в версии х3725 оно уже не фурычит. Светофор действительно закрыт, но когда трафик проследует предыдущий светофор, он открывается вне зависимости от значения "position".

vicente 29.01.2017 22:39

Разобрался. Если стартовать за SignalNumClearAhead, работает задержка в открытии сигнала. Сигнал при этом ничего не блокирует, маршрут сервису готовится, как будто сигнал открыт, просто открытие происходит на расстоянии position и на скорости speed

Forsayth 02.03.2020 05:21

Прошу Вашей помощи в скрипте. При прописании строчки:

[B]if (enabled)
{
if (route_set())
{[/B]

Что бы потушить светофоры встречного направления на однопутном участке, светофор перестал сигнализировать сигналом "один жёлтый мигающий" при открытом входном светофоре, сигнализирующим "два жёлтых огня" или "два жёлтых огня, из них один верхний мигающий" в этом случае предвходная точка сигнализирует "один зелёный огонь". При всех остальных сигналах входного светофора сигнализирует правильно.
Вот сам скрипт:

[B]SCRIPT T_Head_YGR

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;

if (enabled)
{
if (route_set())
{
state = SIGASP_STOP_AND_PROCEED;
if ((enabled || !sig_feature (SIGFEAT_USER1)) && (block_state() ==# BLOCK_CLEAR))
{
next_state = next_sig_lr (SIGFN_NORMAL);
if ((next_state ==# SIGASP_STOP) || ((next_sig_mr (SIGFN_NORMAL) ==# SIGASP_STOP_AND_PROCEED) && (next_state ==# SIGASP_RESTRICTING)))
{
state = SIGASP_RESTRICTING;
}
else if ((next_state ==# SIGASP_STOP_AND_PROCEED) || (next_state ==# SIGASP_RESTRICTING))
{
state = SIGASP_APPROACH_1;
}
else
{
state = SIGASP_CLEAR_2;
}
}
draw_state = def_draw_state (state);
if (state ==# SIGASP_CLEAR_2)
{
if (next_state ==# SIGASP_APPROACH_2)
{
draw_state = 4;
}
else if ((next_state ==# SIGASP_APPROACH_3) || (next_state ==# SIGASP_CLEAR_1))
{
draw_state = 5;
}
}
}
else
{
state = SIGASP_STOP;
if (block_state() ==# BLOCK_JN_OBSTRUCTED)
{
state = SIGASP_STOP_AND_PROCEED;
}
}
} else state = SIGASP_STOP;
draw_state = def_draw_state (state);[/B]

КЕ 08.03.2020 00:29

То есть (route_set()) - чтоб гасить встречные огни?? Это же для линковки по стрелкам для "головы" входного/выходного сигнала из нескольких субобъектов.
Проходные светофоры встречного направления гасятся через (!enabled).
Огни [B]Жм[/B], [B]Ж-Ж[/B], [B]Ж-Жм[/B] на каких аспектах?
И лучше глядя в [B][I]sigcfg[/I][/B] разбираться.
Это точно скрипт проходного?

Forsayth 08.03.2020 06:47

[QUOTE=КЕ;591485]И лучше глядя в [B][I]sigcfg[/I][/B] разбираться.
Это точно скрипт проходного?[/QUOTE]

Вот скрипт [B]sigcfg[/B] проходного светофора:

SignalType ( [B]"T_Head_YGR"[/B]
SignalFnType ( NORMAL )
SignalLightTex ( "T_SignalLight.ace" )
SigFlashDuration ( 1.0 0.5 )
SignalLights ( 4
SignalLight ( 0 "Yellow Light"
Position ( 0 7.475 0.01 )
Radius ( 0.35 )
)
SignalLight ( 1 "Green Light"
Position ( 0 7.175 0.01 )
Radius ( 0.35 )
)
SignalLight ( 2 "Red Light"
Position ( 0 6.875 0.01 )
Radius ( 0.35 )
)
SignalLight ( 3 "No Light"
Position ( 0 -1 0 )
Radius ( 0.01 )
)
)
SignalDrawStates ( 7
SignalDrawState ( 0
"Red"
DrawLights ( 1
DrawLight ( 2 )
)
)
SignalDrawState ( 1
"Yellow"
DrawLights ( 1
DrawLight ( 0 )
)
)
SignalDrawState ( 2
"Green"
DrawLights ( 1
DrawLight ( 1 )
)
)
SignalDrawState ( 3
"White"
DrawLights ( 1
DrawLight ( 2 )
)
)
SignalDrawState ( 4
"Yellow F"
DrawLights ( 1
DrawLight ( 0 SignalFlags ( FLASHING ))
)
)
SignalDrawState ( 5
"Green F"
DrawLights ( 1
DrawLight ( 1 SignalFlags ( FLASHING ))
)
)
SignalDrawState ( 6
"No"
DrawLights ( 1
DrawLight ( 3 )
)
)
)
SignalAspects ( 5
SignalAspect ( STOP "No" SpeedKPH ( 0 ) )
SignalAspect ( STOP_AND_PROCEED "Red" SpeedKPH ( 0 ) )
SignalAspect ( RESTRICTING "White" SpeedKPH ( 20 ) )
SignalAspect ( APPROACH_1 "Yellow" SpeedKPH ( 60 ) )
SignalAspect ( CLEAR_2 "Green" )
)
SignalNumClearAhead ( 3 )
)

КЕ 08.03.2020 21:38

[I][B](route_set())[/B][/I] лучше вообще убрать.

И вообще странно, в секции конфига [B]SignalDrawStates ( [/B]проходному прописан белый огонь, хотя в секции [B]SignalLights ([/B] белого огня нет...:confused:
Попробуем вообще убрать "всё насчёт белого" из скрипта.
Строку
[B]next_state = next_sig_lr (SIGFN_NORMAL);[/B]
перенести в начало скрипта сразу после
[B]if (enabled)
{...[/B]

Вот если так попробовать:

[B]SCRIPT T_Head_YGR
extern float enabled;
extern float block_state ();
extern float next_sig_lr ();
extern float next_sig_mr ();
extern float def_draw_state ();
extern float state;
extern float draw_state;
extern float sig_feature ();
float next_state;

if (enabled)
{ next_state = next_sig_lr (SIGFN_NORMAL);
state = 1;
if ( ( enabled || !sig_feature ( SIGFEAT_USER1 ) ) && ( block_state () == BLOCK_CLEAR ) )
{
if ( ( next_state == 1 ) || ( next_state == 2 ) )
{ state = 3; } /// "Yellow"
else { state = 7; }
}
draw_state = def_draw_state (state);
if ( state == 7)
{
if ( next_state == 4)
{ draw_state = 4; } /// "Yellow F"
else if ( ( next_state == 5 ) || ( next_state == 6 ) )
{ draw_state = 5; } /// "Green F"
}
}
else state = 0;
draw_state = def_draw_state (state);[/B]


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

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