PDA

Просмотр полной версии : Сессии и сценарии в разработке



NickLon
04.06.2012, 13:27
По аналогии темы "Маршруты в разработке" предлагаю здесь обмениваться опытом в построении сессий и сценариев. Часто бывает нужно один вопрос выяснить, не заводить же из-за этого отдельную тему.
Ну и конечно же, у меня первый проблема-вопрос.
На станции Х загружены определенные вагоны определенным грузом. Груз особой роли не играет, важны вагоны (не типы вагонов, а конкретные, в сессии). При подъезде к станции назначения для этих вагонов надо определить, если ли в движущимся поезде эти вагоны и если есть, поменять порядок следования команд магистральному поезду на порядок команд, который обяжет поезд зайти на боковой путь и дать знать маневровому локомотиву, чтобы он отцепил эти самые вагоны с хвоста поезда. Например, это четное направление.
Но когда магистральный локомотив будет тянуть эти вагоны обратно, в нечетном направлении при проследовании того места, где в четном направлении активировался по признаку наличия в составе определенных вагонов список задания маршрута на боковой этого происходить не должно. (надеюсь, понятно).
Я попытался сделать это триггером в надежде на то, что фраза "Only aktivate when the entering vehicle of the train is heading forward into the trigger." означает, что сработает он только тогда, когда поезд, заедет на него и у него направление будет сонаправлено направлению самого триггера. Ничего подобного! Как в четном направлении поезд проехал и правило сработало, так и в нечетном проследовал и правило тоже сработало. При этом я конечно же вагоны не переворачивал, а перецепил в хвост локомотив и поменял направление (зеленая и красная стрелочки): вогоны ведь не разворачиваются. Хотя далеко не всегда.
Что можно придумать здесь, чтобы в четном направлении правило срабатывало бы, а в нечетном - нет. ScheduleAtTrackMark здесь не подходит, так как он дает набор команд, который находится у него внутри любому поезду, который проедет через него. Связка триггер+маркер тоже не подходит, так как в нечетном направлении, когда проедет поезд, маркер будет уже активирован. И хоть проехавший поезд дальше ничего не сактивирует, то любой другой проехавший поезд запросто это сделает. Даже не зависимо от того, есть у него такие вагоны, или нет.
Вот такая вот беда.

ZVERSKY
04.06.2012, 14:33
Я попытался сделать это триггером в надежде на то, что фраза "Only aktivate when the entering vehicle of the train is heading forward into the trigger."
Не ту галочку поставил, вообще не понятно как оно работает. Попробуй с "trigger only once" (должно работать, означает срабатывать только один раз за сессию)

Эрендир
04.06.2012, 14:46
А ему не надо один раз. Сессия то безконечная и события в ней повторяются.

ZVERSKY
04.06.2012, 15:44
Тогда без переменных никак, в такой сессии сложно запомнить весь алгоритм выполнения действий. Я названия правил не помню, но можно попробовать сделать как-то так:

-переменная равна 1
--проверка триггера
---проверка состава (вагоны есть)
----выполнение маневров (отцепка вагонов)
----изменить значение переменной на 2

Ant.taranish
04.06.2012, 15:49
в надежде на то, что фраза "Only aktivate when the entering vehicle of the train is heading forward into the trigger." означает, что сработает он только тогда, когда поезд, заедет на него и у него направление будет сонаправлено направлению самого триггера.
вообще эта опция так и работает. Просто правило кривое и косое. Мне известно следующее:
- правило почему-то видит только направление, в котором триггер установился изначально. Переворачивать его бесполезно, нужно менять направление срабатывания в свойствах правила.
- если кроме опции направления выбрана опция "ждать выполнения дочерних правил", правило сработает только один раз.
- если выбрана опция "срабатывать один раз", правило сработает только если самый первый поезд заехал на триггер в указанном направлении, иначе не сработает вообще.
Но при любом раскладе в обоих направлениях правило срабатывать не должно. Я бы попробовал заново добавить в сессию и триггер, и правило.

NickLon
04.06.2012, 16:28
В общем, я понял, что испробовал все варианты.
Переменная не совсем годится, т.к. впоследствии хочу отойти от привязки к конкретному вагону. К типу вагона да, а то в моей сессии одних только CheckTrigger будет мильён. А именно так я в прошлой версии сессии и реализовывал.
Но ничего срашного. Я придумал вот что. В нечетном направлении, когда срабатывание этого правила в любом случае не нужно просто деактивировать в БОК этот список команд. Ошибки тут быть не может, поскольку на перегоне в разных направлениях два поезда находится не могут. И наплевать тогда forward будет у триггера или не forward! :phil:

---------- Сообщение добавлено в 17:28 ---------- Предыдущее сообщение размещено в 17:24 ----------

