Форум 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 31.10.2016 17:06

[QUOTE=КЕ;539405]1. М-м-дя-я... "Головы" SHUNTING тоже оппозиты не читают, условие [B][I]opp_sig_lr (SIGFN_DISTANCE)[/I][/B] всегда возвращает "0". И в стабильной, и в последней тестовой версиях.
2. Если на станц. пути стоят вагоны, а за вагонами горит белый ( [I]state = 2;[/I]), то при этом на манёврах условие [I][B]if ( next_N == 2 )[/B][/I] не работает, [I][B]next_sig_xx[/B][/I] возвращает ноль (вроде как РЦ зашунтирована колёсами, и коды не проходят:)).:mad:
Где можно посмотреть список внешних переменных для OR?[/QUOTE]

Оппозит ловит только enabled светофор.

По 2.... Чет-ты, кажется, "мудришь" там. Работает.
Как это:[QUOTE]if (enabled && (block_state() !=# BLOCK_CLEAR) && (next_state ># SIGASP_RESTRICTING))
{
state = SIGASP_STOP;
}[/QUOTE]
Так и это:
[QUOTE] if (enabled && (block_state() !=# BLOCK_CLEAR) && (next_state ==# SIGASP_STOP))
{
state = SIGASP_RESTRICTING;
}[/QUOTE]
Моя версия 3651

КЕ 31.10.2016 17:11

[quote]Оппозит ловит только [I]enabled[/I] светофор[/quote] - вообще [I]enabled[/I], или у которого он указан в скрипте?
У меня маневровый Б-С типа SHUNTING, из-за этого и разница.

vicente 31.10.2016 17:14

Всё, что я дал [URL="http://trainsim.ru/forum/showpost.php?p=539239&postcount=282"]здесь[/URL] - работает. Просто [S]добавь воды[/S] подставь и тести :cool:

[size="1"][color="Silver"]Добавлено через 1 минуту[/color][/size]
[QUOTE=КЕ;539415]- вообще [I]enabled[/I], или у которого он указан в скрипте?[/QUOTE] Если у сигнала в скрипте прописана зависимость от оппозитной функции, эта зависимость будет проверяться только если сигнал перед поездом (enabled)

КЕ 31.10.2016 17:28

Подставил, работает! А SNCA у него какой, -1?
Что же, получается, все маневровые Б-С на NORMAL переводить...

vicente 31.10.2016 17:47

Ну, это уже я не знаю )))
Я тебе тогда сразу сказал, что буду делать их NORMAL и сделал. По-другому с манёврами трафика проблемы. Маневровые не идеальны, есть несколько ситуаций, в которых приходится ехать "по приказу" на синий SAP, а также ситуация с занятым путём и красным на выходном. Хотя, с другой стороны, трафик не прицепляется к составу с локомотивом (для этого есть специальная WP), а идёт за ним по Нодам.

[size="1"][color="Silver"]Добавлено через 1 минуту[/color][/size]
Если решишь делать NORMAL-ами, советую ставить "заглушки" - маркеры РЦ (у меня они на точках выходных бэк-фэйсами, но можно и отдельно). Скрипты я дам.

[size="1"][color="Silver"]Добавлено через 9 минут[/color][/size]
[QUOTE=КЕ;539419]А SNCA у него какой, -1?.[/QUOTE]
Да, [B]-1[/B]

КЕ 31.10.2016 17:58

А что за маркеры РЦ, для чего они?

vicente 31.10.2016 18:18

Скрипт РЦ (устанавливается на пути [B]после[/B] всех стрелок, у меня, как я уже сказал, это обратно-смотрящая голова, но можно отдельно делать)
[SPOILER]SCRIPT KRN23_RC_60
extern float block_state ();
extern float next_sig_lr ();
extern float def_draw_state ();
extern float state;
extern float draw_state;
extern float enabled;
extern float sig_feature ();
float next_state;

state = SIGASP_STOP;
next_state = next_sig_lr (SIGFN_NORMAL);
if (enabled && (block_state() ==# BLOCK_CLEAR) && (next_state ==# SIGASP_STOP))
{
state = SIGASP_STOP_AND_PROCEED;
}
else if (enabled && (block_state() !=# BLOCK_CLEAR) && (next_state ==# SIGASP_STOP))
{
state = SIGASP_RESTRICTING;
}
else if (enabled && (block_state() !=# BLOCK_CLEAR) && (next_state ==# SIGASP_STOP_AND_PROCEED))
{
state = SIGASP_RESTRICTING;
}
else if (enabled && (block_state() !=# BLOCK_CLEAR) && (next_state ># SIGASP_RESTRICTING))
{
state = SIGASP_STOP;
}
else if (enabled && (next_state ==# SIGASP_RESTRICTING))
{
state = SIGASP_RESTRICTING;
}
else if (enabled && (block_state() ==# BLOCK_CLEAR) && (next_state ># SIGASP_RESTRICTING))
{
state = next_state;
}
else
{
state = SIGASP_STOP;
}
draw_state = def_draw_state (state);

[/SPOILER]
В принципе, практически то же самое, что я давал, они у меня раньше отдельными светофорами стояли, но, если несколько маневровых, надо было их по-разному делать, я сделал, но потом обнаружилась проблема с приготовлением маршрута, поэтому сегодня он только маркер :)
Маркеров несколько, отличаются только скоростью на SAP в конфиге в зависимости от пути (40 км/ч, 60... 80.... и т.д.)

Сам маневровый [SPOILER]SCRIPT KRN23_WB_k2
extern float block_state ();
extern float route_set ();
extern float next_sig_lr ();
extern float this_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;


next_state = next_sig_lr (SIGFN_NORMAL);
if (route_set () )
{
state = SIGASP_STOP;
if (enabled && (block_state() ==# BLOCK_CLEAR))
{
state = next_state;
}
draw_state = def_draw_state (state);
}
else
{
state = SIGASP_STOP; draw_state = 0;
if (this_sig_lr (SIGFN_NORMAL) ># SIGASP_STOP)
{
draw_state = 2;
}
}
[/SPOILER]
Этих можешь ставить сколько угодно. Они будут работать в связке и каждый отдельно (то есть, можно завести сервис за один/два/три и только они будут работать, остальные будут держать входной 0)
Всех дел :o

[size="1"][color="Silver"]Добавлено через 4 минуты[/color][/size]
Это[QUOTE]if (this_sig_lr (SIGFN_NORMAL) ># SIGASP_STOP)
{
draw_state = 2;
}[/QUOTE]Потому что он линкованый у меня из-за скорости. Я пока их не трогаю, они у меня расставлены на маршруте, но сегодня скорость на SAP можно не устанавливать, делать один, а скорость задавать специальным маркером типа SPEED - новый тип только для ОР

КЕ 31.10.2016 18:19

О, интересно! Что-то вроде было похожее у АРК с скоростями на SAP... Надо попробовать, потестировать вечером.
А, про ноды - если трафик идет "по ним", следующий сигнал с поездным значением отменяет это дело?

vicente 31.10.2016 18:23

Да, отменяет. На Ноды переводят RES и SAP, остальные возвращают.

КЕ 31.10.2016 18:34

Про спид-маркеры читал, даже по-английски немного понял.:) То есть можно после SAP-маневрового поставить это, чтоб заходить на станцию со ск. например, 40 км/ч при закрытом выходном? А МСТС что скажет, не пошлет меня лесом с такими маркерами?:)

[size="1"][color="Silver"]Добавлено через 7 минут[/color][/size]
Тут еще дело в том, что делается скрипт ОР для версии сигналки, уже установленной на маршруте "Павловск". То есть в расстановке светофоров и маркеров все должно оставаться как есть, без изменений. Вот и пытаюсь что-то выжать из этого.:)

vicente 31.10.2016 18:50

Естественно, в МСТС всё нужно ставить. То есть, прописывать в конфиге на МСТС-овском языке. Никаких новых функций там нет. головы надо прописывать как INFO, SuHNT и тому подобное, с "левыми" конфигами и скриптами. А как же иначе?

[size="1"][color="Silver"]Добавлено через 2 минуты[/color][/size]
Если на выходных у тебя есть "лишняя" голова, которую можно развернуть - отлично. Я на моделях Тимаса разворачивал не переставляя светофоры. У него там по 2 линка на главный путь и по 2 по неправильному с АЛСО, вот я по одной и "оттяпал" )))

КЕ 31.10.2016 18:52

У моих есть, но не у всех расставленных. И да, менял тоже, где были вторые головы.
_______________
Пробовал переводить сигналку в ручной режим по Ctrl+F9, но не понял, что же делать с этим... или это если сценарий "застрял"?:)

vicente 31.10.2016 19:01

Что это за Ctrl+F9? 0_0

[size="1"][color="Silver"]Добавлено через 2 минуты[/color][/size]
Может, Alt+F9?

КЕ 31.10.2016 19:26

Перепутал:o, вот так - Ctrl+M.

vicente 01.11.2016 05:43

[URL="http://forum.zaborin.ru/topic.php?forum=7&topic=4&postid=1428607209#1428607209"]Manual Mode[/URL],что ли? Так оно "клинит" весь сценарий! Помни, что [B]ни одна[/B] стрелка в этом режиме не переводится автодиспетчером.

[size="1"][color="Silver"]Добавлено через 1 час 3 минуты[/color][/size]
[IMG][url=http://itmages.ru/image/view/5117512/752d0fc3][img]http://storage3.static.itmages.ru/i/16/1101/h_1477961543_3299901_752d0fc3dd.png[/img][/url][/IMG]
;)

[size="1"][color="Silver"]Добавлено через 49 минут[/color][/size]
На скрине -- маневровый сигнал и "маркер РЦ". Стрелка остаётся "стерильной зоной". Когда состав на стрелке -- маневровый строго STOP, только так автодиспетчер может производить свои операции.


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

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