Показать сообщение отдельно
Старый 10.06.2009, 12:42   #685
Zabor
Разработчик
 
Аватар для Zabor
 
Регистрация: 01.02.2008
Адрес: Санкт-Петербург
Сообщений: 18,938
Вы сказали Спасибо: 11,499
Поблагодарили 10,291 раз(а) в 3,846 сообщениях
Zabor хороший собеседник
Радость

Спешу поделится новостью:

Впервые в истории маршрута устранен "непровар", который считался неустранимым (5 и более повторных перекладок, не дающих результата), теперь подробнее, т.к. думаю, этот вопрос волнует не только меня.

Первым делом делаем бэкап роута, на худой конец W файла.

Сначала определяем сбойную секцию, высока вероятность, что она будет записана в конце списка т.к. её терзали последней =)), для проверки изменяем число целых на плюс 10 в среднем (это Y) значении параметра Position, сохраняем, но не закрываем W файл, открываем в редакторе маршрут.

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

Механизм определения тот же что и для Y когда искали секцию, т.е. изменяем, смотрим куда поехала, дело в том что в зависимости от угла трака к оси тайла требуемое смещение может задавать или абсолютно или в большей степени, (в зависимости от угла секции) X или Z, в моем случае это X, первое число.

Дальше все просто - определив ошибочное смещение (можно по телеге ПС) корректируем тысячные первого числа в противоположную сторону.

Уменьшение сдвигает секцию влево, увеличение вправо, опять же в зависимости от конкретного расположения секции на тайле.

В моем случае для идеальной стыковки получилось 2 тысячных, т.е. старина МСТС промахнулся весьма прилично, что на самом деле радует т.к. я ожидал более печальных результатов, предполагал, что изменение на одну тысячную не даст достаточной точности и секция будет то слева, то справа от оси пути.

Как выяснилось промахивается "рельсоукладчик" (редактор), а не предел точности позиционирования в МСТС.

После правки числа роут нужно переоткрыть с пересборкой БД для внесения изменений в БД.

Если секцию вычислить проблематично, ну например это оказалась A2t10m коих у подъема немеряно на помощь придет старый добрый Total Commander, нужно просто сделать копию W файла и открыть её в режиме сравнения с оригиналом в папке WORLD маршрута, после чего сдвинуть сбойную секцию или изменить её угол, сохранить изменения.

После этого Total Commander запросит повторное сравнение файлов из-за изменения оригинала, дальше по измененному параметру Position или QDirection (если меняли угол) он в чистую заложит UiD секции, что и требовалось =)).

Total Commander в принципе можно применить и для поиска сбойной секции в самом начале.

В общем метод пошел в тест, если все будет Ок то можно говорить о решении самой больной проблемы (для меня), которая убивала желание строить т.к. резкие кидания лока на "непроварах" просто на корню разрушает симуляцию поездки (ИМХО).

Конечно это лишний геморрой, в базу Access хранящую информацию о всех параметрах маршрута, расположении объектов, текстурах, авторах и т.п. придется добавить таблицу исправленных секций типа

тайл___секция UiD____Position ошибочно____Position исправлено
w-004973+015339__235__205.648 20.0484 961.891__205.646 20.0484 961.891

эта информация потребуется, в случае если секция будет случайно перестыкована т.к. автоматически произойдет смещение по ошибке и "непровар" получится уже с двух сторон - где был и после секции т.к. следующая прилинкована к сместившейся по ошибке МСТС секции.

Но это все ерунда по сравнению со временем убитым на повторные пересборки и потерей желания строить дальше из-за того, что, сколько не старайся "бархатный" путь создать не получится, теперь дело пойдет веселее, если конечно ребята из команды Била не заложили еще грабли на эту тему =)).

=============================

Вышел в чистовике в Шувалово, из-за того что участок Ланская-Шувалово пересекает тайлы под вероятно самым неудачным углом "непроваров" получается много, вот итоговая таблица исправлений: (все данные по w-004973+015339 в таблицу пока не введены, еще на бумажке).

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

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

Но главное достигнута цель - несмотря на баги и глюки билова детища качество пути как во времена Иосифа Виссарионовича =)).

Кстати статейка про клон МСТС.

Ошибка профиля оказалась весьма значительна, вот разница по ОП Озерки , взгляд с четной платформы Озерков в сторону ст. Шувалово
__________________
Присылайте ваши сценарии в копилку msts.
Опыт - это нечто, что приобретается сразу после того, как это было нужно.
100% не предпринятых попыток обречены на провал.

Последний раз редактировалось Zabor; 16.06.2009 в 20:05.
Zabor вне форума  
Старый 01.01.2007, 12:00  
Яndex
Спонсор
 
 
Регистрация: 01.01.2007
Сообщения: 500


Реклама показывается изредка по случайному принципу
По умолчанию РЕКЛАМА