Информация: Уважаемые посетители! В течение нескольких месяцев на форуме существовала проблема с регистрацией новых пользователей, о которой администрации стало известно недавно. Если вы ранее пытались зарегистрироваться на форуме, но не получили на ваш e-mail письмо с ссылкой для подтверждения регистрации, просим вас зарегистрироваться повторно. Приносим извинения за доставленные неудобства. Если вы все еще испытываете проблемы с регистрацией на форуме, обратитесь за помощью на e-mail: mr.angelo@railroadsim.net

Очередная DLS

Вопросы, касающиеся скачивания и поиска дополнений

Нужна ли полноценная DLS

Опрос закончился 23.12.2007, 12:04

Да, очень нужна. Готов помочь.
9
30%
Да, нужна.
12
40%
Мне все равно.
7
23%
Я против. Это тухлая идея.
2
7%
 
Всего голосов : 30

Re: Очередная DLS

Сообщение Эрендир » 18.01.2010, 23:02

Здравствуйте все, кто следит за темой и кому она интересна.

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

После некоторых раздумий и советов грамотных людей, в том числе и с этого форума, появилась новая спецификация структуры репозитория. Версию 1.5 можно скачать на нашем сайте в соответствующем разделе, перейдя по этой ссылке http://crypton-technologies.net/experiments/ru-dls. Если кто-то уже начал или сделал свой репозиторий, то необходимо внести в него некоторые изменения в соответствии с новой спецификацией.

Что изменилось:

1) Список авторов вынесли в отдельное пространство имен. Далой плодить одни и теже теги.
2) Убрали атрибут version из дополнений. Он там не к месту, к тому же, в самом kuid2 есть versionID. Теперь принцип подбора будет схож с принципом Auran DLS
3) Добавлен аргумент category-class для дополнений.
4) Добавлен аргумент category для паков дополнений, что позволит группировать их и существенно упростит поиск
5) Добавлен аргумент date для паков дополнений, в котором нужно указывать дату появления дополнения в репозитории, что позволит оповещать сообщество о новинках.
6) Кое какие изменения в структуре, а так же исправленны недочеты в прошлой спецификации.

Обращаюсь ко всем ресурсам по ТРС с предложением все же вступить в сообщество TDR и хоть в какой-то мере начать реализовывать репозитории. Разработка и отладка программного обеспечения осложняется тем, что попросту не на чем толком тестировать. А в "лабораторных" условиях не возможно в полной мере обкатать алгоритмы.

kemal, на тебя вновь вся надежда в реализации 1.5, ибо основные тесты провожу именно на твоем.
Аватара пользователя
Эрендир
 
Сообщения: 121
Зарегистрирован: 04.05.2005, 16:15
Откуда: От туда...
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Играю в: Auran Trainz
Имя: Алексей

Re: Очередная DLS

Сообщение progopis » 18.01.2010, 23:58

Ауроновский CMP написан на Си++ с использованием MFC. Это довольно затрудняет анализ, MFC вообще мало документирован на уровне функций (хотя и не обязан). Тем не менее я уже начал разбор содержимого CDP файлов. Весь файл я условно разбил на три блока. Первый это заголовок. В нём всего 4 двойных слова. Первое из них это сигнатура "ACS$", 2-ое и 3-ье слово не изучены, 4-ое - размер остальной части файла. Далее идёт неизученный блок (содержащий в том числе номер куида в строковом виде). Третий блок - это последовательный набор маленьких блоков. Каждый из таких блоков представляет собой двойное слово длины маленького блока, байт длины строки-типа блока (с учётом нулевого байта), далее собственно строка-тип с нулевым байтом и все остальные элементы блока, характерные для данного типа блока.

Примеры маленьких блоков (идут последовательно):

0F 00 00 00 05 6B 75 69 64 00 0D 0E B9 04 00 E9 03 00 00
0x0000000F = 15 - размер всего блока
0x05 = 5 - длина строки с учётом null-байта
"kuid\0" - строка определяющая тип блока
0x0D = 13 - тип элемента
0E B9 04 00 E9 03 00 00 -> 0x4B90E = 309518, 0x3E9 = 1001 -> <kuid:309518:1001> B)

13 00 00 00 0D 74 72 61 69 6E 7A 2D 62 75 69 6C 64 00 02 00 00 20 40
0x00000013 = 19 - размер всего блока
0x0D = 13 - длина строки с учётом null-байта
"trainz-build\0" - строка определяющая тип блока
0x02 - тип элемента, в данном случае тип 2 - вещественное число (тип 1 - целое число)
00 00 20 40 - данные блока, в данном случае это 2.5 (00 00 C0 3F соответствует значению 1.5)

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

продолжение следует...
Аватара пользователя
progopis
 
