Форум Trainsim  

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

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

Да.
На всех маневровых, если есть точка разворота за ними ( с пути на путь) ставлю точки ожидания "для реалистичности". Двухсекционникам от минуты до 2-х, маневровым локомотивам или составам 10-30 сек, чтобы сразу не возвращались.
Думаю, я понял: к чему ты клонишь. Именно поэтому сейчас снова пытаюсь "пробить" маневровый режим (не получается пока - переменные не хотят запоминать себя). У меня прописано маневровому на занятый путь не открываться, если следующий светофор открыт. То есть, за поездом маневровый сервис не поедет, не сцепится с ним и т.п. Но, эта связка ненадёжна. Я перегоняю локомотивы по главным путям станций, на них останавливаются только пассажирские и пригородные с открытыми выходными. Но, хочется универсальности, потому что, если выходной пассажирскому будет заблокирован, маневровый откроется.
vicente вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо vicente за это полезное сообщение:
Старый 01.01.2007, 12:00  
Яndex
Спонсор
 
 
Регистрация: 01.01.2007
Сообщения: 500


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

 
Старый 29.10.2016, 22:16   #272
КЕ
Разработчик
 
Аватар для КЕ
 
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 4,052
Вы сказали Спасибо: 8,735
Поблагодарили 2,557 раз(а) в 1,162 сообщениях
КЕ стоит на развилке (репутация по умолчанию)
По умолчанию

Цитата:
переменные не хотят запоминать себя
Да, всё "сбрасывается", по крайней мере у меня, хотя в МСТС работало...
Цитата:
маневровому на занятый путь не открываться, если следующий светофор открыт. То есть, за поездом маневровый сервис не поедет, не сцепится с ним и т.п. Но, эта связка ненадёжна. Я перегоняю локомотивы по главным путям станций, на них останавливаются только пассажирские и пригородные с открытыми выходными. Но, хочется универсальности, потому что, если выходной пассажирскому будет заблокирован, маневровый откроется.
Была мысль ставить специальные маркеры границы станции - если путь сервиса за них не заходит, то по !enabled выдают нужный управляющий аспект. Но то же самое можно считывать с уже имеющихся светофоров, только надо думать, как... Вот твой случай как раз и показал ненадёжность всего этого.
__________________
next_state == 7;
КЕ вне форума   Ответить с цитированием
Старый 29.10.2016, 22:22   #273
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,764
Вы сказали Спасибо: 899
Поблагодарили 1,213 раз(а) в 730 сообщениях
vicente стоит на развилке (репутация по умолчанию)
По умолчанию

Да, это недостаток. Но, что сделано - то сделано. У меня маршрут почти 500 км, на всех станциях они стоят и работают. И сценарии только я делаю, так что эта ситуация принимается мной во внимание. Сигнализацию с того, что есть на сегодняшний день, я могу только улучшать. Не получается - будет работать так дальше.
Скрипт как-то странно работает в ОР. Придётся все функции с самого начала проверять на тестовом
vicente вне форума   Ответить с цитированием
Старый 29.10.2016, 22:26   #274
КЕ
Разработчик
 
Аватар для КЕ
 
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 4,052
Вы сказали Спасибо: 8,735
Поблагодарили 2,557 раз(а) в 1,162 сообщениях
КЕ стоит на развилке (репутация по умолчанию)
По умолчанию

Маневровый Б-С:
Скрытый текст:
if ( enabled )
{ if ( ( opp_sig_lr (SIGFN_NORMAL) == 1 ) && ( next_N <= 2 ) && ( opp_D == 1 ) )
{ state = 2; draw_state = 1; } /// из горловины на станц. путь
}
else { state = 0; draw_state = 0; }

сам DISTANCE, opp_D == 1 - управляющий код в РЦ от оппозитно стоящего около входного светофора маневрового маркера, направленного на середину станции:
Скрытый текст:
{ state = 0; }
if ( ( block_state() == BLOCK_CLEAR ) && ( next_sig_lr (SIGFN_NORMAL) <=1 ) && ( opp_sig_lr (SIGFN_NORMAL) <=1 ) )
{ state = 1; }

Буду проверять...
__________________
next_state == 7;

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

