Форум Trainsim  

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

Ответ
 
Опции темы Опции просмотра
Старый 28.09.2021, 17:15   #781
КЕ
Разработчик
 
Аватар для КЕ
 
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 3,981
Вы сказали Спасибо: 8,664
Поблагодарили 2,510 раз(а) в 1,132 сообщениях
КЕ стоит на развилке (репутация по умолчанию)
По умолчанию

Применительно к сигналке "expected" что означает?
__________________
next_state == 7;
КЕ вне форума   Ответить с цитированием
Старый 01.01.2007, 12:00  
Яndex
Спонсор
 
 
Регистрация: 01.01.2007
Сообщения: 500


Реклама показывается изредка по случайному принципу
По умолчанию РЕКЛАМА

 
Старый 28.09.2021, 18:28   #782
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,765
Вы сказали Спасибо: 899
Поблагодарили 1,213 раз(а) в 730 сообщениях
vicente стоит на развилке (репутация по умолчанию)
По умолчанию

Костя, то что я писал. Симулятор "предполагает", что там будет скрипт, поэтому и expected . К сигналке не имеет отношения. Только к самим файлам.

Добавлено через 14 минут
Только что "соорудил" таймер на светофор в Open Rails. Скриптом
Этот недо-С "петли" не признаёт. Несмотря на то, что for даже в инструкции кужувской присутствует, когда-то, очень давно пробовал его - не получалось ( может, мозги кривые, конечно, но в for трудно ошибиться). На днях попробовал While - парсер послал меня подальше. Сделал под if: загнал переменную в "запоминалку" переменных Open Rails-овскую. Под if (n <# 45) поставил n = n + 1; и результат - в "запоминалку". Считает Поиграл величинами, на 45 - ждёт 28-29 секунд, на 15 - 11-12, на 99 уже, как бы долго получается. Оставлю 45 пока. Теперь - самое главное- потестить не с сейва, а с loading - может быть офигительная вещь. В идеале, конечно, привязать это к флагам... и выбирать птичкой в редакторе: большая станция, маленькая станция и т.п.

Добавлено через 6 минут
Вот скрипт-черновик:
Скрытый текст:

float next_state;
float sigid;
float wait_time;
float k;

if (!enabled || (block_state() !=# BLOCK_CLEAR) || !route_set() )
{
state = SIGASP_STOP;
if (block_state() ==# BLOCK_JN_OBSTRUCTED)
{
store_lvar(time, 0);
}
}
else
{
wait_time = this_sig_lvar(time);
next_state = next_sig_lr (SIGFN_NORMAL);
sigid = next_sig_id (SIGFN_NORMAL);
if ((next_state ==# -1) || ( wait_time <=# 99 ))
{
state = SIGASP_STOP;
wait_time = wait_time + 1;
store_lvar(time, wait_time);
}
else if (!train_requires_next_signal(sigid,1) || (next_state ==# SIGASP_RESTRICTING))
{
state = SIGASP_RESTRICTING;
}
// else if (!check_timing_trigger (45))
// {
// state = SIGASP_STOP;
// }
else
{
state = SIGASP_APPROACH_2;
}
}
draw_state = def_draw_state (state);
if ((state >=# SIGASP_APPROACH_1) && (next_state ># SIGASP_RESTRICTING))
{
draw_state = 2;
}
if ((state == SIGASP_STOP) && (this_sig_lr (SIGFN_NORMAL) ># SIGASP_STOP))
{
draw_state = 4;
}

Последний раз редактировалось vicente; 28.09.2021 в 18:35.
vicente вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо vicente за это полезное сообщение:
Старый 28.09.2021, 20:11   #783
КЕ
Разработчик
 
Аватар для КЕ
 
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 3,981
Вы сказали Спасибо: 8,664
Поблагодарили 2,510 раз(а) в 1,132 сообщениях
КЕ стоит на развилке (репутация по умолчанию)
По умолчанию

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

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   #784
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,765
Вы сказали Спасибо: 899
Поблагодарили 1,213 раз(а) в 730 сообщениях
vicente стоит на развилке (репутация по умолчанию)
По умолчанию

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

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

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

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

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

Последний раз редактировалось vicente; 28.09.2021 в 22:16.
vicente вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо vicente за это полезное сообщение:
Старый 29.09.2021, 08:55   #787
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,765
Вы сказали Спасибо: 899
Поблагодарили 1,213 раз(а) в 730 сообщениях
vicente стоит на развилке (репутация по умолчанию)
По умолчанию

Цитата:
Сообщение от vicente Посмотреть сообщение
... "соорудил" таймер на светофор в Open Rails.
В общем так.
"Клинические исследования" (пока) показывают следующее:
Фигня эта работает и при загрузке игры. Проблема в том, что такой "таймер" не привязан к игровому времени и, очевидно, при загрузке скрипт "пробегает" процедуру вычисления таким образом, что относительно игрового времени проходят долгие минуты, возможно даже десятки минут, пока он срабатывает и переходит в следующий блок. Это сильно тормозит события, поезда долго ожидают своих сигналов, задерживают следующие поезда в расписании которые должны появиться в тех же точках старта, а Open Rails ожидает освобождения нужных секций только 15 минут, затем выдаёт сообщение в логе "невозможно разместить AI".
Не знаю: имеет ли смысл копать "разницу во времени" .
Так как у нас делают сценарии, это может и не мешать.
Мне такая работа сигналки не подходит. Я так играю в Open Rails: весь трафик работает на всём маршруте.
vicente вне форума   Ответить с цитированием
Старый 29.09.2021, 09:18   #788
КЕ
Разработчик
 
Аватар для КЕ
 
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 3,981
Вы сказали Спасибо: 8,664
Поблагодарили 2,510 раз(а) в 1,132 сообщениях
КЕ стоит на развилке (репутация по умолчанию)
По умолчанию

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

Не поможет. Точка ожидания в Open Rails "держит" светофор в закрытом положении. А, когда он так закрыт, мне не к чему "привязаться": все три функции-условия аспекта 0 не проверяются. Так что, точка ожидания только "добавит масла в огонь"
vicente вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо vicente за это полезное сообщение:
Старый 29.09.2021, 11:13   #790
КЕ
Разработчик
 
Аватар для КЕ
 
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 3,981
Вы сказали Спасибо: 8,664
Поблагодарили 2,510 раз(а) в 1,132 сообщениях
КЕ стоит на развилке (репутация по умолчанию)
По умолчанию

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

Последний раз редактировалось КЕ; 29.09.2021 в 11:20.
КЕ вне форума   Ответить с цитированием
Старый 29.09.2021, 11:13   #791
roman5
Новичок
 
Регистрация: 25.06.2017
Сообщений: 114
Вы сказали Спасибо: 35
Поблагодарили 71 раз(а) в 34 сообщениях
roman5 стоит на развилке (репутация по умолчанию)
По умолчанию

Цитата:
Сообщение от vicente Посмотреть сообщение
Только что "соорудил" таймер на светофор в Open Rails. Скриптом
Отступы надо ставить в if,while, а то не читаемо. Обычно к этому приучают на первых курсах
roman5 вне форума   Ответить с цитированием
Старый 29.09.2021, 12:33   #792
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,765
Вы сказали Спасибо: 899
Поблагодарили 1,213 раз(а) в 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   #793
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   #794
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,765
Вы сказали Спасибо: 899
Поблагодарили 1,213 раз(а) в 730 сообщениях
vicente стоит на развилке (репутация по умолчанию)
По умолчанию

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

Цитата:
Сообщение от vicente Посмотреть сообщение
MSTS?
Ну да, сцену только в мстс тестил.
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


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


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