"Магическая" кнопка для авторасстановки по расписанию

Вопросы разработки OpenTTD, обсуждение новых сборок и патчей, решение проблем новых версий.

Модераторы: Smoky555, Группа модераторов

"Магическая" кнопка для авторасстановки по расписанию

Сообщение Lesnik » Вт май 22, 2012 16:35

Помнится, в документации написано, что такой кнопки нет, где-то год назад прикрутили возможность явно задать время отправления каждой машине, но это очень муторно, особенно для 30 самолётов на маршруте:).
У меня получилось сделать такую кнопку, причём она не требует внесения в игру никаких новых структур данных, по сравнению с первоначальной реализацией расписаний. Функция лишь однократно корректирует таймеры опозданий каждой машины. И вообще всё очень просто.
Перед нажатием на магическую кнопку надо составить правильное расписание маршрута, после нажатия на кнопку определяется последовательность машин на маршруте, исходя из времени последнего отправления или прибытия на станцию(смотря что произошло позже). Для машины,следующей с наибольшим интервалом, устанавливается нулевое опоздание, всем остальным машинам устанавливается такое опережение, чтобы они отправлялись со станций с одинаковыми интервалами, равными времени прохода круга, делёному на число машин.
Другая важная реализованная функция - это автоперестановка. Она корректирует индивидуальное расписание по машинам таким образом, чтобы они отправлялись со станции в том же порядке, в котором прибыли, независимо от порядка отправления с предыдущей станции.Это критически важно для поддержания порядка на длинных авиамаршрутах, где возможны огромные опоздания при поломках, а также для автобусов, которые не могут переставляться на уличных остановках. Например, самолёты вылетели в порядке (A,B), самолёт A по дороге сломался, и B прилетел раньше A. Тогда самолёту B будет сокращена стоянка, и далее он отправится по графику самолёта A. А самолёт A, соответственно, по графику самолёта B, если не пропустит вперёд ещё несколько:).
Я написал этот патч где-то год-два назад, в TTD давно не играю, если кому интересно, могу выложить бинарник потестировать, ну и адаптировать патч под текущую версию.
Lesnik
Пассажир
Пассажир
 
Сообщения: 2
Зарегистрирован: Вт май 22, 2012 15:24

Re: "Магическая" кнопка для авторасстановки по расписанию

Сообщение Wowan » Вт май 22, 2012 22:16

Выкладывайте, конечно!
Ну и заодно дубль на tt-forums, чтобы там народ прочувствовал.
Аватара пользователя
Wowan
Почетный тайкунер
Почетный тайкунер
 
Сообщения: 1383
Зарегистрирован: Вт сен 18, 2007 14:43
Откуда: трасса М1, Минск — Москва

Re: "Магическая" кнопка для авторасстановки по расписанию

Сообщение Regeneration » Ср май 23, 2012 08:31

Интересная фича )) Ждем с нетерпением))
Home, sweet home...
Аватара пользователя
Regeneration
Начальник станции
Начальник станции
 
Сообщения: 95
Зарегистрирован: Чт фев 10, 2011 21:42
Откуда: Украина / Ивано-Франковск

"Магическая" кнопка для авторасстановки по расписанию

Сообщение Lesnik » Ср май 23, 2012 10:32

Вот выложил архив. Там собранный бинарник с английским языком под windows, патч к исходникам и маленькая демка с двумя автобусами. Надо запустить второй автобус, нажать во вкладке "расписание" кнопку "autoseparate" и смотреть, что получится.
Это всё собиралось для рабочей версии r18528M.
Lesnik
Пассажир
Пассажир
 
Сообщения: 2
Зарегистрирован: Вт май 22, 2012 15:24

Re: "Магическая" кнопка для авторасстановки по расписанию

Сообщение Vaulter » Вт июл 17, 2012 17:07

Здоровье приносит ту свободу, которую очень немногие понимают, пока не теряют его.
skype: andrey-zaharov
Аватара пользователя
Vaulter
Директор
Директор
 
Сообщения: 439
Зарегистрирован: Вт авг 02, 2005 14:35
Откуда: Санкт-Петербург

Re: "Магическая" кнопка для авторасстановки по расписанию

Сообщение Ghost » Ср июл 18, 2012 16:39

Vaulter писал(а):это не оно
http://www.tt-forums.net/viewtopic.php?f=33&t=46391
?

Нет, не оно. Накатывал оба патча (и даже третий, но ссылку не найду). ИМХО, патч ATS наиболее полный, но реализует не автораспределение транспорта, а автоподстройку расписания.

В первом случае (Lesnik) расписание пересчитывается и назначается базовое ТС, другие под него подстраиваются (ждут). Оно действительно распределяет транспорт на маршруте (проверено).

Во втором случае (патч ATS) по прибытии базового ТС в первоначальный пункт маршрута тики (или время) пересчитывается, но таким образом, чтобы среднее отклонение от расписания было равно нулю. Никто никого не ждет (тоже проверено).

ИМХО, для относительно полного счастья надо интегрировать оба патча, но из ATS убирать опцию подстройки расписания, в нем и без этого много полезного.
Ghost
Директор
Директор
 
Сообщения: 385
Зарегистрирован: Сб сен 26, 2009 00:21
Откуда: Рыбинск


Вернуться в Разработка OpenTTD

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5