Следующий вопрос. А есть команда TurnTrain, которая бы перебрасывала лок.бригаду в головную кабину многосекционного локомотива? А то совсем не айс, когда бригада на скорости в 10 км/ч прохлаждается в хвостовой кабине от вида такого аж коробит!:mocking:

ZVERSKY
04.06.2012, 16:59
Следующий вопрос. А есть команда TurnTrain, которая бы перебрасывала лок.бригаду в головную кабину многосекционного локомотива? А то совсем не айс, когда бригада на скорости в 10 км/ч прохлаждается в хвостовой кабине от вида такого аж коробит!
В данном случае поможет команда "move to train", но многосекционный локомотив придётся предварительно расцепить, иначе в списке нужный локомотив не появится, затем после добавления команды не забыть обратно прицепить.

Эрендир
04.06.2012, 17:00
NickLon, есть команда movetoloco, но она не разворачивает состав. Так что использовать придётся две.

---------- Сообщение добавлено в 18:00 ---------- Предыдущее сообщение размещено в 17:59 ----------

ZVERSKY, не надо так делать. Есть вполне нормальная отдельная команда.

ZVERSKY
04.06.2012, 17:15
ZVERSKY, не надо так делать. Есть вполне нормальная отдельная команда.
Спасибо, буду знать:jc_handshake:

B.U.G.O.R.
04.06.2012, 19:43
А я вот давным-давно мусолю одну тему, но реализовать я ее в силу не понимания х-пути и отсутствия нужных правил, не могу. Идея касается грузооборота в ТРСе. Она, конечно, будет выгодна на реально огромных картах, наверное, даже пока что БМО с Родиной маловаты будут. А БАМ не пойдет из-за отстутсвия узлов. Суть в чем, в первую очередь, вся индустрия должна быть рабочей с функцией погрузки\выгрузки. Затем, какое-то предприятие, которое потребляет, дает "заказ" на нужный ему груз в необходимом количестве. Другое предприятие, которое производит этот груз, реагирует на предприятие и активирует маневровый той станции. Маневровый либо забирает вагоны с предприятия, если там вагоны стояли, либо заталкивает и загружает их, потом вытягивает на станцию. Сама индустрия задает вагонам станцию назначения. Это можно сделать каким-нибудь правилом, т.е. привязывать станцию назначение не в свойствах вагона, а типа в каком-нибудь отдельном правиле, типа соответствия названия вагона его станции. Так же и запросы индустрией можно сделать. Затем, каким-то волшебным образом надо сделать типа х-пути, только более глобального, то бишь не в пределах станций, а в пределах всей карты маршрут собирать. Т.е. он будет определять каким образом этот вагон должен будеь приехать куда нужно, через какие станции. Конечно, тогда в его списке нужно будет вбить вручную, еще в редакторе, что-то типа последовательности всех станций и узлов. Там он собирает глобальный маршрут ему. Затем, все как по настоящему, подбирается сборный до ближайшей узловой станции, эти вагоны цепляются маневровым к сборному, тот везет их на эту узловую станцию. Или же манеровый сам отвозит их до сортировки, как это тоже часто практикуется. Там же идет определение всех вагонов, прибывших отовсюду до другой узловой станции. Там же и определение, к примеру, до еще какой-нибудь другой станции. Так же сделать что-то типа ожидания набора необходимого количества вагонов одной и той же станции назначения. Так же можно собирать, допустим, состав, следующий через ближайший узел до другого, т.е. перепрыгивая шаг маршрута. Таким можно давать особую пометку и их тот же х-путь будет пускать через обходы станций, чтобы не засирать парки лишний раз. Вот, собрали состав, вызвали локомотив и поперли состав. И так далее до конечной. В итоге, на станцию назначения приедут с такого же разборного вагоны, которые маневровый отцепит и отвезет на предприятие. Таким образом, мы получаем нелинейной движение товарняков, рандомный набор вагонов в составе, и самый главный плюс, что движение получается логичным, что они не просто так катаются. Конечно, это отнимит жестоко много производительности, как я это представляю, но для бесконечных сессий, это просто офигительно было бы. Так же я думал о том, как сделать автоматический порпуск товарняками пассажирский и электричек, плюс движение по однопутке. При чем, с приоритетами, т.е. к примеру графиковые пассажирские надо так и проводить по графику, а вот товарняки пофигу как. Потому что это все можно поддать логике IF-THEN-ELSE запросто. Но проблема в том, что язык скриптов я не моуг понять, поэтому рассуждать подобные идеи могу только алгоритмами. Хотя, я видел, что ТРам уже что-то сделал по однопутке, это радует очень. В-общем, у меня такое чувство, что скоро бесконечные сессии будут в порядке вещей, будут идти вместе с голой сессией, с настроенной сигналкой к каждой карте.

