Форум 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=9953)

TRam_ 09.03.2010 01:43

в пункте 3 не забудь рандом сделать :)

genesis 09.03.2010 13:12

А он нужен? Вряд ли кто-либо будет ползать по вагонам проверяя сколько именно загрузилось. Важно лишь затрачиваемое время.

TRam_ 09.03.2010 14:42

Миша ! Я тебе сказал сделать рандом, заначит надо :) Тем более время тоже должно быть немного рандомным. А то что за смысл - " в этом сценарии на платформе А стоять 10 секунд, на платформе Б - 20 секунд " . Это не дело!

Shney 10.03.2010 10:16

А можно я выскажу предложение? Ну думаю можно.
Закрытие по гудку (клавиша H) это отлично, так же как и закрытие при трогании. Но может стоит ещё добавить закрытие по свистку (клавиша b) Потому что в реальности редко кто даёт пронзительный длинный гудок в пригороде. Ну а если нет так нет.
И вопрос, а можно ли как то с помощью этой штуки реализовать следующее:
Имеем путь. По бокам от него платформы. Тоесть, электра подъезжая к станции может открыть двери с одной стороны и с другой. Так вот можно ли сделать как то так,что бы некоторые поезда открывали двери на одну сторону, а другие на другую?

TRam_ 10.03.2010 11:32

кстати, у тебя какой трс? если 2009, то можешь закрывать и по t. А вообще подумаю насчёт b

по второму - думаю пока нет. Перед началом игры можно выбирать сторону (правый/левый), для отдельных сценариев вполне достаточно. Но вот менять эту сторону в процессе игры...

Shney 10.03.2010 11:39

[QUOTE=TRam_;160809]кстати, у тебя какой трс? если 2009, то можешь закрывать и по t. А вообще подумаю насчёт b[/QUOTE]
2009 и 2010. Сейчас уже всё на 2010 перетаскиваю.
[QUOTE=TRam_;160809]
по второму - думаю пока нет. Перед началом игры можно выбирать сторону (правый/левый), для отдельных сценариев вполне достаточно. Но вот менять эту сторону в процессе игры...[/QUOTE]
Перед началом я знаю :)
Кстати,а нужно именно точное физическое присутствие ПС на тригере для открытия дверей? Или существует какой то радиус действия, где тригер "захватывает" ПС? Я к тому что если не доехать например 1 метр физически до места установки тригера? Двери не откроются?

TRam_ 10.03.2010 14:59

радиус действия около 50 м

genesis 10.03.2010 16:01

20, если быть точным. Радиус триггера можно настроить там, где находится список с маркером, триггером и т.д.

genesis 20.03.2010 00:10

Такс, вот и итог проб и ошибок: [URL="http://narod.ru/disk/18923127000/RF%20PassStationTrigger.cdp.html"]http://narod.ru/disk/18923127000/RF%20PassStationTrigger.cdp.html[/URL]
Работает: начало и прекращение погрузки по Т, показ HUD'а по двойному Т.
В худе можно выбрать вид процесса, также отображается его прогрессбар.
В настройках указывается сторона платформы, имя, путь (в будущем это будет использоваться во всяких САВП), вид трафика (в пригородном, если поезд весь не влез, то накладывается штраф на скорость посадки/высадки), скорости посадки/высадки по умолчанию (скриптованные вагоны должны сами предоставлять эту инфу), длину платформы и величину трафика.

Все числа в таблице трафика — в процентах от общей емкости состава. Я посчитал, что это лучший вариант, так как с одной платформы могут отправляться поезда разной вместительности.
Возможно в дальнейшем стоит различать вид трафика не только по настройке в триггере, но и по поезду. Для этого можно создать отдельный продукт Local Passengers (пригородные пассажиры :)).

Касательно скриптового управления. Информация получается через GetProperties() от вагона. При наличии в нем тега [I]scripteddoors[/I] ожидается, что за ним следует два числа — скорость погрузки/выгрузки слева и справа, пассажиров в секунду, дробные значения поддерживаются.
Вопрос, стоит ли различать скорость посадки и высадки (читать 4 числа)?

Месседжей-уведомлений есть три, отсылаются они поезду от триггера:
"PassStationTrigger.Notify", "ProcessStarted <тип процесса>" — о начале процесса
"PassStationTrigger.Notify", "ProcessCompleted" — об успешном его завершении
"PassStationTrigger.Notify", "ProcessAborted" — о неуспешном завершении.

Завершить процесс (в том числе закрыть двери) можно второй раз нажав на Т. Если сделать это до загорания на худе зеленого огня, то процесс будет считаться незавершенным.

О маневрах во время посадки/высадки: они не поддерживаются. Нужно или запускать процесс после их, или завершать до. Из-за невозможности надежно опираться на объект поезд при маневрах, а также необходимости дублировать процесс для двух расцепившихся частей, или сливать в один при сцепке код сильно осложнался, раздувался и работал ненадежно. Решение, которе сейчас у меня назрело — не использовать поезд, а проводить процесс над массивом вагонов. В принципе для этого уже многое в коде готово, но я не могу более заниматься этим маркером, ибо стоят проекты важнее. Кто желает, может этим заняться, скрипт свободен для некоммерческого использования.

АПИ, команды машинисту, правила сессии: их пока нет. Причина указана выше. Но, точно также, база под это дело заложена.

Пока выходные, я смогу исправить в работе баги, если таковые обнаружены. Потом уже мне будет не до этого триггера.

TRam_ 20.03.2010 00:27

[QUOTE]Из-за невозможности надежно опираться на объект поезд при маневрах, а также необходимости дублировать процесс для двух расцепившихся частей, или сливать в один при сцепке код сильно осложнался, раздувался и работал ненадежно[/QUOTE]прицепные вагоны - не редкость... Постараюсь посмотреть и, может, что-то придумаю

TRam_ 21.03.2010 05:50

багов вроде не обнаружил. Навесил "внешнюю наблюдательную систему по слежению за расцепкой". Вместо того, чтобы сливать процесс в один, предлагаю просто прекращать старый (и запускать подготовку к новому). т.е.
1)при сцепке/расцепке погрузка в старом поезде прекращается
2)в образовавшемся после сцепки поезде можно выполнять загрузку
3)при отъезде далеко от триггера ожидание завершения загрузки прекращается.


[url]http://ifolder.ru/16909453[/url]

тестировал на самые извращённые варианты манёвров у платформы, но багов и в этом варианте выудить не удалось

genesis 21.03.2010 11:56

Пойдет :)

TRam_ 21.03.2010 19:21

в общем то, что ночью написал, сегодня перепроверил. Как говорится, [URL="http://dump.ru/file/4463252"]"финал"[/URL]

способен переваривать любые манёвры на станции в любых количествах

TRam_ 22.03.2010 00:44

нет, оказалось что не финал. Нашёл рекурсию в логике работе, пришлось исправлять.
[url]http://ifolder.ru/16920407[/url]

думаю, теперь вполне рабочий

TRam_ 22.03.2010 02:02

в Д1 для работы с этим триггером дописываем в конфиге

queues
{
passengers
{
size 76
initial-count 12
passenger-queue 1
product-kuid <kuid:-3:10060>
}
}

:)


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

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