Сообщения: 48
Зарегистрирован: 12.05.2007, 22:45
Откуда: Москва, Астрахань, Могилев
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Играю в: Auran Trainz
Роль: Фотограф
Имя: Владимир

Re: Очередная DLS

Сообщение Crypton » 19.01.2010, 00:05

О как.. Может внутренне реализована какая-нибудь структура которую они потом сериализуют и получается вот это?
Аватара пользователя
Crypton
 
Сообщения: 421
Зарегистрирован: 14.08.2006, 09:52
Откуда: Санкт Петербург
Благодарил (а): 0 раз.
Поблагодарили: 5 раз.
Роль: Разработчик

Re: Очередная DLS

Сообщение progopis » 19.01.2010, 00:18

Структур там полно, но вот сколько у меня уйдёт на их разбор... Пока я нашёл только несколько проверок на правильность файла. Они уже есть у меня в Си++ варианте. Сам разбор файла написать не сложно, но придётся делать таблицы типов блоков и типов элементов блоков. Кроме того, наверно нужно будет zlib подключать чтобы распаковывать 3D-меши, текстуры, звуковые файлы... Ну это если полноценную замену делать Ауроновской тулзе.

Кстати ещё один "сюрприз". Заранее по типу элемента нельзя сказать какую длину он имеет. Пример:

seg000:000000F5 aWatercolor db 'watercolor',0
seg000:00000100 db 2
seg000:00000101 dd 154.0
seg000:00000105 dd 104.0
seg000:00000109 dd 53.0

Соответсвующая строка в конфиге:
watercolor 154,104,53

Т.е. тип 2 означает что у нас элемент float (вещественное число), но в данном случае он не один, а целых три - RGB компоненты для миниблока с типом watercolor.

Добавлено:
Тип 3 отвечает за строку (длина может быть определена по null-байту)
seg000:00000186 dd 15
seg000:0000018A db 7
seg000:0000018B aAuthor db 'author',0
seg000:00000192 db 3
seg000:00000193 aHukut db 'HuKuT',0
Аватара пользователя
progopis
 
Сообщения: 48
Зарегистрирован: 12.05.2007, 22:45
Откуда: Москва, Астрахань, Могилев
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Играю в: Auran Trainz
Роль: Фотограф
Имя: Владимир

Re: Очередная DLS

Сообщение kemal » 19.01.2010, 00:32

Репозиторий обновлён.

Не понятно только как id раздавать..
И ещё я бы не стал делать новое пространство имён, а оставил бы авторов в <ContactInfo>. Да и была мысль раздавать id из таблицы пользователей форума. Ну да ладно..
<kuid:216981:******>
куид.ру не нужен
Аватара пользователя
kemal
 
Сообщения: 375
Зарегистрирован: 10.02.2006, 18:21
Откуда: Казань
Благодарил (а): 4 раз.
Поблагодарили: 7 раз.
Блог: Просмотр блога (4)
Играю в: Auran Trainz
Роль: Разработчик
Имя: Камиль

Re: Очередная DLS

Сообщение progopis » 19.01.2010, 00:46

А где саму программу скачать? На сайте я не нашёл.
Аватара пользователя
progopis
 
Сообщения: 48
Зарегистрирован: 12.05.2007, 22:45
Откуда: Москва, Астрахань, Могилев
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Играю в: Auran Trainz
Роль: Фотограф
Имя: Владимир

Re: Очередная DLS

Сообщение Crypton » 19.01.2010, 00:53

А где саму программу скачать? На сайте я не нашёл.

Какую программу? Клиент? Клиент в разработке. Сайт ТДР тоже.
Аватара пользователя
Crypton
 
Сообщения: 421
Зарегистрирован: 14.08.2006, 09:52
Откуда: Санкт Петербург
Благодарил (а): 0 раз.
Поблагодарили: 5 раз.
Роль: Разработчик

Re: Очередная DLS

Сообщение progopis » 19.01.2010, 01:17

Ну я понял что в разработке. А какие-нибудь бета-версии уже есть?
Аватара пользователя
progopis
 
Сообщения: 48
Зарегистрирован: 12.05.2007, 22:45
Откуда: Москва, Астрахань, Могилев
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Играю в: Auran Trainz
Роль: Фотограф
Имя: Владимир

Re: Очередная DLS

Сообщение Crypton » 19.01.2010, 01:21

progopis писал(а):Ну я понял что в разработке. А какие-нибудь бета-версии уже есть?

Еще нет
Аватара пользователя
Crypton
 
Сообщения: 421
Зарегистрирован: 14.08.2006, 09:52
Откуда: Санкт Петербург
Благодарил (а): 0 раз.
Поблагодарили: 5 раз.
Роль: Разработчик

Re: Очередная DLS

Сообщение Эрендир » 19.01.2010, 10:31

