Форум Trainsim  

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

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

next_sig_id - это что-то новое! Что за функция?
if (!train_requires_next_signal(sigid,1)) - что за условие?
КЕ вне форума   Ответить с цитированием
Старый 01.01.2007, 12:00  
Яndex
Спонсор
 
 
Регистрация: 01.01.2007
Сообщения: 500


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

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

Это новые функции, которые были внесены в Open Rails. Нехватка аспектов ощущается не только у нас
sigid определяет объект, с которого нужно считать дополнительную информацию. Строкой
Цитата:
sigid = next_sig_id (SIGFN_NORMAL);
я "пометил" следующий светофор типа NORMAL. Это не единственный вариант. Можно выбирать не только этот тип, но и другие. Можно "метить" подобъекты и снимать с них информацию. Есть также функция next_nsig_id(SigFn_TYPE,n) на подобии функции next_nsig_lr (SigFn_TYPE,n), о которой я уже рассказывал. Работает точно также - на светофор, находящийся на удалении n.
train_requires_next_signal(sigid,position) - функция, проверяющая проходит ли Path через сигнал, идентифицированный параметром sigid
vicente вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо vicente за это полезное сообщение:
Старый 27.04.2020, 01:44   #438
КЕ
Разработчик
 
Аватар для КЕ
 
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 3,978
Вы сказали Спасибо: 8,650
Поблагодарили 2,510 раз(а) в 1,132 сообщениях
КЕ стоит на развилке (репутация по умолчанию)
По умолчанию

То есть эту "метку" ставить на первый проходной в нашем случае?
if (!train_requires_next_signal(sigid,1)) - число "1" означает проверку первого от нас светофора?

Последний раз редактировалось КЕ; 27.04.2020 в 01:46.
КЕ вне форума   Ответить с цитированием
Старый 27.04.2020, 01:46   #439
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,765
Вы сказали Спасибо: 899
Поблагодарили 1,213 раз(а) в 730 сообщениях
vicente стоит на развилке (репутация по умолчанию)
По умолчанию

На сам светофор не надо ничего ставить. Я его функцией "пометил" с выходного
vicente вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо vicente за это полезное сообщение:
Старый 27.04.2020, 01:48   #440
КЕ
Разработчик
 
Аватар для КЕ
 
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 3,978
Вы сказали Спасибо: 8,650
Поблагодарили 2,510 раз(а) в 1,132 сообщениях
КЕ стоит на развилке (репутация по умолчанию)
По умолчанию

А, понял - выбираем нужный светофор, а потом по ходу дела проверяем, проходит путь сервиса через него или нет. Здорово!
Просто, как все гениальное!!! )))
В принципе, я сегодня нулевыми стрелками делал то же самое! )))

Последний раз редактировалось КЕ; 27.04.2020 в 01:56.
КЕ вне форума   Ответить с цитированием
Старый 27.04.2020, 01:59   #441
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,765
Вы сказали Спасибо: 899
Поблагодарили 1,213 раз(а) в 730 сообщениях
vicente стоит на развилке (репутация по умолчанию)
По умолчанию

Вот этого, как раз, я пока не соображу: можно или не можно...
"Долблюсь" как раз с этим. Поэтому и про оппозиты спрашивал. Мне надо передать от выходного (того самого, что на скрипте KRN25_YR_YW ) противостоящему маневровому информацию о том, что выходной открылся белым. Маневровый должен обработать эту информацию, передав её всем своим "головам" и запомнить. И после того, как манёвры выедут с пути станции, ограждённого этим выходным, "знать", что нужно открываться маневровым показанием. Более того, мне нужно, чтобы, в Timetable Mode, в случае команд $forms, $triggers и так далее, этот маневровый "помнил" в каком режиме он находится. Потому что $forms, $triggers "и так далее" - это пропадание сервиса и возникновение на его месте другого. В смысле, если я проложу путь на станцию, и на ней сделаю $forms / $triggers - выходной с пути , на котором будет выполяться команда останется закрытым до возникновения нового сервиса. А, закрытым он будет, потому что !enabled.
vicente вне форума   Ответить с цитированием
Старый 27.04.2020, 02:04   #442
КЕ
Разработчик
 
Аватар для КЕ
 
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 3,978
Вы сказали Спасибо: 8,650
Поблагодарили 2,510 раз(а) в 1,132 сообщениях
КЕ стоит на развилке (репутация по умолчанию)
По умолчанию

