![]() |
Это если в скрипте прописано отсутствие огней на состояние !enabled - при этом светофоры, смотрящие "не по сервису", гаснут.
Обычно делается у проходных, скрипт подправить несложно. |
[QUOTE=КЕ;491652]
Обычно делается у проходных, скрипт подправить несложно.[/QUOTE] Пример можно скрипта или как делать? |
Вот пример секции скрипта проходного:
[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] Красным выделены части, гасящие огни. |
Их самому вставлять в sigcfg, сигнала TK_YGR я там не увидел
|
[QUOTE=Neo7;491660]Их самому вставлять в sigcfg, сигнала TK_YGR я там не увидел[/QUOTE]
Ну да, это же был пример - TK_YGR из моей сигнализации, а здесь речь о какой, Усовская или Тимасовская, в каком маршруте? |
Киевский Ход
[size="1"][color="Silver"]Добавлено через 1 минуту[/color][/size] И куда вставлять скрипт, в любое место, или в определенное какое? [size="1"][color="Silver"]Добавлено через 1 минуту[/color][/size] [QUOTE=КЕ;491662] TK_YGR из моей сигнализации, [/QUOTE] Можно назвать любым обозначением сигнал получается? |
Это обозначение должно совпадать с тем, которое указано на светофор в части SignalShapes конфига, и в скрипте.
Выложи [B]sigscr[/B] и [B]sigcfg[/B] из своего маршрута, а то у меня нет его; попробую сделать. |
[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] Ок, сейчас |
Да, так, надо проверить, должно работать. Но надо исходный скрипт посмотреть.
|
он огромный, как мне его выложить?
19000 строк Файлом бы если как-то [size="1"][color="Silver"]Добавлено через 4 минуты[/color][/size] [url]http://www.fayloobmennik.net/4883974[/url] [url]http://www.fayloobmennik.net/4883977[/url] |
Какой именно проходной светофор надо сделать?
|
А все проходные нельзя сделать, только один? Они же все должны погаснуть по развороту автоблокировки в противоположную сторону
|
Так они же все по одному и тому же скрипту работают, светофоры-то одинаковые.
ЗЫ: Скачал, посмотрел - [I]T_HGD_YGR_Back[/I] - такого нет в скрипте, может, имелся в виду [B]T_Head_YGR_Back[/B]? Но это для АЛСО по неправильному пути, он без огней, только код в рельсовую цепь выдаёт. |
На правильном пути и на неправильном у них разные названия, судя по программе 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 нужен мне |
Сохрани скрипт в резервной копии, и попробуй у [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