Форум Trainsim  

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

Ответ
 
Опции темы Опции просмотра
Старый 29.09.2021, 08:55   #1
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,764
Вы сказали Спасибо: 899
Поблагодарили 1,214 раз(а) в 730 сообщениях
vicente стоит на развилке (репутация по умолчанию)
По умолчанию

Цитата:
Сообщение от vicente Посмотреть сообщение
... "соорудил" таймер на светофор в Open Rails.
В общем так.
"Клинические исследования" (пока) показывают следующее:
Фигня эта работает и при загрузке игры. Проблема в том, что такой "таймер" не привязан к игровому времени и, очевидно, при загрузке скрипт "пробегает" процедуру вычисления таким образом, что относительно игрового времени проходят долгие минуты, возможно даже десятки минут, пока он срабатывает и переходит в следующий блок. Это сильно тормозит события, поезда долго ожидают своих сигналов, задерживают следующие поезда в расписании которые должны появиться в тех же точках старта, а Open Rails ожидает освобождения нужных секций только 15 минут, затем выдаёт сообщение в логе "невозможно разместить AI".
Не знаю: имеет ли смысл копать "разницу во времени" .
Так как у нас делают сценарии, это может и не мешать.
Мне такая работа сигналки не подходит. Я так играю в Open Rails: весь трафик работает на всём маршруте.
vicente вне форума   Ответить с цитированием
Старый 29.09.2021, 11:13   #2
roman5
Новичок
 
Регистрация: 25.06.2017
Сообщений: 114
Вы сказали Спасибо: 35
Поблагодарили 71 раз(а) в 34 сообщениях
roman5 стоит на развилке (репутация по умолчанию)
По умолчанию

Цитата:
Сообщение от vicente Посмотреть сообщение
Только что "соорудил" таймер на светофор в Open Rails. Скриптом
Отступы надо ставить в if,while, а то не читаемо. Обычно к этому приучают на первых курсах
roman5 вне форума   Ответить с цитированием
Старый 28.09.2021, 20:11   #3
КЕ
Разработчик
 
Аватар для КЕ
 
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 4,091
Вы сказали Спасибо: 8,777
Поблагодарили 2,574 раз(а) в 1,173 сообщениях
КЕ стоит на развилке (репутация по умолчанию)
По умолчанию

Я так ещё не пробовал, поэтому - что означают строки:

store_lvar(time, 0)
sigid = next_sig_id (SIGFN_NORMAL);
store_lvar(time, wait_time);
train_requires_next_signal(sigid,1);


И как работа светофора будет выглядеть на практике? Задержка переключения огней?

Добавлено через 4 минуты
Помню, как-то давно получил мигающий огонь, считывая состояние второй головы в одном светофоре, и изменяя ее состояние в зависимости от первой, которая тоже меняла аспект в зависимости от второй.
Случайно ошибившись в скрипте, получил такой вот круговорот аспектов в светофоре!
__________________
next_state == 7;

Последний раз редактировалось КЕ; 28.09.2021 в 20:06.
КЕ вне форума   Ответить с цитированием
Старый 28.09.2021, 21:05   #4
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,764
Вы сказали Спасибо: 899
Поблагодарили 1,214 раз(а) в 730 сообщениях
vicente стоит на развилке (репутация по умолчанию)
По умолчанию

