Форум Trainsim  

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

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

Цитата:
Сообщение от vicente Посмотреть сообщение
Лёша использует и DISTANCE и INFO в своей сигнализации. Так что, сигнальные головы в табло не должны быть этих типов. Надо поменять их на что-нибудь другое. SHUNTING, REPEATER...
В табло головы REPEATER, так что вроде все нормально, мы не вмешиваемся в его логику.

Цитата:
Сообщение от vicente Посмотреть сообщение
Так вот, эта "блуждающая" рабочая переменная WORK1 меня всегда настораживала. Это не С++ и даже не С.
Хочешь сказать, что она может быть не локальной
Код:
float WORK1;
, а глобальной, то есть один скрипт будет писать в нее, другой прочитает из нее ( в С++ эта называется проблемой обращения с общей памятью - мьютексы ).

Добавлено через 21 минуту
Цитата:
Сообщение от vicente Посмотреть сообщение
opp_ONE_WAY будет 1 когда сигнал NORMAL "сзади" входного по ходу движения будет наиболее запрещающим аспектом (нижним) давать STOP_AND_PROCEED.
Похоже так.
Скрытый текст:


Добавлено через 13 минут
Цитата:
Сообщение от vicente Посмотреть сообщение
методом исключения, голова даст RESTRICTING только когда opp_POEZD 2, или opp_ONE_WAY 1..
А там ведь еще условие
Код:
if ( POEZD !=# 0 || next_INFO ==# 7 )
POEZD будет не 0, если

Код:
WORK1 = next_sig_lr ( SIGFN_DISTANCE );
 if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { POEZD = 1; }
Но DISTANCE next сигнала на табло SIGASP_CLEAR_2.

Потом:
Код:
WORK1 = next_sig_mr ( SIGFN_INFO );
		if ( WORK1 ==# SIGASP_CLEAR_1 ) { next_INFO = 7; }
На табло нет INFO, я добавил вывод в лог, поправив скрипт Табло:

Код:
SCRIPT N_DASP
extern float	state;
extern float	next_sig_mr();
extern float	next_sig_lr();
extern float	draw_state;
extern float	def_draw_state;
extern float debug_header();
extern float debug_out();
extern float debug_out2();
float WORK1;

state = next_sig_mr (SIGFN_DISTANCE);
draw_state = def_draw_state (state);
debug_header();


WORK1 = next_sig_mr ( SIGFN_DISTANCE );
debug_out2 (2001, WORK1);

WORK1 = next_sig_lr(SIGFN_DISTANCE);
debug_out2(2002,WORK1);

WORK1 = next_sig_mr(SIGFN_NORMAL);
debug_out2(2003,WORK1);

WORK1 = next_sig_lr(SIGFN_NORMAL);
debug_out2(2004,WORK1);

WORK1 = next_sig_mr(SIGFN_INFO);
debug_out2(2005,WORK1);

WORK1 = next_sig_lr(SIGFN_INFO);
debug_out2(2006,WORK1);
Получил в логе:
2001.000000 7.000000
2002.000000 7.000000
2003.000000 0.000000
2004.000000 7.000000
2005.000000 7.000000
2006.000000 7.000000

То есть по INFO голове идет SIGASP_CLEAR_2, по обоим аспектам lr,mr.
То есть в это условие не попадаем.

Последний раз редактировалось roman5; 21.09.2021 в 06:10.
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


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


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