![]() |
[QUOTE=Forsayth;596069] Думаю, что проблема в самом файле sigcfs.dat
Хотя не уверен.[/QUOTE] Думаю, sigcfs.dat ни при чем. Надо в шеёпе самом направление света править. |
Естественно там ничего не понять. Смотрю сам шейп файл, там практически 0 и 1. Что и где поменять нужно, не понять. :confused:
|
Всё. Я - спать!
Кое что нашёл. Пока оставлю это здесь [QUOTE]В TSRE5 вы можете переворачивать (переворачивать) сигналы (размещая) вместе с формой, если вы установили крючок на «Отразить фигуру» слева в окне Object :, если нет, вы перевернете только красную пирамиду ... Есть разница между MSTSRE и TSRE5 размещением сигналов: MSTS: если вы повернете форму сигнала более чем на 180 градусов, красная пирамида автоматически перевернется в другом направлении дорожки. TSRE5: вы можете вращать и перемещать форму сигнала в любом направлении, которое вам нравится (с помощью «R», затем Numpad или мыши), красная пирамида остается в направлении размещения. Чтобы повернуть красную пирамиду, вы должны выбрать Shae или красную пирамиду и использовать функцию FLIP в меню «Объект» слева (с или без выбора формы отражения). [/QUOTE] |
Проверил. Разворачивается только в TRSEE, когда заходишь снова в стандартный редактор, все возвращается к исходной проблемы.
[size="1"][color="Silver"]Добавлено через 1 час 8 минут[/color][/size] Проблема в не развороте линзы, может быть, в том, что линза привязана к самому маркеру, а не к объекту. Поэтому, как ни крути объекты, а линза будет все равно на одном месте. |
Странно , что [URL="http://www.trainsim.ru/forum/showpost.php?p=596061&postcount=548"]здесь[/URL], ты говоришь, что вторая линза в ту же сторону смотрит. Линза - это конфиг - 100%. Как доберусь до компьютера - сам попробую back-facing "прикрутить". На USA2 они же смотрят в другую сторону. А там - по тому же принципу сделано.
|
Перебрал весь шейп. Разворачивал и возвращал в исходную позицию. Кроме изменения координат модели, больше ничего не меняется. Линза огня стоит мертво в одну сторону.
[size="1"][color="Silver"]Добавлено через 1 час 19 минут[/color][/size] В файле шейп. Есть строчки: sort_vectors ( 0 ) colours ( 0 ) matrices ( 1 matrix Signal ( 1 0 0 0 1 0 0 0 1 0 0 1 ) ) Где matrix Signal отвечает за положение линзы. Как не менял цифры, свет линзы будет растягиватся вдоль и в поперек, пропадать. Ни ни как не развернется. Скорей всего нужно делать новую голову и подстраивать положение линзы под разворот маркера. |
Единственное, что я нашёл у буржуев, это то, что [B]чтобы линза повернулась, надо развернуть оси относительно объекта SIGNAL[/B].
Честно говоря, я не очень себе это представляю. Сигнал с линзами "против шерсти" маркера я никогда не делал у себя. |
В их сигнализации, открыв шейп. Увидел, что светофор сделан, как два объекта, которые с помощью опций делает его с сигнальной головой в разные стороны. Выбираешь одну опцию: Head1 - появляться одна голова, нажимаешь Head1 в другой вкладке - появляется голова противоположного направления. И эти все опции прописаный в файлах sigcfg и sigscr.
Так, что не получится ни как развернуть линзу. Нужно новый объект делать. |
Да, похоже на то...
У меня множество двусторонних светофоров, но без огней. Поднял и увеличил линзу на одном из них, покрасил её красным - оказалось - то же самое: смотрит в ту же сторону. [IMG]https://i.ibb.co/tmzndkF/train-2020-10-10-00-54-11-11.png[/IMG] |
В одном из заграничных маршрутов есть трех-крылый семафор.
[img]https://a.radikal.ru/a13/2010/23/5fc6150f3069t.jpg[/img] В сигнализации СССР подобные семафоры использовались для указания направления при многопутном участке: При наличии трёх и более направлений применяются трёхкрылые семафоры ... Третье крыло сигнализирует также, как и второе крыло, желтым огнем. Есть ли возможность поднять одновременно три крыла семафора? Используя, вот этот скрипт: [B]sigcfg.dat[/B] SignalType ( "[B]T_Semaphore_GR_X_X[/B]" SignalFnType ( NORMAL ) SignalLightTex ( "ltex" ) SemaphoreInfo ( 1 ) SignalFlags ( SEMAPHORE ) SignalLights ( 2 SignalLight ( 0 "Red Light" Position ( -0.367 0 -0.04 ) Radius ( 0.1 ) SignalFlags ( SEMAPHORE_CHANGE ) ) SignalLight ( 1 "Green Light" Position ( -0.367 0 -0.04 ) Radius ( 0.1 ) SignalFlags ( SEMAPHORE_CHANGE ) ) ) SignalDrawStates ( 2 SignalDrawState ( 0 "Stop" DrawLights ( 1 DrawLight ( 0 ) ) SemaphorePos ( 0 ) ) SignalDrawState ( 1 "Green" DrawLights ( 1 DrawLight ( 1 ) ) SemaphorePos ( 2 ) ) ) SignalAspects ( 2 SignalAspect ( STOP_AND_PROCEED "Stop" SpeedKPH ( 0 ) ) SignalAspect ( CLEAR_1 "Green" ) ) SignalNumClearAhead ( 1 ) ) SignalType ( "[B]T_Semaphore_GX_Y_X[/B]" SignalFnType ( NORMAL ) SignalLightTex ( "ltex" ) SemaphoreInfo ( 1 ) SignalFlags ( SEMAPHORE ) SignalLights ( 3 SignalLight ( 0 "No Light" Position ( 0 0 0 ) Radius ( 0.001 ) SignalFlags ( SEMAPHORE_CHANGE ) ) SignalLight ( 1 "AmberF Light" Position ( -0.367 0 -0.04 ) Radius ( 0.1 ) SignalFlags ( SEMAPHORE_CHANGE ) ) SignalLight ( 2 "Green Light" Position ( -0.367 0 -0.04 ) Radius ( 0.1 ) SignalFlags ( SEMAPHORE_CHANGE ) ) ) SignalDrawStates ( 2 SignalDrawState ( 0 "No Light" DrawLights ( 1 DrawLight ( 0 ) ) SemaphorePos ( 0 ) ) SignalDrawState ( 1 "YellowGreen" DrawLights ( 2 DrawLight ( 1 ) DrawLight ( 2 ) ) SemaphorePos ( 2 ) ) ) SignalAspects ( 2 SignalAspect ( STOP "No Light" ) SignalAspect ( APPROACH_1 "YellowGreen" SpeedKPH ( 40 ) ) ) SignalNumClearAhead ( 3 ) ) SignalType ( "[B]T_Semaphore_GX_Y_Y[/B]" SignalFnType ( INFO ) SignalLightTex ( "ltex" ) SemaphoreInfo ( 1 ) SignalFlags ( SEMAPHORE ) SignalLights ( 4 SignalLight ( 0 "No Light" Position ( 0 0 0 ) Radius ( 0.001 ) SignalFlags ( SEMAPHORE_CHANGE ) ) SignalLight ( 1 "Amber Light" Position ( -0.367 0 -0.04 ) Radius ( 0.1 ) SignalFlags ( SEMAPHORE_CHANGE ) ) SignalLight ( 2 "AmberF Light" Position ( -0.367 0 -0.04 ) Radius ( 0.1 ) SignalFlags ( SEMAPHORE_CHANGE ) ) SignalLight ( 3 "Green Light" Position ( -0.367 0 -0.04 ) Radius ( 0.1 ) SignalFlags ( SEMAPHORE_CHANGE ) ) ) SignalDrawStates ( 2 SignalDrawState ( 0 "No Light" DrawLights ( 1 DrawLight ( 0 ) ) SemaphorePos ( 0 ) ) SignalDrawState ( 1 "YellowYellow" DrawLights ( 3 DrawLight ( 3 ) DrawLight ( 2 ) DrawLight ( 1 ) ) SemaphorePos ( 2 ) ) ) SignalAspects ( 2 SignalAspect ( STOP "No Light" ) SignalAspect ( APPROACH_1 "YellowYellow" SpeedKPH ( 40 ) ) ) SignalNumClearAhead ( 5 ) ) SignalShape ( "LHUQ3abs.s" "Выходной Семафор 3 Крыла" SignalSubObjs ( 3 SignalSubObj ( 0 "HEAD1" "Одно Крыло-Главный Путь" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "[B]T_Semaphore_GR_X_X[/B]" ) ) SignalSubObj ( 1 "HEAD2" "Два Крыла-Ответление На Боковой Путь" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK OPTIONAL DEFAULT ) SigSubSType ( "[B]T_Semaphore_GX_Y_Y[/B]" ) ) SignalSubObj ( 2 "HEAD3" "Три Крыла-Ответление На Боковой Путь" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK OPTIONAL DEFAULT ) SigSubSType ( "[B]T_Semaphore_GX_Y_Y[/B]" ) ) ) ) [B]sigscr.dat[/B] [B]SCRIPT T_Semaphore_GR_X_X[/B] 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 = SIGASP_STOP_AND_PROCEED; if (enabled && (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_STOP_AND_PROCEED))) { state = SIGASP_CLEAR_1; } else { state = SIGASP_CLEAR_1; } } draw_state = def_draw_state (state); [B]SCRIPT T_Semaphore_GX_Y_X[/B] 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 (route_set()) { state = SIGASP_STOP_AND_PROCEED; if (enabled && (block_state() ==# BLOCK_CLEAR)) { next_state = next_sig_lr (SIGFN_NORMAL); if ((next_state ==# SIGASP_STOP_AND_PROCEED) || ((next_sig_mr (SIGFN_NORMAL) ==# SIGASP_STOP_AND_PROCEED) && (next_state ==# SIGASP_STOP_AND_PROCEED))) { state = SIGASP_STOP_AND_PROCEED; } else { state = SIGASP_APPROACH_1; } } draw_state = def_draw_state (state); if ((state >=# SIGASP_APPROACH_1) && (next_state ># SIGASP_STOP_AND_PROCEED)) { draw_state = 1; } else if (next_state ==# SIGASP_STOP_AND_PROCEED) { draw_state = 1; } } else { state = SIGASP_STOP_AND_PROCEED; if (block_state() ==# BLOCK_JN_OBSTRUCTED) { state = SIGASP_STOP_AND_PROCEED; } draw_state = def_draw_state (state); } [B]SCRIPT T_Semaphore_GX_Y_Y[/B] 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 (route_set()) { state = SIGASP_STOP_AND_PROCEED; if (enabled && (block_state() ==# BLOCK_CLEAR)) { next_state = next_sig_lr (SIGFN_NORMAL); if ((next_state ==# SIGASP_STOP_AND_PROCEED) || ((next_sig_mr (SIGFN_NORMAL) ==# SIGASP_STOP_AND_PROCEED) && (next_state ==# SIGASP_STOP_AND_PROCEED))) { state = SIGASP_STOP_AND_PROCEED; } else { state = SIGASP_APPROACH_1; } } draw_state = def_draw_state (state); if ((state >=# SIGASP_APPROACH_1) && (next_state ># SIGASP_STOP_AND_PROCEED)) { draw_state = 1; } else if (next_state ==# SIGASP_STOP_AND_PROCEED) { draw_state = 1; } } else { state = SIGASP_STOP_AND_PROCEED; if (block_state() ==# BLOCK_JN_OBSTRUCTED) { state = SIGASP_STOP_AND_PROCEED; } draw_state = def_draw_state (state); } У меня следующая ситуация: При указании главного пути: Семафор сигнализирует правильно: [img]https://c.radikal.ru/c17/2010/67/c4953470c24ct.jpg[/img] При указании бокового направления и два крыла. Семафор сигнализирует правильно. [img]https://d.radikal.ru/d14/2010/e2/ad0b96eb7ad8t.jpg[/img] А при использовании третьего направления,почему-то не подымается, среднее крыло. [img]https://c.radikal.ru/c31/2010/0b/7ad859710382t.jpg[/img] Возможно нужно прописать какой-то дополнительный параметр? |
Маршрут не по линку - вот и не поднимается.
|
Там просто не видно третьего пути)
Получается, что скрипт полностью правильный? |
Ну, если не работает так, как хочешь - значит нужно переделывать.
[size="1"][color="Silver"]Добавлено через 39 минут[/color][/size] Логика мне видится примерно твк: Верхнее крыло работает на "закрыто-открыто". Поэтому линковка там - ни к чему. Остальные подобъекты - линкованые. Причем, если одно из них работает по своему линку, другому нужно прописать ещё зависимость от показаний "подсобрата" |
[QUOTE=vicente;596352]Причем, если одно из них работает по своему линку, другому нужно прописать ещё зависимость от показаний "подсобрата"[/QUOTE]
Вот поэтому не могу понять, что именно нужно прописать в зависимость "подсобрата". В сигналке я - аматор. И пытаюсь понять исходя из созданных сигнализаций или советов. |
Открытое показание нижнего крыла сделай не APPROACH_1, a CLEAR_2 (с желтым показанием) и среднему крылу добавь, что если маршрут не по линку
if (!route_set && this_sig_lr ==# SIGASP_CLEAR_2) {state = APPROACH_1}; [size="1"][color="Silver"]Добавлено через 4 минуты[/color][/size] Логика ясна? Если маршрут не по линку среднего, но по линку нижнего, средний через эту зависимость будет видеть, что нижний открыт и открываться |
Текущее время: 09:39. Часовой пояс GMT +4. |
Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
© 2001-2019, Администраторы и разработчики Клуба Trainsim