Форум Trainsim

Форум Trainsim (http://www.trainsim.ru/forum/index.php)
-   MSTS - Об игре (http://www.trainsim.ru/forum/forumdisplay.php?f=17)
-   -   Несколько вопросов по МСТС (http://www.trainsim.ru/forum/showthread.php?t=17040)

КЕ 15.05.2015 21:31

Это если в скрипте прописано отсутствие огней на состояние !enabled - при этом светофоры, смотрящие "не по сервису", гаснут.
Обычно делается у проходных, скрипт подправить несложно.

Neo7 15.05.2015 21:34

[QUOTE=КЕ;491652]
Обычно делается у проходных, скрипт подправить несложно.[/QUOTE]
Пример можно скрипта или как делать?

КЕ 15.05.2015 21:42

Вот пример секции скрипта проходного:
[SPOILER]if (enabled)
{ next_N = next_sig_lr (SIGFN_NORMAL);
if (block_state() == BLOCK_CLEAR)
{ if (next_N <= 2 ) state = 4;
else state = 7; }
else state=1;
}
[COLOR="DarkRed"]else state=0;[/COLOR]
draw_state = def_draw_state (state);[/SPOILER]
И соответствующая ему секция в sigcfg:
[SPOILER]SignalType ( "TK_YGR"
SignalFnType ( NORMAL )
SignalLightTex ( "ltex" )
SemaphoreInfo ( 0.7 )
SignalFlags ( SEMAPHORE )
SignalLights ( 3
SignalLight ( 0 "Red Light" Position ( 0.31 4.82 0.4 ) Radius ( 1 ) SignalFlags ( SEMAPHORE_CHANGE ) )
SignalLight ( 1 "Yellow Light" Position ( 0.31 5.40 0.4 ) Radius ( 1 ) SignalFlags ( SEMAPHORE_CHANGE ) )
SignalLight ( 2 "Green Light" Position ( 0.31 5.11 0.4 ) Radius ( 1 ) SignalFlags ( SEMAPHORE_CHANGE ) ) )
SignalDrawStates ( 4
[COLOR="DarkRed"]SignalDrawState ( 0 "No" )[/COLOR]
SignalDrawState ( 1 "Red" DrawLights ( 1 DrawLight ( 0 ) ) SemaphorePos ( 0 ) )
SignalDrawState ( 2 "Yellow" DrawLights ( 1 DrawLight ( 1 ) ) SemaphorePos ( 1 ) )
SignalDrawState ( 3 "Green" DrawLights ( 1 DrawLight ( 2 ) ) SemaphorePos ( 2 ) ) )
SignalAspects ( 4
[COLOR="DarkRed"]SignalAspect ( STOP "No" SpeedKPH ( 0 ) )[/COLOR]
SignalAspect ( STOP_AND_PROCEED "Red" SpeedKPH ( 0 ) )
SignalAspect ( APPROACH_2 "Yellow" SpeedKPH ( 60 ) )
SignalAspect ( CLEAR_2 "Green" ) )
SignalNumClearAhead ( 10 )
)[/SPOILER]
Красным выделены части, гасящие огни.

Neo7 15.05.2015 22:13

Их самому вставлять в sigcfg, сигнала TK_YGR я там не увидел

КЕ 15.05.2015 22:27

[QUOTE=Neo7;491660]Их самому вставлять в sigcfg, сигнала TK_YGR я там не увидел[/QUOTE]
Ну да, это же был пример - TK_YGR из моей сигнализации, а здесь речь о какой, Усовская или Тимасовская, в каком маршруте?

Neo7 15.05.2015 22:31

Киевский Ход

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

[size="1"][color="Silver"]Добавлено через 1 минуту[/color][/size]
[QUOTE=КЕ;491662] TK_YGR из моей сигнализации, [/QUOTE]
Можно назвать любым обозначением сигнал получается?

КЕ 15.05.2015 22:32

Это обозначение должно совпадать с тем, которое указано на светофор в части SignalShapes конфига, и в скрипте.
Выложи [B]sigscr[/B] и [B]sigcfg[/B] из своего маршрута, а то у меня нет его; попробую сделать.

Neo7 15.05.2015 22:37

[COLOR="red"]SCRIPT T_HGD_YGR_Back[/COLOR]

[COLOR="Lime"]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;[/COLOR]
if (enabled)
{ next_N = next_sig_lr (SIGFN_NORMAL);
if (block_state() == BLOCK_CLEAR)
{ if (next_N <= 2 ) state = 4;
else state = 7; }
else state=1;
}
else state=0;
draw_state = def_draw_state (state);

И соответствующая ему секция в sigcfg:
Скрытый текст:
[COLOR="Red"]SignalType ( "T_HGD__YGR"[/COLOR]
SignalFnType ( NORMAL )
SignalLightTex ( "ltex" )
SemaphoreInfo ( 0.7 )
SignalFlags ( SEMAPHORE )
SignalLights ( 3
SignalLight ( 0 "Red Light" Position ( 0.31 4.82 0.4 ) Radius ( 1 ) SignalFlags ( SEMAPHORE_CHANGE ) )
SignalLight ( 1 "Yellow Light" Position ( 0.31 5.40 0.4 ) Radius ( 1 ) SignalFlags ( SEMAPHORE_CHANGE ) )
SignalLight ( 2 "Green Light" Position ( 0.31 5.11 0.4 ) Radius ( 1 ) SignalFlags ( SEMAPHORE_CHANGE ) ) )
SignalDrawStates ( 4
SignalDrawState ( 0 "No" )
SignalDrawState ( 1 "Red" DrawLights ( 1 DrawLight ( 0 ) ) SemaphorePos ( 0 ) )
SignalDrawState ( 2 "Yellow" DrawLights ( 1 DrawLight ( 1 ) ) SemaphorePos ( 1 ) )
SignalDrawState ( 3 "Green" DrawLights ( 1 DrawLight ( 2 ) ) SemaphorePos ( 2 ) ) )
SignalAspects ( 4
SignalAspect ( STOP "No" SpeedKPH ( 0 ) )
SignalAspect ( STOP_AND_PROCEED "Red" SpeedKPH ( 0 ) )
SignalAspect ( APPROACH_2 "Yellow" SpeedKPH ( 60 ) )
SignalAspect ( CLEAR_2 "Green" ) )
SignalNumClearAhead ( 10 )
)

То есть примерно так?

[size="1"][color="Silver"]Добавлено через 2 минуты[/color][/size]
[QUOTE=КЕ;491667]
Выложи [B]sigscr[/B] и [B]sigcfg[/B] из своего маршрута, а то у меня нет его; попробую сделать.[/QUOTE]

Ок, сейчас

КЕ 15.05.2015 22:41

Да, так, надо проверить, должно работать. Но надо исходный скрипт посмотреть.

Neo7 15.05.2015 22:48

он огромный, как мне его выложить?
19000 строк
Файлом бы если как-то

[size="1"][color="Silver"]Добавлено через 4 минуты[/color][/size]
[url]http://www.fayloobmennik.net/4883974[/url]
[url]http://www.fayloobmennik.net/4883977[/url]

КЕ 15.05.2015 22:52

Какой именно проходной светофор надо сделать?

Neo7 15.05.2015 22:56

А все проходные нельзя сделать, только один? Они же все должны погаснуть по развороту автоблокировки в противоположную сторону

КЕ 15.05.2015 23:00

Так они же все по одному и тому же скрипту работают, светофоры-то одинаковые.
ЗЫ: Скачал, посмотрел - [I]T_HGD_YGR_Back[/I] - такого нет в скрипте, может, имелся в виду [B]T_Head_YGR_Back[/B]? Но это для АЛСО по неправильному пути, он без огней, только код в рельсовую цепь выдаёт.

Neo7 15.05.2015 23:12

На правильном пути и на неправильном у них разные названия, судя по программе Mapper

[size="1"][color="Silver"]Добавлено через 3 минуты[/color][/size]
[url]http://s02.radikal.ru/i175/1505/48/158cd113ffc7.png[/url]

[size="1"][color="Silver"]Добавлено через 4 минуты[/color][/size]
T_Head_YGR мне нужен

[size="1"][color="Silver"]Добавлено через 1 минуту[/color][/size]
[QUOTE=КЕ;491676] может, имелся в виду [B]T_Head_YGR_Back[/B]? Но это для АЛСО по неправильному пути, он без огней, только код в рельсовую цепь выдаёт.[/QUOTE]

без Back нужен мне

КЕ 15.05.2015 23:16

Сохрани скрипт в резервной копии, и попробуй у [B]T_Head_YGR[/B] заменить на такое:
[SPOILER]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);[/SPOILER]


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

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