Не знаю, как в OR, но в МСТС - как я ни бился, запомнить состояние не получалось... При каких-то изменениях в одной сигнальной точке остальные тоже отрабатывают свой скрипт, обновляются, и маневровый режим терялся в момент прохода сервиса через какую-либо сигнальную точку, даже если ее аспект не менялся...

Нет никакой внешней переменной, об'единяющей все светофоры, которую можно было бы устанавливать и сбрасывать командой из скрипта (что-то отдаленно похожее есть в RTS, но там signal_mode устанавливается и сбрасывается игроком вручную (сочетанием клавиш по ходу игры), а скрипты ее только считывают). А мы можем только менять аспекты сигнальных голов, и больше ничего...

Ну вот только если только попробовать у противостоящего маневрика это:

if (opp_sig_lr (SIGFN_NORMAL) ==2)
{
state =2;
}

и больше ничего! ))

При загрузке сценария исходно все аспекты по нулям, а потом он перейдет в RESTRICTING, да так и останется (?)...

Последний раз редактировалось КЕ; 27.04.2020 в 02:35.
КЕ вне форума   Ответить с цитированием
Старый 27.04.2020, 02:22   #443
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,765
Вы сказали Спасибо: 899
Поблагодарили 1,213 раз(а) в 730 сообщениях
vicente стоит на развилке (репутация по умолчанию)
По умолчанию

Цитата:
Сообщение от КЕ Посмотреть сообщение
То есть эту "метку" ставить на первый проходной в нашем случае?
if (!train_requires_next_signal(sigid,1)) - число "1" означает проверку первого от нас светофора?
"position" ("число 1") здесь означает другое. Что Path пересекает этот светофор. То есть заходит за него.
Если позиция = 0, проверяется, достигает ли маршрут требуемого сигнала;
если позиция = 1; проверяется, выходит ли маршрут за пределы требуемого сигнала.
[зачем им нужен "0" - я хз ]

Добавлено через 7 минут
Цитата:
Сообщение от КЕ Посмотреть сообщение
Не знаю, как в OR, но в МСТС как я ни бился, запомнить состояние не получалось. При каких-то изменениях в одной сигнальной точке остальные тоже отрабатывают свой скрипт, обновляются, и маневровый режим терялся в момент прохода сервиса через какую-либо сигнальную точку, даже если аспект не менялся...

Если только попробовать

if (opp_sig_lr (SIGFN_NORMAL) ==2)
{
state =2;
}

и больше ничего! )))
У меня была другая идея. Заявить переменную, скажем, float shunt;
Вписать ей действие shunt = shunt +0;, в случае, если на выходном появляется 2, давать shunt = 1, найти условие, при котором возвращать shunt = 0, скажем, поезд прехал маневровый в сторону станции по block_stste () через BLOCK_OCCUPIED - как я уже писал, в ORTS состояние блока учитывает направление движения. Но, я не могу поймать "оппозит"!!!
Сейчас буду пробовать через sigid фуекцией sigid = opp_sig_id(SIGFN_Type, <n>) (этот <n> мне тоже непонятен. ИМХО - очепятка просто)
vicente вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо vicente за это полезное сообщение:
Старый 27.04.2020, 02:39   #444
КЕ
Разработчик
 
Аватар для КЕ
 
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 3,978
Вы сказали Спасибо: 8,650
Поблагодарили 2,510 раз(а) в 1,132 сообщениях
КЕ стоит на развилке (репутация по умолчанию)
По умолчанию

Переменная float shunt - не сбросится в ноль при перезагрузке сервисов?
Я так делал, но такая же внутренняя переменная при движении сервиса "терялась" при реверсе движения или еще как-то, как я писал чуть выше.

Цитата:
надо передать от выходного (того самого, что на скрипте KRN25_YR_YW ) противостоящему маневровому информацию о том, что выходной открылся белым
- сервис должен идти по сигналу на выходном, а маневровый "смотрит" вслед сервису? Он не сработает по opp_sig_lr, он в оппозитном положении вообще ничего не считывает с других сигналов. Может только менять свой аспект по BLOCK_STATE ().

Последний раз редактировалось КЕ; 27.04.2020 в 03:12.
КЕ вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо КЕ за это полезное сообщение:
Старый 27.04.2020, 03:01   #445
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,765
Вы сказали Спасибо: 899
Поблагодарили 1,213 раз(а) в 730 сообщениях
vicente стоит на развилке (репутация по умолчанию)
По умолчанию

