Форум Trainsim

Форум Trainsim (http://www.trainsim.ru/forum/index.php)
-   TrainZ - Маршруты и сценарии (http://www.trainsim.ru/forum/forumdisplay.php?f=24)
-   -   Организация движения ПС, появляющегося из порталов (http://www.trainsim.ru/forum/showthread.php?t=13619)

NickLon 02.02.2011 13:21

Организация движения ПС, появляющегося из порталов
 
Всем привет!
Тема возникла в связи с необходимостью организовать движение ПС, который появляется из порталов, в сессии с помощью правил в определенной последовательности. Проблема заключается в том, что правила, которые существуют подразумевают явное указание в редакторе или ПС или машиниста. Но в редакторе то их не существует! Они уже в Drive session появятся.
Например, Schedule Rule, Drive Shedule Rule и т.д.
Задача в следующем. Когда ПС наедет на маркер, в зависимости от того, что или кто именно наехал вставить определенные команды машинисту. SheduleAtTrakMark не подходит, т.к. сначала нужно определить что именно или кто наехал на маркер. Если организовывать подчиненные правила, то две проверки в одной иерархии подчинения не сработают...
Как быть?:confused:

Kompozitor 02.02.2011 13:56

Животрепещущую тему поднял. Лично я давно мечтаю о команде, которая бы приписывала уникальное имя ПСу, что выехал из портала.

[QUOTE] в зависимости от того, что или кто именно наехал[/QUOTE]

А какже проверка по именам машинистов?

Опиши по порядку схему правил, хочется у себя попробовать, что и как. Или кинь тестовую сессию на какой нибудь дефолтной карте с дефолтным ПС.

NickLon 02.02.2011 15:08

[QUOTE=Kompozitor;238322]
А какже проверка по именам машинистов?
[/QUOTE]
Ну и что толку? Ну проверил командой Consist Check. Там можно указывать тип ПС (точнее, сам ПС) из всего списка, а не только из того, что стоит на карте. Но дальше то мне всё равно, кому-то конкретно нужно список команд всучить.
[QUOTE]
Опиши по порядку схему правил, хочется у себя попробовать, что и как.
[/QUOTE]
Chack trackside
подч- Consist Check
подч- подч- а вот тут что!?
Любому набору команд требуется указание кому именно их присвоить. Вот тут и загвоздка.

DonCapone 02.02.2011 15:47

Я понял в чем дело. Решал я такую проблему, и кстати тут где-то описано такое решение.
Во-первых, в некоторых сессиях командой driver schedule rule можно задавать команды машинистам, которых нету на карте. Это было на дефолтной карте Avery-drexel. Композитор выдвинул теорию, что для такого эффекта необходима уникольность имён машинистов(в дальнейшем это подтвердилось для дефолтной карты). Но на других картах мне достичь такого не удавалось. Потому, решение только одно:
Создаём на карте ПС с машинистами, имена которых идентичны именам поездов в портале(тех, которым ты собираешься задавать команды). Это будут "фиктивные" машинисты. В редакторе ты назначаешь через driver schedule rule команды нужному машинисту, так как он есть на карте. Чтобы небыло одинаковых машинистов, делаешь так, чтобы в начале сессии "фиктивные" машинисты сразу уехали в порталы и пропали. Затем команды будут задаваться портальным машинистам. Мной это было опробовано и проверено в сценарии: [url]http://www.trainsim.ru/forum/showthread.php?t=13473[/url] Правда там команда задаётся редко, и может не задаться вообще(события сценария построены по рандомному принципу).

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

NickLon 02.02.2011 21:19

О! Эврика! DriveScheleRule! Можно задать имя одного машиниста. Ну и хрен с ним, если на маршруте боты, таскающие грузовые составы у меня будут все Андреи, а пассажирские - Томы. Только в редакторе они должны по одному существовать на момент заведения правила!
Это, правда, только теория. Сейчас проверю работоспособность этой идеи.

NickLon 02.02.2011 21:57

Не, не взлетит... Даже без теста прозрел. Если на карте два Андрея - кому из них команды присваивать? Коллапс...
А что касается уникальности имен машинистов, портал может штамповать один и тот же поезд хоть три подряд. И вот уже не уникальны...
Думаем дальше...

DonCapone 03.02.2011 07:30

[QUOTE]Не, не взлетит... Даже без теста прозрел. Если на карте два Андрея - кому из них команды присваивать? Коллапс...[/QUOTE]
Команды даст тому, кто появился первый.
[QUOTE]А что касается уникальности имен машинистов, портал может штамповать один и тот же поезд хоть три подряд.[/QUOTE]
Да, тут только отказ от рандома поможет.
[QUOTE]Думаем дальше... [/QUOTE]
Остаётся только понять, в каком случает DSR позволяет задавать имена всем машинистам, даже тем, которых нет на карте. Попробуй убрать всех машинистов из правила Driver setup, тогда появится возможность задавать через DSR команды любому из имеющихся машинистов. Потом снова поставишь машинистов в driver setup.

Kompozitor 03.02.2011 08:16

[QUOTE=NickLon;238439]
А что касается уникальности имен машинистов, портал может штамповать один и тот же поезд хоть три подряд.[/QUOTE]
Насчет "подряд" - это же можно, видимо, урегулировать триггерными командами, чтоб первой командой в плане триггерного бота было ожидание какого-либо события, например, дождаться, пока "тёзка" исчезнет в портале.
Мы вот с Don Capone где-то тут перетирали насчет необходимости бота, который будет ездить где-то в лесу, наступая на триггеры через определенное время и выполняя роль часов.

Лично у меня в портальных делах свой интерес - к примеру, должны встретитmся два поезда в пункте смены локомотива и поменяться локами - пофиг, что кто-то раньше или позже прибудет, лишь бы в портале сидел бот и по прибытию поезда через проверку уникального имени вагона был готов сменить лок.

NickLon 03.02.2011 13:43

Да, кстати, а как задать появление ПС из портала не рандомно, а по порядку, как задал?
А вообще, я вот подумал, что использование порталов для появления и исчезновения ПС годится только для покатушек. Если делать серьёзную сессию/сценарий, то в них ПС должен использоваться по назначению. То есть, вагоны - разгружаться и загружаться, соответственно нужно устраивать оборот вагонов. Локомотивы должны "жить" в депо и становиться под состав по мере необходимости и т.д.
Так что, не так страшен черт, как его малютка. :-)

DonCapone 03.02.2011 16:15

[QUOTE]Да, кстати, а как задать появление ПС из портала не рандомно, а по порядку, как задал?[/QUOTE]
Отвечает Капитан Очевидность: в настройках портала Order to emit вместо Random поставить Sequential
При условии, конечно, что ты изначально добавил поезда в портал в нужном порядке.

[QUOTE]Если делать серьёзную сессию/сценарий[/QUOTE]
Твои планы ещё страшнее планов Композитора :)

Dublin 03.02.2011 16:20

[QUOTE=DonCapone;238616]Твои планы ещё страшнее планов Композитора :)[/QUOTE]