progopis, программа есть, но очень в сырой пре-альфа версии. Там готов только парсер с занесением всё в локальную базу данных, правда версии спецификации 1.0. Еще есть наброски интерфейса, но они еще наверное будут перерабатываться. Всё никак не могу конечный вариант придумать. Сейчас вот перепишу на днях парсер на версию спецификации 1.5, там он чуть проще станет, и займусь внешним видом.
Очень рад, что кто-то занялся разбором структуры файла cdp, это конечно существенно упростит жизнь. Надеюсь по окончанию разбора получить информацию, как от туда извлекать файлы конфигурации. До мешей, тексов и звуков мне дела нет. К тому же установку допов все равно можно сделать через trainzutil запуская с контролем процесса и передачей потоков вывода в свою программу.

kemal, информация об авторах специально была вынесена в отдельное пространство имен. Парсер все равно выделял их в отдельный список без повторений, назначал ID, а в остальных местах создавал на них ссылки. Теперь хоть меньше инфы хранить. Долой клонов по 1000 раз. К тому же плюсы в том, что это снизит объем передаваемой информации, скорость передачи, скорость парсинга.
К стати, у тебя так и осталась ошибка в стрктуре. Она еще с прошлой версии у тебя ползет. Ошибку сделал я еще в спецификации, она к тебе перебралась, и так и прижелась. Сейчас исправлена, но ты видимо не обратил внимания.

Там где у тебя пакеты дополнений секция <Kuids>.....</Kuids> там тег <Kuids /> должен с большой буквы написан быть, а у тебя с маленькой. И в соответствии со спецификацией 1.5 атрибут version не нужен там совсем. Так что ты уж поправь, а то парсер будет ругаться :) Еще и тег <License> тоже удали. Там должна быть ссылка на текстовый файл с лицензией, а у тебя текст какой-то... Парсер ругается.
Аватара пользователя
Эрендир
 
Сообщения: 121
Зарегистрирован: 04.05.2005, 16:15
Откуда: От туда...
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Играю в: Auran Trainz
Имя: Алексей

Re: Очередная DLS

Сообщение kemal » 19.01.2010, 16:06

Обновил.
Но остаётся открытым вопрос, как раздавать id?
<kuid:216981:******>
куид.ру не нужен
Аватара пользователя
kemal
 
Сообщения: 375
Зарегистрирован: 10.02.2006, 18:21
Откуда: Казань
Благодарил (а): 4 раз.
Поблагодарили: 7 раз.
Блог: Просмотр блога (4)
Играю в: Auran Trainz
Роль: Разработчик
Имя: Камиль

Re: Очередная DLS

Сообщение Эрендир » 19.01.2010, 17:06

kemal, а чего <License>Freeware</License> так и не убрал?

Что-то никак не пойму что там с id? Я могу тебе утилитку сделать небольшую для генерации. Или если что...Ну ты пиши в аську, тогда там и разберемся... Просто не понимаю сути проблемы.
Аватара пользователя
Эрендир
 
Сообщения: 121
Зарегистрирован: 04.05.2005, 16:15
Откуда: От туда...
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Играю в: Auran Trainz
Имя: Алексей

Re: Очередная DLS

Сообщение Эрендир » 21.01.2010, 19:37

kemal, вот набросал тут для удобства утилитку GUID Generator скачать можно у нас на сайте в соответствующем разделе http://crypton-technologies.net/experiments/ru-dls
Аватара пользователя
Эрендир
 
Сообщения: 121
Зарегистрирован: 04.05.2005, 16:15
Откуда: От туда...
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Играю в: Auran Trainz
Имя: Алексей

Re: Очередная DLS

Сообщение Crypton » 21.01.2010, 19:52

Кстати, у кого стоит powershell,
[System.Guid]::NewGuid().toString()
Аватара пользователя
Crypton
 
Сообщения: 421
Зарегистрирован: 14.08.2006, 09:52
Откуда: Санкт Петербург
Благодарил (а): 0 раз.
Поблагодарили: 5 раз.
Роль: Разработчик

Re: Очередная DLS

Сообщение Эрендир » 23.01.2010, 14:56

Объявляется конкурс для тех, кто умеет рисовать.

1)Необходимо сделать иконку для приложения репозитория (64х64, 48х48, 32х32, 24х24, 16х16)
2)Придумать логотипчик для программки в окошко "О программе"

Все изображения нужны в формате png с альфаканалом.

Программа назвается Azary

У кого удастся, будет включен в список авторов :)
Аватара пользователя
Эрендир
 
Сообщения: 121
Зарегистрирован: 04.05.2005, 16:15
Откуда: От туда...
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Играю в: Auran Trainz
Имя: Алексей

Пред.След.

Вернуться в [TZ] Где скачать?

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

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