Ух, ты!!! Поменял на тестовом проходные на DISTANCE --- интересная штука получается. Ну-ка, какие твои выводы?

Добавлено через 7 минут
Костя, opp_sig_lr работает только на попутном светофоре. То есть, это
Цитата:
{ state = 0; }
if ( ( block_state() == BLOCK_CLEAR ) && ( next_sig_lr (SIGFN_NORMAL) <=1 ) && ( opp_sig_lr (SIGFN_NORMAL) <=1 ) )
{ state = 1; }
работать не будет

Последний раз редактировалось vicente; 29.10.2016 в 22:50.
vicente вне форума   Ответить с цитированием
Старый 29.10.2016, 22:44   #276
КЕ
Разработчик
 
Аватар для КЕ
 
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 4,052
Вы сказали Спасибо: 8,735
Поблагодарили 2,557 раз(а) в 1,162 сообщениях
КЕ стоит на развилке (репутация по умолчанию)
По умолчанию

Как выводы??? Проходные DISTANCE? И что при этом происходит???
__________________
next_state == 7;
КЕ вне форума   Ответить с цитированием
Старый 29.10.2016, 23:02   #277
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,764
Вы сказали Спасибо: 899
Поблагодарили 1,213 раз(а) в 730 сообщениях
vicente стоит на развилке (репутация по умолчанию)
По умолчанию

Зависимость DISTANCE от enabled()

Добавлено через 5 минут
DISTANCE работают как enabled() пока следующий NORMAL enabled(). Но, у меня тестовый полигон очень короткий. Я как-то тестил DISTANCE - там ещё расстояния имеют значение, если пользоваться этими функциями. Поэтому, я для передачи информации ими не пользуюсь