Костя, там нет ничего, что я не объяснял в этой теме.
Первая строка - "запоминалка". Первый аргумент - регистр, второй - звпоминаемое значение.
Вторая строка - "метит" светофор. Принцип - MSTS-овский: можно "метить" впередистоящий светофор, по оппозиту, ну и функцией next_Nsig_XX(SigFn_Type) - остоящий дальше следующего.
Третья строка - см. первая - то же самое.
Четвёртую строку я тоже в этой теме объяснял: включает ли маршрут сервиса следующий светофор или нет. В данном случае, используется для маневрового показания - сигнал выходной.
Да, задержка переключения. Меня бесит, когда светофор переключается, когда встречный ещё на стрелке. Выглядит отвратительно-нереалистично.Есть временной триггер (он отключен в примере) - внешний таймер. Но, он не работает когда игра "поднимается". "Завязывать" на него аспект 0 - чревато. После загрузки игры все светофоры, которые я сделал с ним - красные, трафики стоят, десятки трафиков вообще не стартовали. В общем, у меня два файла sigscr.dat : один с таймерами, второй - без. Я загружаю сцену без таймеров, сохраняюсь, подменяю файлы sigscr.dat и захожу снова с сейва. Не айс, короче, совсем не айс. Ещё пол-года назад разработчик кода обещал мне сделать что-то с данным безобразием, но... "как только будет время ". А, требовать чего-то от кого-то - не в моих правилах. Короче, если эта штука пройдёт "клинические испытания" - я буду очень рад. А официальный триггер я уже знаю куда "пристроить")))

На практике, как только встречный проходит стрелку (TrackPin секции пути) готовится маршрут - стрелка переводится. Без "оттяжки" поезду сразу же откроется сигнал. Задача задержки - симитировать освобождение РЦ и несколько секунд на срабатывание СЦБ. В реале это занимает где-то секунд 20, но есть станции с очень длинными горловинами, там должно брать больше времени. Поэтому я писал о возможности в будущем сделать опционально несколько таймеров с возможностью выбора в редакторе.

Добавлено через 35 минут
Нет. Плохо. Не фурычит. Похоже, с этим трюком - та же проблема, что и с таймерлм в коде игры. С сейва - считает, а при загрузке расписания... "невозможно разместить поезд". Эх...
vicente вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо vicente за это полезное сообщение:
Старый 28.09.2021, 21:18   #5
КЕ
Разработчик
 
Аватар для КЕ
 
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 4,091
Вы сказали Спасибо: 8,777
Поблагодарили 2,574 раз(а) в 1,173 сообщениях
КЕ стоит на развилке (репутация по умолчанию)
По умолчанию

Интересное дело! Я тоже слегка думал, как можно сделать какой-нибудь "delay", но пока не пробовал.
И вот эта строка интересна:
if ((next_state ==# -1)...
Они всё-таки сделали такой аспект?
__________________
next_state == 7;
КЕ вне форума   Ответить с цитированием
Старый 28.09.2021, 22:12   #6
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,764
Вы сказали Спасибо: 899
Поблагодарили 1,214 раз(а) в 730 сообщениях
vicente стоит на развилке (репутация по умолчанию)
По умолчанию

Этот аспект и в MSTS прокатывает. Мы же вместе тестили на табло ещё 7 у тебя выдавал. Костя, Костя...
Ну, и в кабине тоже, будет З на АЛСН. Но, мне-то что? Я на них не езжу, на эти -1. На них у меня 0 на выходных завязан. А -1 даёт как раз тот маркер, который "жопой к входному" стоит и сигнализирует маневровым, что поезд приближается к станции с перегона и они должны ловить через оппозитную функцию информацию с него.

Последний раз редактировалось vicente; 28.09.2021 в 22:16.
vicente вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо vicente за это полезное сообщение:
Старый 29.09.2021, 11:13   #7
КЕ
Разработчик
 
Аватар для КЕ
 
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 4,091
Вы сказали Спасибо: 8,777
Поблагодарили 2,574 раз(а) в 1,173 сообщениях
КЕ стоит на развилке (репутация по умолчанию)
По умолчанию

Цитата:
Сообщение от vicente Посмотреть сообщение
Этот аспект и в MSTS прокатывает. Мы же вместе тестили на табло ещё 7 у тебя выдавал. Костя, Костя...
Ну, и в кабине тоже, будет З на АЛСН. Но, мне-то что? Я на них не езжу, на эти -1. На них у меня 0 на выходных завязан. А -1 даёт как раз тот маркер, который "жопой к входному" стоит и сигнализирует маневровым, что поезд приближается к станции с перегона и они должны ловить через оппозитную функцию информацию с него.
Этот оппозит как срабатывает, надежно?
А по "минус единице" - там, наверно, 8-битный регистр, и получается при чтении АЛСН-ом в результате сдвига влево с переносом, что - 1 == 7.))
__________________
next_state == 7;