это нереальный объем работ:crazy:

DonCapone 03.02.2011 16:23

Ну... объём работ ещё может уложиться в голове. Нереально время, нужное на тесты. При создании сессий работа - это процентов 30 времени. Остальное - тесты.

Скорее ауран допилит мультиплеер/взломают мультиплеер, и такие функции будут выполнять игроки, чем кто-то заставит грамотно работать по такому алгоритму ботов.

Dublin 03.02.2011 16:25

О да, я этого и жду)
Процентов 30...если куча крупных станций и ПС, и каждому ПС нужно куча заданий...проценты резко повысятся:)

DonCapone 03.02.2011 16:45

Нет. Тут затраты на тесты растут пропорционально затратам на разработку. Особенно ближе к концу создания. Ну... конечно если у тебя на этих крупных станциях куча ПС должна выполнить задания минут за 20, то да, тут время на тесты не много потратится :)

NickLon 04.02.2011 12:47

Ууу, как всё запущено! Да тут не только и не столько в порталах дело, в конце концов, можно обойтись и без них, а сколько вообще о необходимости какой-то конструкции, которая бы четко проверяла кто/что именно проехало по маркеру, прежде, чем командой ScheduleAttrackMark изменять набор команд проехавшему.
У меня маневровый на станции во время маневра наткнулся на маркер с командами, предназначенными поездному составу. А как это обойти с помощью правил (собственно, и команды правилом добавляются) пока не придумал и подозреваю, что весьма затруднительно это сделать, если вообще возможно.


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

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