Добавлено через 8 минут
Мысль такая.
Первый проходной после станции в противоположном направлении от маневрового (нормальное положение RESTRICTING), в случае, если едет поезд в сторону станции будет !enabled, блок "за ним" по ходу - занят. Прописать в нём особый аспект на этот случай
Цитата:
if (!enabled && (block_state() !=# BLOCK_CLEAR)){state = 1; }
Маневровый должен по if ( opp_sig_lr (SIGFN_NORMAL) == 1 ) "ловить" поездной режим и держать его до тех пор, пока сам не станет !enabled
Если условия в рамке не имело место - режим маневровый
vicente вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо vicente за это полезное сообщение:
Старый 29.10.2016, 23:05   #278
КЕ
Разработчик
 
Аватар для КЕ
 
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 4,052
Вы сказали Спасибо: 8,735
Поблагодарили 2,557 раз(а) в 1,162 сообщениях
КЕ стоит на развилке (репутация по умолчанию)
По умолчанию

А у меня так отдельный маневровый "датчик" работает.
А не повлияет этот проходной, если манёвры в сторону перегона? Хотя вроде не должен.
------------------------------------------------------------------
Дистансы работают. Я заехал за входной, и они все дружно загорелись жёлтым - для трафика.
"Своего" БУ не имеют.
Цитата:
DISTANCE работают как enabled() пока следующий NORMAL enabled()
Спасибо, про это не знал!
__________________
next_state == 7;

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

Цитата:
Сообщение от КЕ Посмотреть сообщение
А не повлияет этот проходной, если манёвры в сторону перегона?
Нет. Выходной настраиваем давать на следующий 1 и 2 маневровый белый 2 и всё в ажуре. Проблема в другом. Как сохранить поездной режим?

Добавлено через 3 минуты
Лови скрипт моего маневрового
(Хотя, я давал его уже на Заборе)
Скрытый текст:
extern float block_state ();
extern float route_set ();
extern float next_sig_lr ();
extern float this_sig_lr ();
extern float next_sig_mr ();
extern float def_draw_state ();
extern float state;
extern float draw_state;
extern float enabled;
extern float sig_feature ();
float next_state;


next_state = next_sig_lr (SIGFN_NORMAL);
if (route_set ())
{
state = SIGASP_STOP;
if (enabled && (block_state() ==# BLOCK_CLEAR) && (next_state ==# SIGASP_STOP))
{
state = SIGASP_STOP_AND_PROCEED;
}
else if (enabled && (block_state() !=# BLOCK_CLEAR) && (next_state ==# SIGASP_STOP))
{
state = SIGASP_RESTRICTING;
}
else if (enabled && (block_state() !=# BLOCK_CLEAR) && (next_state ==# SIGASP_STOP_AND_PROCEED))
{
state = SIGASP_RESTRICTING;
}
else if (enabled && (block_state() !=# BLOCK_CLEAR) && (next_state ># SIGASP_RESTRICTING))
{
state = SIGASP_STOP;
}
else if (enabled && (next_state ==# SIGASP_RESTRICTING))
{
state = SIGASP_RESTRICTING;
}
else if (enabled && (block_state() ==# BLOCK_CLEAR) && (next_state ># SIGASP_RESTRICTING))
{
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;
}
}


Добавлено через 3 минуты
Это старый вариант без обратно-смотрящего маркера на выходных. Писал уже, что я их сейчас меняю на вариант с маркером из-за того, что стрелка не переводится, если за сервисом по удалению идёт ещё один

Последний раз редактировалось vicente; 29.10.2016 в 23:32.
vicente вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо vicente за это полезное сообщение:
Старый 30.10.2016, 00:07   #280
КЕ
Разработчик
 
Аватар для КЕ
 
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 4,052
Вы сказали Спасибо: 8,735
Поблагодарили 2,557 раз(а) в 1,162 сообщениях
КЕ стоит на развилке (репутация по умолчанию)
По умолчанию

Спасибо! Посмотрю ещё раз, подумаю завтра - может, какие идеи появятся (а то спать надо...).
Цитата:
Как сохранить поездной режим?
Или наоборот, маневровый. Какие-то переменные нужны, чтобы не "сбрасывались". Например, у меня такая попытка была:
Скрытый текст:
///////////////////// УПРАВЛЯЮЩИЙ МАНЕВРОВЫЙ МАРКЕР 1, светофор /////////////////////////////////////////////////////////////////////////////////////
SCRIPT TK_M1-V
extern float enabled;
extern float block_state ();
extern float next_sig_lr ();
extern float opp_sig_lr ();
extern float state;
///{ state = 0; }
if ( ( block_state() == BLOCK_CLEAR ) && ( next_sig_lr (SIGFN_NORMAL) <=1 ) && ( opp_sig_lr (SIGFN_NORMAL) <=1 ) )
{ state = 1; }

{ state = 0; } закомментировал.
То есть state равно 0, если только всё заново начинается.
__________________
next_state == 7;
КЕ вне форума   Ответить с цитированием
Старый 30.10.2016, 00:29   #281
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,764
Вы сказали Спасибо: 899
Поблагодарили 1,213 раз(а) в 730 сообщениях
vicente стоит на развилке (репутация по умолчанию)
По умолчанию

Я пробовал инкримент. Если блок занят, прибавляется единица. Но, как только блок освобождается -- переменная обнуляется почему-то

Добавлено через 2 минуты
Цитата:
Сообщение от КЕ Посмотреть сообщение
/////////////////////////////////////////////////////////////////////////////////////
SCRIPT TK_M1-V
extern float enabled;
extern float block_state ();
extern float next_sig_lr ();
extern float opp_sig_lr ();
extern float state;
///{ state = 0; }
if ( ( block_state() == BLOCK_CLEAR ) && ( next_sig_lr (SIGFN_NORMAL) <=1 ) && ( opp_sig_lr (SIGFN_NORMAL) <=1 ) )
{ state = 1; }
И что? Когда оппозит сбрасывается? Что со state?
vicente вне форума   Ответить с цитированием
Старый 30.10.2016, 00:36   #282
КЕ
Разработчик
 
Аватар для КЕ
 
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 4,052
Вы сказали Спасибо: 8,735
Поблагодарили 2,557 раз(а) в 1,162 сообщениях
КЕ стоит на развилке (репутация по умолчанию)
По умолчанию

Да, и dist_multi_sig_xx до конца пути как проверяет? То есть как это в скрипте выглядит?

Добавлено через 6 минут
Цитата:
Сообщение от vicente Посмотреть сообщение
И что? Когда оппозит сбрасывается? Что со state?
Вот это я проверять буду, с трафиком. Посмотрю, как оно работает, но только послезавтра.
__________________
next_state == 7;
КЕ вне форума   Ответить с цитированием
Старый 30.10.2016, 00:59   #283
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,764
Вы сказали Спасибо: 899
Поблагодарили 1,213 раз(а) в 730 сообщениях
vicente стоит на развилке (репутация по умолчанию)
По умолчанию

[IMG][/IMG]

Добавлено через 1 минуту
Цитата:
Сообщение от КЕ Посмотреть сообщение
Да, и dist_multi_sig_xx до конца пути как проверяет? То есть как это в скрипте выглядит?
Как в дефолте
Цитата:
SCRIPT UKSemDist

// UK Semephore (Distance)

extern float block_state ();
extern float route_set ();
extern float def_draw_state ();
extern float dist_multi_sig_mr ();
extern float state;
extern float draw_state;
extern float enabled;

if ( //!enabled || // Not enabled/cleared to show natural state?
!route_set() || // Switch not set as per link?
dist_multi_sig_mr (SIGFN_NORMAL, SIGFN_DISTANCE) ==# SIGASP_STOP)
{
state = SIGASP_APPROACH_2;
}
else
{
state = SIGASP_CLEAR_2;
}

// Get draw state
draw_state = def_draw_state (state);

Проверяет головы NORMAL до следующего по пути DISTANCE. Если нет такового или путь заканчивается или есть на пути враждебная противошерстная стрелка - до места окончания пути


Для Open Rails заблокированный светофор тоже является "окончанием пути".
По скрипту, если есть хоть один STOP , считается, что условие выполняется!

Добавлено через 15 минут

Как удержать аспект?
vicente вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо vicente за это полезное сообщение:
Старый 31.10.2016, 12:11   #284
КЕ
Разработчик
 
Аватар для КЕ
 
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 4,052
Вы сказали Спасибо: 8,735
Поблагодарили 2,557 раз(а) в 1,162 сообщениях
КЕ стоит на развилке (репутация по умолчанию)
По умолчанию

Не удерживается даже в таком скрипте:
Скрытый текст:
SCRIPT TK_WB
extern float block_state ();
extern float next_sig_lr ();
extern float state;
extern float draw_state;
float next_N;
float W;

next_N = next_sig_lr (SIGFN_NORMAL);
if ( ( state == 0 ) && ( block_state()!= BLOCK_CLEAR ) )
W = 1;
else if ( ( ( next_N == 1 ) || ( next_N == 2 ) ) && W == 0 )
{ state = 2; draw_state = 1; } /// из горловины на станц. путь
else { state = 0; draw_state = 0; }

Здесь переменная W задана для гашения белого в обратном направлении. Гаснет, но при обороте маневрового в горловине и движении обратно на станцию загорается белый, хотя сброс W в ноль не прописан в скрипте. То есть при перемене направления движения всё обнуляется заново независимо от скрипта.(?)
Похоже, что при переходе из !enabled в enabled или обратно происходит то же самое.
Переменная W - в принципе, тот же аспект.
__________________
next_state == 7;

Последний раз редактировалось КЕ; 31.10.2016 в 11:20.
КЕ вне форума   Ответить с цитированием
Старый 31.10.2016, 16:57   #285
КЕ
Разработчик
 
Аватар для КЕ
 
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 4,052
Вы сказали Спасибо: 8,735
Поблагодарили 2,557 раз(а) в 1,162 сообщениях
КЕ стоит на развилке (репутация по умолчанию)
По умолчанию

1. М-м-дя-я... "Головы" SHUNTING тоже оппозиты не читают, условие opp_sig_lr (SIGFN_DISTANCE) всегда возвращает "0". И в стабильной, и в последней тестовой версиях.
2. Если на станц. пути стоят вагоны, а за вагонами горит белый ( state = 2;), то при этом на манёврах условие if ( next_N == 2 ) не работает, next_sig_xx возвращает ноль (вроде как РЦ зашунтирована колёсами, и коды не проходят).
Где можно посмотреть список внешних переменных для OR?
__________________
next_state == 7;

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


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


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


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