Последний раз редактировалось КЕ; 29.09.2021 в 11:20.
КЕ вне форума   Ответить с цитированием
Старый 29.09.2021, 09:18   #8
КЕ
Разработчик
 
Аватар для КЕ
 
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 4,091
Вы сказали Спасибо: 8,777
Поблагодарили 2,574 раз(а) в 1,173 сообщениях
КЕ стоит на развилке (репутация по умолчанию)
По умолчанию

Тогда только точки ожидания ставить... и то не везде, наверно.
__________________
next_state == 7;
КЕ вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо КЕ за это полезное сообщение:
Старый 29.09.2021, 09:38   #9
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,764
Вы сказали Спасибо: 899
Поблагодарили 1,214 раз(а) в 730 сообщениях
vicente стоит на развилке (репутация по умолчанию)
По умолчанию

Не поможет. Точка ожидания в Open Rails "держит" светофор в закрытом положении. А, когда он так закрыт, мне не к чему "привязаться": все три функции-условия аспекта 0 не проверяются. Так что, точка ожидания только "добавит масла в огонь"
vicente вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо vicente за это полезное сообщение:
Старый 29.09.2021, 12:33   #10
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,764
Вы сказали Спасибо: 899
Поблагодарили 1,214 раз(а) в 730 сообщениях
vicente стоит на развилке (репутация по умолчанию)
По умолчанию

Рома пытается "уколоть" старика?
Мои первые курсы (они же и последние) были почти 30 лет назад. С тех пор я очень далёк от программирования - работаю совсем в другой сфере. Так что, как говорится, "всё, что ты знаешь, я давно забыл".
В общем, если есть предложения "по делу" - буду рад конкретике. Мы здесь делимся опытом, идеями, чтобы, может быть, что-то где-то когда-то получилось улучшить, а касаемо Open Rails (в курсе, что тема об MSTS ) - создать. Потому что, что-то я функционирующих сигнализаций на этом симуляторе не вижу в упор.
Оф оф

Добавлено через 15 минут
Цитата:
Сообщение от КЕ Посмотреть сообщение
Этот оппозит как срабатывает, надежно?
Да. Срабатывает, как я отчитывался: впереди по ходу. Маневровые поездной режим ловят. Там в другом загвоздка. В Open Rails стрелки после прохода ездючины остаются в том положении, в котором эта ездюлина их проследовала. Оппозит проверяет путь, естественно, по положннию стрелок. На станциях с большим трафиком (смены локов, маневры и т.д.) может сложиться ситуация, когда ездючина выедет на манёвры, сменит направление, а маневровый "по стрелкам" схватит поездной режим . А они у меня теперь в поездном режиме не отерываются вообще на занятый путь. Да и на свободный по синему - "за что боролись, на то и напоролись". У меня так и в MSTS без всяких оппозитов работало. А в Open Rails я не от хорошей жизни им открываться не даю. Deadlock не дремлет. Открытый светофор "стопорит" стрелки и, если в MSTS входной 0 на следующий 2 прокатывает "на ура", Open Rails такое не любит. Он считает, что если были условия на открытие сигнала - значит он "по делу" открыт. И спокойно резервирует секции для ездючин через закрытые светофоры. А сценаристов как заставить уводить точки разворота с главного хода? Полетят же камни!
vicente вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо vicente за это полезное сообщение:
Старый 29.09.2021, 14:13   #11
roman5
Новичок
 