max1982
04.06.2012, 19:59
Всем привет! Ребят вот тоже пытаюсь сделать сценарий вот на этом скрине http://imagehost.spark-media.ru/i4/DF77204D-2D8A-E191-46E2-76B5077BC687.jpg бот управляет тепловзом я же стою на ВЛ80 подскажите как сделать что бы бот открыл мне сигнал и мог поехать! Как сделать что бы грузовые вставали на станциях для пропуска пассажирских поездов мвпс? что бы я так же становился на станциях для пропуска! Спасибо!

Эрендир
04.06.2012, 20:23
B.U.G.O.R., всё что ты описал и так можно уже сделать с помощью sU + zxPath + новая версия Бото-машиниста которая скоро выйдет.

max1982, для этого есть система маршрутизации.

max1982
04.06.2012, 20:30
Эрендир, а как зделать что бы она работала что это за команда за такая?

Эрендир
04.06.2012, 20:38
Это набор команд и правил. Описание есть на trainz.org.ru и на этом форуме в соседней ветке. Саму систему можно скачать на этом сайте.

TRam_
04.06.2012, 20:40
Потому что это все можно поддать логике IF-THEN-ELSE запросто.Как бы позавчера if -then -else появилось уже и в виде команды машиниста. https://forum.trainzup.net/showthread.php?t=2098&page=3 . Но в любом случае то что ты сказал - явно не полный список. Если не читал, это есть тут - http://trainsim.ru/forum/showthread.php?t=11836&page=2

max1982
04.06.2012, 20:41
Эрендир дай пожалуйста ссылку на эту систему я тебе в аську стуканул авторизуй пожалуйста))

TRam_
04.06.2012, 20:43
Прямая ссылка на систему и так есть на trainz.org.ru . Ты хоть перегляди что это такое, а то ж и спросить по-делу ничего не сможешь.

max1982
04.06.2012, 20:48
z7-xPath это оно?

TRam_
04.06.2012, 20:51
да

max1982
04.06.2012, 20:52
TRam_, ну я ей пользуюсь не непойму как сделать что бы поезда друг другу сигналы открывали

TRam_
04.06.2012, 21:02
Должна открывать. Одновременно с переведением стрелок.

max1982
04.06.2012, 21:12
TRam_, ну хорошо а как указать что бы именно с моего пути открылся сигнал что это за команда за такая?

TRam_
04.06.2012, 21:16
Ну во-первых, в будке должен быть сгенерирован маршрут от того светофора, перед которым стоит твой поезд, до следующего (например до входного следующей). А далее вариантов куча:
1) правилом с заданием маршрута
2) командой с заданием маршрута
3) вручную, из браузера
4) командой с автоматическим выбором маршрута
5) правилом с автоматическим выбором маршрута

.....

max1982
04.06.2012, 21:23
Ну во-первых, в будке должен быть сгенерирован маршрут от того светофора, перед которым стоит твой поезд, до следующего (например до входного следующей). А далее вариантов куча:
1) правилом с заданием маршрута
2) командой с заданием маршрута
3) вручную, из браузера
4) командой с автоматическим выбором маршрута
5) правилом с автоматическим выбором маршрута

.....
ну я генерировал стрелки сигналы

---------- Сообщение добавлено в 22:23 ---------- Предыдущее сообщение размещено в 22:20 ----------

TRam_, вот тепловоз у меня следует до следующей станции с приемом на боковой путь и остановкой у красноного http://imagehost.spark-media.ru/i4/E7CCF88A-5558-9B8C-D2E4-0EA71CEA3EDA.jpg

TRam_
04.06.2012, 22:00
Вроде бы правильно. Светофоры должны открываться сами. Покажи в режиме машиниста браузер маршрутов, открытый на той станции, по которой состав проследует без остановки. Уже когда состав пришёл в движение.

max1982
04.06.2012, 22:18
TRam_, прости но я щас тебя непонял! где взять этот браузер? да у меня то всего как ты видишь один поезд и он только следует до следующей станции

TRam_
04.06.2012, 22:20
Вот этот - http://trainz.org.ru/mediawiki/index.php/Z7-xPath#z7-xPath_PrimaryBrowser

max1982
04.06.2012, 22:27
вот эти есть http://imagehost.spark-media.ru/i4/A05EF369-9E0A-6013-DAAC-E570CA6B5629.jpg

TRam_
04.06.2012, 23:26
И что, не отображаются в "машинисте"? Ты явно что-то не то делаешь.

Sergey_ns
16.06.2012, 15:33
Создал сценарий по БАМу на ВЛ80. примерно на 4 часа езды. Кому интересно могу скинуть.

---------- Сообщение добавлено в 15:33 ---------- Предыдущее сообщение размещено в 15:29 ----------

на 12шку

Эрендир
16.06.2012, 17:45
Так взял бы и выложил. Всем надо.

Donate with PayPal button

New New