Форум Trainsim

Форум Trainsim (http://www.trainsim.ru/forum/index.php)
-   TrainZ - Маршруты и сценарии (http://www.trainsim.ru/forum/forumdisplay.php?f=24)
-   -   Система маршрутизации z7-xPath (Система расчёта поездных маршрутов стрелочная будка) (http://www.trainsim.ru/forum/showthread.php?t=11836)

TRam_ 02.11.2010 03:16

Эх, знал бы из-за чего там у тебя появились кривые маршруты...

да, если что - [url]http://trainz.org.ru/mediawiki/index.php/Z7-xPath[/url]

Если хочешь тот баг исправить радикально - вписывай строку


priority=Old_sp.GetNamedTagAsInt("object_priority",1002);


в скриптах, содержащих в имени "schedulecommand" в командах задания автомаршрутов, вместо этой
[url=http://radikal.ru/F/s003.radikal.ru/i201/1011/a8/6949bd177f91.jpg.html][img]http://s003.radikal.ru/i201/1011/a8/6949bd177f91t.jpg[/img][/url]

NickLon 02.11.2010 04:37

Нашел я тебе зарытую собаку!
[QUOTE=TRam_;214342]команды считают путь занятым, если стрелка с той стороны пути занята маршрутом и направлена на этот путь.[/QUOTE]
Вот здесь и ищи. Скорее всего, это тоже самое, как если бы я задал маршрут и с одной, и с другой стороны с одним и тем же приоритетом. То бишь, на один и тот же путь без вариантов.
С одной стороны, "Собрать маршрут приоритета от 1 до 14 или главный (0)" и с другой стороны то же самое. Когда первый поезд занимает этот самый маршрут, и для второго поезда ту самую стрелку "с той стороны", то второй поезд при попытке исполнить ту же саму команду ("собрать маршрут приоритета от 1 до 14 или главный (0)") впадает в ступор. До тех пор, пока не освободится "стрелка с той стороны". Но! этого мало. Нужно сделать Abandon Schedule и вновь задать команду "собрать маршрут приоритета от 1 до 14 или главный (0)". Вот тогда маршрут соберется в обход занятого главного. Но не потому, что главный занят, а потому, что "стрелка с той стороны" свободна. Вот отсюда и копай.
Abandone Schedule обеспечивает нам прерывание зациклившегося цикла, а коль стрелка свободна, дальнейшее зацикливание не происходит.
Что-то ты перемудрил с "... или главного (0)".

DonCapone 02.11.2010 08:56

Можно ли сделать(или есть уже?) правило, которое будут задавать маршрут указанного приоритета всем поездам? То есть, например, поставить перед станцией триггер, и при его проезде любому проезжающему его поезду будет задаваться маршрут установленного приоритета.
Это нужно чтобы автоматизировать процесс пропуска поездов без Z7_dnc.
Есть правило AddAnyPath, но оно только для определённого поезда, а надо бы как-то, чтобы для любого поезда, проезжающего определённый триггер.
Также было бы неплохо сделать правило разбирающее маршрут, какую-нибудь RemovePath, действующую по аналогии с AddPath, но не добавляющую маршрут, а убирающую.

TRam_ 02.11.2010 09:39

[QUOTE]Также было бы неплохо сделать правило разбирающее маршрут, какую-нибудь RemovePath, действующую по аналогии с AddPath, но не добавляющую маршрут, а убирающую.[/QUOTE]нельзя. Разборка маршрутов слишком крива (без перепроверки занятости стрелок, без выдержки положенного времени) и должна применяться только в процессе тестирования.

[QUOTE]То есть, например, поставить перед станцией триггер, и при его проезде любому проезжающему его поезду будет задаваться маршрут установленного приоритета.[/QUOTE] пока этого можно добиться, вручную указав команды открытия маршрутов в настройках портала. В противном случае приём пассажирского на 12 путь не будет редкостью.

DonCapone 02.11.2010 10:31

[QUOTE]пока этого можно добиться, вручную указав команды открытия маршрутов в настройках портала. В противном случае приём пассажирского на 12 путь не будет редкостью.[/QUOTE]
Задавать зараннее команды - не вариант: очень большая вероятность, что что-то сработает не так. После выпуска поезда должны жить своей жизнью, без участия игрока.
Пока чего-то подобного можно добиться, используя правило schedule at trackmark, но если на него наедет поезд игрока - будет очень плохо. Надо бы что-то, что бы собирало маршруты без выдачи команд поездам. А исключить 12е пути можно ведь приоритетом, разве не так? К тому же trigger check позволяет определять типы поездов - тогда можно сделать, чтобы при проезде триггера грузовым локомотивом ему задавался маршрут 3-5 приоритета, а пассажирским 0-2. Это конечно тоже не лучшее решение(тогда все грузовые будут ехать по отклонению), но всё же как вариант. В любом случае, правило, автоматически задающее маршрут приоритета, необходимо.

NickLon 02.11.2010 11:50

[b]DonCapone,[/b] а расскажи поподробнее, что ты там задумал? Что это за "автоматизированный пропуск поездов без z7 dns"? Это ты имеешь ввиду поездов, которыми управляет игрок, а не бот?
И ещё. У тебя порталы с xPath дружат? Ну и с сигналкой тоже. Не мог бы вкратце рассказать как и что организовал?
P.S. Спрашиваю не в личке, потому что знаю как минимум ещё одного человека, которого это тоже интересует. Он сюда заходит.

TRam_ 02.11.2010 12:50

[QUOTE]Задавать зараннее команды - не вариант: очень большая вероятность, что что-то сработает не так. [/QUOTE]не вижу никакой разницы между срабатыванием команды и выполнением предполагаемого правила. Разве что от настройщика потребуется больше времени на задание открытия и подготовки маршрутов нужных приоритетов. (ведь поезда должны ехать на нужное им направление, и задавать это надо настройщику, согласно приоритетам выходных маршрутов)

[QUOTE]И ещё. У тебя порталы с xPath дружат? Ну и с сигналкой тоже.[/QUOTE]карта-пример, которую я выкладывал в начале темы (которая с чмухами, ездящими автоматически по однопутке с 3 станциями) - там показана правильная организация порталов.

[QUOTE]Это ты имеешь ввиду поездов, которыми управляет игрок, а не бот?[/QUOTE]для игрока предназначена команда AddAnyPath. (так как поезд игрока заранее известен)

DonCapone 02.11.2010 13:37

[QUOTE]DonCapone, а расскажи поподробнее, что ты там задумал? Что это за "автоматизированный пропуск поездов без z7 dns"? Это ты имеешь ввиду поездов, которыми управляет игрок, а не бот?[/QUOTE]
Ну например, в начале тупо задал боту STW drive, и можно про него забыть. Светофоры ему будут открываться автоматически, если главный путь занят - он поедет по обходному, и т.п. Ничего особенного. В принципе грузовые можно запускать по такому принципу с командами ехать до красного3->задать маршрут приоритета->повторить. Но вот с электричками, которым надо ставить команды на остановки, так не получится.

[QUOTE]И ещё. У тебя порталы с xPath дружат? Ну и с сигналкой тоже. Не мог бы вкратце рассказать как и что организовал?[/QUOTE]
Не знаю с чем именно, но с чем-то они не дружат точно.

Пример1: В моей сессии бекасово-поварово3, На участке поварово3-лукино действует портал, выпускающий поезда немного дальше станции поварово3. Также на всей карте есть ещё несколько потребляющих порталов.
Замечены глюки:
Некоторые потребляющие порталы в какой-то момент перестают потреблять.
Иногда порталы потребляют только локомотив, а вагоны едут дальше. Такое замечено только с составами, в которых после локомотива идут изотермические вагоны Славы, эти вагоны сами по себе глючные. Возможно проблема в них.
Выпускающий портал в какой-то момент выпускает только 1 секцию локомотива, вообще без состава, дальше всё опять идёт нормально.

Пример2: Пробовал просто поставить несколько выпускающе-потребляющих порталов.
Результат плачевен: выпускались только по 1 секции, реже ещё 2-3 вагоны. Ни одного целого состава не выехало. Правда там была сигналка з6, которую я даже не устанавливал специально.

Пример3: Сейчас делаю сессию, там есть портал, выпускающий по команде электричку. С ним вроде всё работает. Второй портал по середине маршрута должен был выпускать грузовые поезда, вот только выпускает он только 2 секции лока и 1 вагон, причём так все поезда. Пока вот думаю как исправить.

Собственно, теперь порталы - у меня основная головная боль, если с маршрутизацией как-то более-менее уже можно разрулить, порталы портят настроение.

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

[QUOTE]не вижу никакой разницы между срабатыванием команды и выполнением предполагаемого правила. Разве что от настройщика потребуется больше времени на задание открытия и подготовки маршрутов нужных приоритетов. (ведь поезда должны ехать на нужное им направление, и задавать это надо настройщику, согласно приоритетам выходных маршрутов)[/QUOTE]
Это-то понятно, но можно ли таким способом ставить поезда под обгон автоматом, в зависимости от расстояния до обгоняющего поезда?

TRam_ 02.11.2010 13:55

[QUOTE]но можно ли таким способом ставить поезда под обгон автоматом, в зависимости от расстояния до обгоняющего поезда?[/QUOTE]спрашивал о необходимости создания такого правила на прошлой странице.Раз ответили, значит прийдётся его делать...

Kompozitor 02.11.2010 14:02

[QUOTE=DonCapone;214509] ставить поезда под обгон автоматом, в зависимости от расстояния до обгоняющего поезда?[/QUOTE]
Ты имел ввиду - если сзади у трафиковой электрички пусто, то остановим её на главном пути, а если "в спину дышит" скорый, то отведем её на боковой, чтоб разные команды выполнялись в двух вариантах. Это хочешь реализовать?

Фиг его знает, может дефолтными триггерными правилами?
А правилом "Driver Shedule Rule", что привязывается к имени машиниста, может быть? В смысле, стоит правило, проверяющее по триггеру проезд, скажем, скорого. И еще одно правило, проверяющее проезд через впередистоящий триггер, допустим, грузового, которому в этой ситуации надо свернуть "набок" и постоять на красном. Если второе правило сработало, то под ним выполнится "Driver Shedule Rule", которое впендюрит новый блок команд боту впереди идущего поезда.:confused:

TCH39 02.11.2010 14:07

Доброго времени суток! TRam, а как влияет на маневровую работу xpath наличие соседней станции? Просто у меня такая ситуация
[URL=http://www.radikal.ru][IMG]http://s015.radikal.ru/i333/1011/f4/72668c708017.jpg[/IMG][/URL]
На картинки ст. А. За ней нет других станций, т.е. она тупиковая. При задании маневрового маршрута от Ч4 за М3 генерируется маршрут за М1. Чего только не делал, и леверы стрелок двигал, а маневровые на большее расстояние отодвигал, не хочет маршрут идти за М3 и всё. При этом, от М3 маршруты можно собрать на все 4 пути. Делаю за ст. А ст. Б, со стороны горловины, указанной на рисунке. Теперь появилась возможность сбора маршрутов за М3.

Другая ситуация. Такая же станция, но вместо М1 и М3 стоят маршрутные НМ1 и НМ2. Вторая станция сделана параллельно этой станции. По прибытию поезда на 4 путь задаю маневровый маршрут от Ч4 за НМ1. Маршрут собирается, но... с проходом по параллельной станции (от Ч4 по параллельной станции, по 1 пути от Ч1 и за НМ1). Делаю другую команду, от Ч4 за НМ2, меняем направление и от НМ2 за Ч2. ПС едет за НМ2, меняет направление и собирает маршрут за Ч4, опять на состав.

DonCapone 02.11.2010 14:47

[QUOTE]Фиг его знает, может дефолтными триггерными правилами?
А правилом "Driver Shedule Rule", что привязывается к имени машиниста, может быть? В смысле, стоит правило, проверяющее по триггеру проезд, скажем, скорого. И еще одно правило, проверяющее проезд через впередистоящий триггер, допустим, грузового, которому в этой ситуации надо свернуть "набок" и постоять на красном. Если второе правило сработало, то под ним выполнится "Driver Shedule Rule", которое впендюрит новый блок команд боту впереди идущего поезда.[/QUOTE]
Да триггерами-то можно, тогда и набора команд не понадобится, просто маршруты собирать. Но если реализовывать задумку, то придётся ставить кучу триггеров по всей карте, писать ещё большую кучу правил. А теперь представим, что на карте не одна электричка и скорый, а 40-60 поездов, и у них 4 приоритета:
1. Скорый пассажирский
2. Пригородный
3. Важный грузовой
4. Обычный грузовой
И чтобы они обгоняли друг друга в нужных приоритетах, то это вообще долбануться можно.

Kompozitor 02.11.2010 15:10

Ну да, так оно и есть. Вот если б правила можно было упаковывать и копировать, как команды. я писал как-то Петровичу, царствие небесное ему, в "Вопросах Аурану" насчет того, чтоб сделать доступными настройки правил сессии в текстовом редакторе. Это в файлах "Profile" вроде.
Так тогда проще скриптом написать СЦЕНАРИЙ, а не сессию, как это RMM сделал в Абхазии? Хотя там сессия, построенная правилом Custom Script.

[QUOTE]то придётся ставить кучу триггеров[/QUOTE]
Эта куча уже есть в виде светофоров z7.:)

DonCapone 02.11.2010 15:22

[QUOTE]Так тогда проще скриптом написать СЦЕНАРИЙ, а не сессию, как это RMM сделал в Абхазии? Хотя там сессия, построенная правилом Custom Script.[/QUOTE]
Ммм... разве сессия и сценарий это не одно и то же?
[QUOTE]Эта куча уже есть в виде светофоров z7.[/QUOTE]
Проще новых триггеров повтыкать, чем эти 6(7?) значные цифры запоминать :)

Кстати вот что интересно: хпатч ни в какую не хочет считать Ч2 на станции Апрелевка, ну вот вообще никак, я уже и триггерами "стоп" почти всю станцию застроил кроме главного пути, и всё равно маршруты от светофора Ч2 не просчитываются. От Ч4 всё считается нормально.
Что-то подобное было со станцией Манихино2 - там тоже всё просчитывалось только до входного светофора следующей станции.

Kompozitor 02.11.2010 15:36

[QUOTE=DonCapone;214538]Ммм... разве сессия и сценарий это не одно и то же?[/QUOTE]

Не-а. Сессия - kind "profile", сценарий - kind "activity".Вспомни старые добрые поездки по Хайленд Веллей и Австралии. Это сценарии, как и те, что есть в ТРС2009-2010 три штуки.

ЗЫ:, лучше и триггерные имена светофоров переменить, к примеру, на "Ч2-Aprelevka"


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

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
© 2001-2019, Администраторы и разработчики Клуба Trainsim