Регистрация: 25.06.2017
Сообщений: 114
Вы сказали Спасибо: 35
Поблагодарили 71 раз(а) в 34 сообщениях
roman5 стоит на развилке (репутация по умолчанию)
По умолчанию

Цитата:
Сообщение от vicente Посмотреть сообщение
Мы здесь делимся опытом, идеями, чтобы, может быть, что-то где-то когда-то получилось улучшить, а касаемо Open Rails (в курсе, что тема об MSTS ) - создать. Потому что, что-то я функционирующих сигнализаций на этом симуляторе не вижу в упор.
Я так понял, основное - реализовать сигналку, чтобы в OR можно было играть сцены, написанные в мстс.
Я тут после изучения сигналки на бмо 1.8 написал сценарий, удалось реализовать следующее:
1. Скрещение в Иванцево - встречный уходит на перегон.
2. Скрещение (встречный уходит на Иванцево) и обгон в Драчеево - скрещение криво реализовано, с Костино никак не дает отправить, стрелки не по маршруту - сделал трафик, который уходит на перегон с возвратом.
3. По Костино также скрещение на проход и обгон все тем же.

Так и не понял что в Костино такое, если выехал с Иванцево, оттуда не выпускает.
roman5 вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо roman5 за это полезное сообщение:
Старый 29.09.2021, 14:43   #12
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,764
Вы сказали Спасибо: 899
Поблагодарили 1,214 раз(а) в 730 сообщениях
vicente стоит на развилке (репутация по умолчанию)
По умолчанию

MSTS?
vicente вне форума   Ответить с цитированием
Старый 29.09.2021, 15:28   #13
roman5
Новичок
 
Регистрация: 25.06.2017
Сообщений: 114
Вы сказали Спасибо: 35
Поблагодарили 71 раз(а) в 34 сообщениях
roman5 стоит на развилке (репутация по умолчанию)
По умолчанию

Цитата:
Сообщение от vicente Посмотреть сообщение
MSTS?
Ну да, сцену только в мстс тестил.
roman5 вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо roman5 за это полезное сообщение:
Старый 29.09.2021, 16:17   #14
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,764
Вы сказали Спасибо: 899
Поблагодарили 1,214 раз(а) в 730 сообщениях
vicente стоит на развилке (репутация по умолчанию)
По умолчанию

По БМО, у меня нет 1.8 (и не хочу ), так что, помощник в маршруте я - никакой.

Интересно, всё-таки, с "запоминалкой" для MSTS. Если попробовать заявить две переменные, скажем, m и n . Вначале поставить безусловное равенство m = n ;, а дальше - if (условие) { n = 1;} else (другое условие) { n = 0; }, m будет "помнить" значение n когда ни одно из условий не выполняется?
vicente вне форума   Ответить с цитированием
Старый 29.09.2021, 16:32   #15
roman5
Новичок
 
Регистрация: 25.06.2017
Сообщений: 114
Вы сказали Спасибо: 35
Поблагодарили 71 раз(а) в 34 сообщениях
roman5 стоит на развилке (репутация по умолчанию)
По умолчанию

Цитата:
Сообщение от vicente Посмотреть сообщение
m будет "помнить" значение n когда ни одно из условий не
Да, ведь присваивание до if.
Код:
float m;float n;
m=5;
n=5;

// далее какой код, меняющий n

// тут m по прежнему 5
Я правильно понял вопрос ?

Добавлено через 4 минуты
Цитата:
Сообщение от vicente Посмотреть сообщение
По БМО, у меня нет 1.8 (и не хочу )
Эхх, а я хотел узнать, как бороться с нежеланием симулятора прокладывать маршрут по узлам иногда. С сигналкой я понимаю как, я начинаю смотреть скрипт, чтобы понять почему так работает. А вот как бороться с внутренним алгоритмом прокладки маршрута не знаю.
roman5 вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо 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


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


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