Знаете, что меня всегда не устраивало в этом скрипте? То, что этот скрипт больше подходит для моделирования остановки трамвая, ну, может быть, междугороднего автобуса, но уж никак не пассажирской станции.
Час пик утром, час пик вечером… Что значит час пик? Что значит утром? Не знаю, как пассажирские поезда ходят там «за бугром», но у нас они ходят по расписанию. И пассажиры, как правило, появляются на станции согласно этому расписанию, а не подобно тому, как это происходит на остановке городского общественного транспорта.
Четыре градации пассажиропотока. Причем, судя по нему, эти градации более свойственны опять же остановке трамвая. По крайней мере, у меня всегда возникали трудности при моделировании некоторого остановочного пункта в глуши, на котором должны появляться пассажиры максимум с десяток в сутки (хотелось сделать «остановку по заявкам пассажиров»).
И наконец, самое главное. На вышесказанное ещё можно как-то закрывать глаза, не обращать внимания, другое же дело, когда разработка маршрута упирается в принципиальную невозможность реализовать задуманное традиционными методами, не прибегая к извращениям. Речь о том, что ну нельзя в Trainz создать нормальную невидимую многопутную пассажирскую станцию. Казнить того особо одаренного вундеркинда из Auran, автора … впрочем, не будем говорить кого… Скажем, что благодаря нему каждый путь, каждая пассажирская платформа независима и уникальна (до сих пор не могу до конца оценить гениальность этой божественной мысли ). Подходит поезд на главный путь, сажает-высаживает пассажиров, отправляется, следующий поезд также прибывает на главный путь. А на остальных платформах тем временем накапливается народ. Через два часа на платформе заросшего пятого пути скопившаяся толпа пассажиров требует, чтобы очередной ЭД9М наконец-таки взялся за расчистку кустарника с пути и полировку рельсов до былого блеска. В то же время первая платформа все время почти пустая, а поезда возят воздух. Все это больше напоминает остановку пригородного автобуса, состоящую из нескольких пунктов, от каждого из которых должны отправляться разные маршруты.
______________________________________________________________________________________________
Впрочем, можно сколько угодно тыкать пальцами в несовершенство скрипта GenericPassengerStation, ничего это не изменит.
Ещё полгода назад я собирался заняться разработкой невидимых станций для Trainz, обладающих обозначенной выше недостающей функциональностью. Однако все это время не хватало либо времени, либо мощи очередного всплеска энтузиазма для преодоления сил инерции лени. Всплески эти возникали каждый раз при виде пассажиров с того самого пятого пути, требующих привести путевое хозяйство в порядок и подать электропоезд на этот многострадальный пятый путь. И вот, наконец, удалось пересилить лень, заняться работой и, похоже даже, завершить её.
Итак, представляю вашему вниманию скромный (кстати, первый более-менее стоящий) продукт своей шарашкиной конторы – пакет IPS (расшифровывается как Invisible Passenger Station). Скачивать здесь: http://ifolder.ru/18894143. Сразу хочу сказать, что версия свежесостряпанная (Release Candidate, так сказать) и, возможно, глючная, так как обстоятельное «боевое крещение» мной пока ещё не производилось. Хотя тестирование на Trainz 2009 вроде бы прошло с успехом. Скриншоты, наверное, нет смысла выкладывать: ведь какие могут быть скриншоты у невидимой станции? Куча пассажиров, разве что… Так что лучше перечислю возможности пакета:
- Возможность объединять несколько платформ/путей в станцию с общей очередью. На какой бы путь ни прибыл поезд, пассажиры будут загружаются с этой общей очереди и исчезать равномерно со всех платформ.
- Изменяемая геометрия платформы (настраивается длина, ширина, высота и угол поворота платформы). Как в AJS Stations.
- Настраиваемый пассажиропоток. Может быть равномерным (задается количество пассажиров в час) или изменяющимся в течение суток
- Отключаемая блокировка состава при посадке-высадке («срыв стопкрана»). Можно отключить полностью, включить только для автопилота, включить полностью, или применить блокировку без срыва стопкрана.
Настраиваемая скорость погрузки-выгрузки
- IPS Platform – обычная пассажирская платформа с путем
- IPS Platform without path – платформа с пассажирами без пути (естественно без функции погрузки – разгрузки)
- IPS Path without platform – станционный путь без платформы (без пассажиров, но с функцией загрузки-выгрузки)
- IPS Controller – невидимый в режиме «Машинист» контроллер станции, управляющий присоединенными к нему платформами.
- IPS Station Lite – готовая однопутная пассажирская станция со встроенным контроллером (не требует присоединения к контроллеру)
Все объекты управляются станционным контроллером, к которому они присоединены. В частности, он распределяет пассажиров по платформам. Кстати, распределяются они таким образом, чтобы количество свободных мест по платформам стремилось к одинаковому значению. Общая очередь пассажиров принадлежит контроллеру.
Обращаю внимание, что объект IPS Station Lite подключать к контроллеру не нужно (да и не получится это сделать). Контроллер у него встроенный, и управляется он сам. Подключать другие объекты к этому объекту нельзя.
Как настраивать
Для настройки контроллера и платформ нужно открыть окно свойств объекта (выбираем вопросительный знак внизу в окне списка scenery-объектов и щелкаем по объекту на карте). Далее, собственно, устанавливаем значения нужных свойств.
Для присоединения объектов IPS Platform, IPS Platform without path и IPS Path without platform к станционному контроллеру нужно в окне свойств объекта (не контроллера) в самом низу выбрать Select Station (выбрать станцию) и выбрать в списке нужный контроллер. Если контроллера, который вы только что разместили на карте в списке не появилось, то нужно закрыть активное окно свойств объекта и открыть окно свойств этого контроллера (скрипт срабатывает при открытии окна), после чего вернуться обратно и повторить операцию с Select Station.
Назначение большей части свойств объектов, я думаю, понятна и без объяснения, лишь прокомментирую некоторые не очень очевидные свойства.
- Короткая платформа (да/нет) – режим, при котором во время посадки-высадки не учитывается длина и расположение поезда по отношению к платформе. При выключенном режиме посадка-высадка будет осуществляться лишь в вагоны, находящиеся у платформы, при включенном же – во все вагоны.
- Максимум пассажиров на платформе – ограничение количества пассажиров, которое может быть помещено (визуально) на данную платформу. Не ограничивает максимальное количество пассажиров в очереди контроллера (не уместившиеся на платформах пассажиры просто не будут отображаться).
- Блокировка состава при погрузке – метод борьбы со «срывом стоп-крана» в момент посадки-высадки пассажиров. Классический метод – стоп-кран срывается как обычно; классический расширенный метод - стоп-кран срывается только у автомашиниста; метод блокировки – управление составом блокируется, но стоп-кран не срывается; нет – состав не блокируется и стоп-кран не срывается
- Скорость игры – должно быть определено значение скорости игры (GameRate), установленное для данной карты (устанавливается в правилах сессии) (по умолчанию всегда 1)
P. S.
теперь у меня есть свой author id!