Форум Trainsim  

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

 
 
Опции темы Опции просмотра
Старый 24.09.2021, 01:33   #11
roman5
Новичок
 
Регистрация: 25.06.2017
Сообщений: 114
Вы сказали Спасибо: 35
Поблагодарили 71 раз(а) в 34 сообщениях
roman5 стоит на развилке (репутация по умолчанию)
По умолчанию

Цитата:
Сообщение от vicente Посмотреть сообщение
так и не понял: как он гасит противоположгое направление.
Я вот его скрипт distance входного смотрю:
Скрытый текст:
Код:
SCRIPT APK_3AB_YGR_YW_DISTANCE

	extern float	block_state ();
	extern float	def_draw_state ();
	extern float	state;
	extern float	draw_state;
	extern float	next_sig_lr ();
	extern float	next_sig_mr ();
	extern float	opp_sig_lr ();
	extern float	opp_sig_mr ();
	extern float	sig_feature ();
	float WORK1; float ONE_WAY; float SVET; float POEZD; float next_INFO; float opp_ONE_WAY; float opp_POEZD;

	ONE_WAY = 0; SVET = 0; POEZD = 0; next_INFO = 8; opp_POEZD = 0; opp_ONE_WAY = 0;
	if ( block_state() !=# BLOCK_JN_OBSTRUCTED ) {
		WORK1 = next_sig_mr ( SIGFN_NORMAL ); if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { ONE_WAY = 1; }
		WORK1 = next_sig_lr ( SIGFN_DISTANCE );
		if ( WORK1 ==# SIGASP_CLEAR_2 ) { SVET = 5; } if ( WORK1 ==# SIGASP_CLEAR_1 ) { SVET = 4; }
		if ( WORK1 ==# SIGASP_APPROACH_3 ) { SVET = 3; } if ( WORK1 ==# SIGASP_APPROACH_2 ) { SVET = 2; }
		if ( WORK1 ==# SIGASP_APPROACH_1 ) { SVET = 1; }
		if ( WORK1 ==# SIGASP_RESTRICTING ) { POEZD = 2; } if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { POEZD = 1; }
		WORK1 = next_sig_mr ( SIGFN_INFO );
		if ( WORK1 ==# SIGASP_CLEAR_1 ) { next_INFO = 7; } if ( WORK1 ==# SIGASP_APPROACH_3 ) { next_INFO = 6; }
		if ( WORK1 ==# SIGASP_APPROACH_2 ) { next_INFO = 5; } if ( WORK1 ==# SIGASP_APPROACH_1 ) { next_INFO = 4; }
		if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { next_INFO = 2; } if ( WORK1 ==# SIGASP_RESTRICTING )
		{ next_INFO = 3; } if ( WORK1 ==# SIGASP_STOP ) { next_INFO = 0; }
		
		
		
	}
	if ( sig_feature( SIGFEAT_GRADIENT_PLATE ) && !sig_feature( SIGFEAT_NUMBER_PLATE ) ) { //для входного
		WORK1 = opp_sig_mr ( SIGFN_NORMAL ); // опрашиваем проходной встречный рядом со входным вроде ? APK_4AB_YRG_Kv - проходной
		if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { opp_ONE_WAY = 1; } // у отключенных проходных APK_ALSN_KZ_20_B_20 выдает stop - не выполняеся это условие
		WORK1 = opp_sig_lr ( SIGFN_DISTANCE );
		if ( WORK1 ==# SIGASP_RESTRICTING ) { opp_POEZD = 2; } if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { opp_POEZD = 1; }
		//проходной не выдает distance res - тут только  opp_POEZD = 1
	}

	if ( next_INFO ==# 4 ) { next_INFO = 8; }
	if ( next_INFO ==# 5 ) { next_INFO = 8; }
	if ( next_INFO ==# 6 ) { next_INFO = 8; }
	if ( next_INFO ==# 3 && sig_feature( SIGFEAT_NUMBER_PLATE ) )
	{ next_INFO = 8; }

	state = SIGASP_STOP;
	if ( next_INFO ==# 8 && POEZD ==# 0 && block_state() ==# BLOCK_CLEAR ) {
		if ( SVET ==# 0 ) { state = SIGASP_CLEAR_1; }
		if ( SVET ==# 1 ) { state = SIGASP_APPROACH_3; }
		if ( SVET ==# 2 ) { state = SIGASP_CLEAR_2; }
		if ( SVET ==# 3 ) { state = SIGASP_CLEAR_2; }
		if ( SVET ==# 4 ) { state = SIGASP_CLEAR_2; }
		if ( SVET ==# 5 ) { state = SIGASP_CLEAR_2; }
	}
	if ( next_INFO ==# 0 && POEZD ==# 0 && block_state() ==# BLOCK_CLEAR ) { state = SIGASP_APPROACH_1; }

	if ( sig_feature( SIGFEAT_GRADIENT_PLATE ) && !sig_feature( SIGFEAT_NUMBER_PLATE ) ) {
	
	
		if ( ( block_state() ==# BLOCK_OCCUPIED || POEZD !=# 0 ) && opp_POEZD !=# 1 ) { state = SIGASP_STOP_AND_PROCEED; } //вроде должно сработать, когда за входной заедет прибывающий
		// и начать переключать перегон, но opp_POEZD = 1 - мимо пройдет
		if ( opp_ONE_WAY ==# 1 || opp_POEZD ==# 2 ) { state = SIGASP_STOP_AND_PROCEED; } // тоже не сработает
	}
	if ( sig_feature( SIGFEAT_NUMBER_PLATE ) && POEZD ==# 1 ) { // не проходной - мимо
		state = SIGASP_STOP_AND_PROCEED;
	}
	draw_state = def_draw_state (state);


Если opp_POEZD !=# 1 поменять на opp_POEZD ==# 1, то гаснут попутные в момент пересечения входного трафиком, но обратное направление не зажигается. Не понятно, в скрипте ошибка или упускаю что-то ?

Добавлено через 1 минуту
Цитата:
Сообщение от КЕ Посмотреть сообщение
То есть в SAP переходят головы "ненужных" светофоров?
Именно и если sap на входном поставить, то все проходные его подхватят и погаснут. Надо теперь понять, чего с другой стороны перегона входной не прокинул "не sap".
roman5 вне форума   Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо roman5 за это полезное сообщение:
 


Здесь присутствуют: 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


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


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