Форум Trainsim  

Вернуться   Форум Trainsim > Microsoft Train Simulator > MSTS - Маршруты

 
 
Опции темы Опции просмотра
Старый 23.10.2020, 22:31   #11
Forsayth
Пользователь
 
Аватар для Forsayth
 
Регистрация: 02.12.2009
Сообщений: 35
Вы сказали Спасибо: 51
Поблагодарили 7 раз(а) в 6 сообщениях
Forsayth стоит на развилке (репутация по умолчанию)
По умолчанию

В одном из заграничных маршрутов есть трех-крылый семафор.

В сигнализации СССР подобные семафоры использовались для указания направления при многопутном участке: При наличии трёх и более направлений применяются трёхкрылые семафоры ... Третье крыло сигнализирует также, как и второе крыло, желтым огнем.
Есть ли возможность поднять одновременно три крыла семафора?

Используя, вот этот скрипт:
sigcfg.dat
SignalType ( "T_Semaphore_GR_X_X"
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 ( "T_Semaphore_GX_Y_X"
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 ( "T_Semaphore_GX_Y_Y"

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 ( "T_Semaphore_GR_X_X" )
)
SignalSubObj ( 1 "HEAD2" "Два Крыла-Ответление На Боковой Путь"
SigSubType ( SIGNAL_HEAD )
SignalFlags ( JN_LINK OPTIONAL DEFAULT )
SigSubSType ( "T_Semaphore_GX_Y_Y" )
)
SignalSubObj ( 2 "HEAD3" "Три Крыла-Ответление На Боковой Путь"
SigSubType ( SIGNAL_HEAD )
SignalFlags ( JN_LINK OPTIONAL DEFAULT )
SigSubSType ( "T_Semaphore_GX_Y_Y" )

)
)
)

sigscr.dat
SCRIPT T_Semaphore_GR_X_X

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);

SCRIPT T_Semaphore_GX_Y_X

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);
}


SCRIPT T_Semaphore_GX_Y_Y

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);
}

У меня следующая ситуация:
При указании главного пути: Семафор сигнализирует правильно:

При указании бокового направления и два крыла. Семафор сигнализирует правильно.

А при использовании третьего направления,почему-то не подымается, среднее крыло.

Возможно нужно прописать какой-то дополнительный параметр?

Последний раз редактировалось Forsayth; 23.10.2020 в 22:34.
Forsayth вне форума   Ответить с цитированием
 


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипты Вл ~sejo~ TrainZ - Подвижной состав 2 25.09.2010 18:11
Как эта конфигурация ? vita IT, компьютеры, электроника 9 02.06.2009 00:26
Заказы на скрипты TRam_ TrainZ — Об игре 5 03.04.2009 16:25
MSTS-конфигурация компьютера GeneZone MSTS - Об игре 6 03.03.2008 21:03
Trainz 2006 SP1 Конфигурация PC vita TrainZ — Об игре 18 11.02.2008 00:11


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


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