Не знаю. Может, я что-то делаю не так...
И
Не должен сбрасываться. Светофор связан с сервисами постольку-поскольку. Через функции. Всё это я собираюсь делать когда светофор !enabled - сервис движется в другом направлении, он будет !enabled. И, когда сервис проехал светофор - тот становится снова !enabled. Вопрос в том, корректно ли так писать скрипт.
vicente вне форума   Ответить с цитированием
Старый 27.04.2020, 03:16   #446
КЕ
Разработчик
 
Аватар для КЕ
 
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 3,978
Вы сказали Спасибо: 8,650
Поблагодарили 2,510 раз(а) в 1,132 сообщениях
КЕ стоит на развилке (репутация по умолчанию)
По умолчанию

Я использовал оппозиты (маркеры-"датчики" на пути) только для определения занятости БУ, считывая их аспект, меняющийся через функцию BLOCK_STATE (). Они больше ничего не могут.
КЕ вне форума   Ответить с цитированием
Старый 27.04.2020, 03:19   #447
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,765
Вы сказали Спасибо: 899
Поблагодарили 1,213 раз(а) в 730 сообщениях
vicente стоит на развилке (репутация по умолчанию)
По умолчанию

DISTANCE?
vicente вне форума   Ответить с цитированием
Старый 27.04.2020, 03:33   #448
КЕ
Разработчик
 
Аватар для КЕ
 
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 3,978
Вы сказали Спасибо: 8,650
Поблагодарили 2,510 раз(а) в 1,132 сообщениях
КЕ стоит на развилке (репутация по умолчанию)
По умолчанию

И нормалы тоже так.
Хотя в последних версиях ОР надо проверять.
sigid = opp_sig_id(SIGFN_Type, <n>) - сработает? Получится оппозитно проверить путь до какого-то сигнала - после реверса, когда сервис уже прошел наиболее отдаленную точку пути - точку разворота, и пошел по горловине в сторону станции?

Последний раз редактировалось КЕ; 27.04.2020 в 03:39.
КЕ вне форума   Ответить с цитированием
Старый 27.04.2020, 04:02   #449
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,765
Вы сказали Спасибо: 899
Поблагодарили 1,213 раз(а) в 730 сообщениях
vicente стоит на развилке (репутация по умолчанию)
По умолчанию

Сработало
В смысле что-то изменилось. Со скриптом не то. Не открывается.
<n> я не ставил. Мне кажется, это очепятка у Буржуев

Добавлено через 1 минуту
Нет. Мне тупо нужно знать, что выходной открылся маневровым, а не путевым. Я считываю аспект с этого светофора и всё

Добавлено через 1 минуту
Вот скрипт
Цитата:
sigid = opp_sig_id (SIGFN_NORMAL)
next_state = next_sig_lr (SIGFN_NORMAL);
opp_state = ID_SIG_LR (sigid);
shunt_state = shunt_state + 0;

if (!enabled && (opp_state ==# SIGASP_RESTRICTING))
{
shunt_state = 1;
}
if (!enabled && (block_state() ==# BLOCK_OCCUPIED))
{
shunt_state = 0;
}
if (route_set () )
{
state = SIGASP_STOP;
if (enabled && (shunt_state ==# 1))
{
state = SIGASP_RESTRICTING;
}
else if (enabled && (block_state() ==# BLOCK_CLEAR))
{
state = next_state;
}
draw_state = def_draw_state (state);
}
else
{
state = SIGASP_STOP; draw_state = 0;
if (this_sig_lr (SIGFN_NORMAL) ># SIGASP_STOP)
{
draw_state = 2;
}
}
Добавлено через 9 минут
Вот маневровый на выходном.
[IMG][/IMG]
Я снял а number_plate и проходные за станцией - в обычном режиме

Добавлено через 3 минуты
Дополнительные строки в скрипте - до if (route_set())
[IMG][/IMG]
Без этого должно было открыть паровозику STOP_AND_PROCEED на свободный путь со следующим красным. Что-то пошло не так.
vicente вне форума   Ответить с цитированием
Старый 27.04.2020, 09:53   #450
КЕ
Разработчик
 
Аватар для КЕ
 
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 3,978
Вы сказали Спасибо: 8,650
Поблагодарили 2,510 раз(а) в 1,132 сообщениях
КЕ стоит на развилке (репутация по умолчанию)
По умолчанию

Странно!! Смотрю скрины с телефона - все нормально, а с ноута через телефон - вместо картинок - "Your IP is blacklisted"...
Что-то тот сайт хернёй занимается...

Последний раз редактировалось КЕ; 27.04.2020 в 10:19.
КЕ вне форума   Ответить с цитированием
Ответ


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


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


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