Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Работа с геодатой (https://forum.zone-game.info/forumdisplay.php?f=38)
-   -   Конвертор геодаты (https://forum.zone-game.info/showthread.php?t=35266)

n3k0nation 22.05.2014 21:55

Конвертор геодаты
 
Данный конвертер был написан уже очень давно мной, но только сейчас дошли руки его выложить :)
Умеет конвертить dat -> l2j и l2j -> dat.
Единственный минус - не создает заголовок при конвертации в дат (18 первых байт), поэтому геодата получается "не полной", хоть и отрабатывает свое. Кому надо - исправит это недоразумение :)

Скачать исходник + компил: клац-клац
В исходнике есть описание двух форматов. Кому лень, можно прочитать тут.

Замечания по формату:
Свернуть ↑Развернуть ↓


Пример использования:
Код:

java -cp ./conv.jar conv.Starter -f ./geodata -o ./output
./geodata - папка, в которой лежит геодата, которую нужно переконвертировать
./output - папка, в которую будет сохранена переконверченая гео.

Have fun!

Donatte 22.05.2014 22:37

Re: Конвертор геодаты
 
Кстати, если блок из Flat перевести в Complex в G3D Editor, то размер файла увеличивается. Обратное преобразование уменьшает конечный файл.

Очень жаль что вы тоже не знаете точного строения заголовка PTS гео. Я бы пофиксил свой G3D Editor.

Всё это спокойно умеет делать конвертер от Akumu который он продаёт по 100 рублей в руки, включая кривой заголовок у PTS геодаты. И как бы он не писал, что пофиксил это - возможно, но этот фикс теперь крашит приложение. :D

ANZO 22.05.2014 22:40

Re: Конвертор геодаты
 
Цитата:

Сообщение от Donatte (Сообщение 364014)
Кстати, если блок из Flat перевести в Complex в G3D Editor, то размер файла увеличивается. Обратное преобразование уменьшает конечный файл.

Очень жаль что вы тоже не знаете точного строения заголовка PTS гео. Я бы пофиксил свой G3D Editor.

Всё это спокойно умеет делать конвертер от Akumu который он продаёт по 100 рублей в руки, включая кривой заголовок у PTS геодаты. И как бы он не писал, что пофиксил это - возможно, но этот фикс теперь крашит приложение. :D

Что значит свой? Его автор дядька Forsaiken. Вы Форсейкен?

n3k0nation 22.05.2014 22:45

Re: Конвертор геодаты
 
Цитата:

Сообщение от Donatte (Сообщение 364014)
Кстати, если блок из Flat перевести в Complex в G3D Editor, то размер файла увеличивается. Обратное преобразование уменьшает конечный файл.

Увеличивается, потому-что добавляется еще 64 ячейки (64*2 = 128 байт в плюсе). Ну и перевод в из комплекса в флат минус 126 байт. Для ПТС минус 124 байта.

Цитата:

Сообщение от Donatte (Сообщение 364014)
Очень жаль что вы тоже не знаете точного строения заголовка PTS гео. Я бы пофиксил свой G3D Editor.

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

Цитата:

Сообщение от Donatte (Сообщение 364014)
Всё это спокойно умеет делать конвертер от Akumu который он продаёт по 100 рублей в руки, включая кривой заголовок у PTS геодаты. И как бы он не писал, что пофиксил это - возможно, но этот фикс теперь крашит приложение. :D

Значит уже не будет продавать :) Или точнее не будут покупать.

Цитата:

Сообщение от ANZO (Сообщение 364015)
Что значит свой? Его автор дядька Forsaiken. Вы Форсейкен?

Исходник в открытом доступе, ничто не мешает сделать форк и считать этот форк своим :)

Donatte 22.05.2014 23:02

Re: Конвертор геодаты
 
Цитата:

Сообщение от ANZO (Сообщение 364015)
Что значит свой? Его автор дядька Forsaiken. Вы Форсейкен?

Во-первых, я его частично исправил. Был ряд багов.
Во-вторых, вырезал всё ненужное, на мой взгляд.

И наконец, шарить я его под своими копирайтами не собираюсь в паблик. Да и вообще шарить не собираюсь. Поэтому, он исключительно "мой"!

Цитата:

Сообщение от Pointer*Rage (Сообщение 364016)
По поводу хедера: есть некоторые мысли, некоторые элементы заголовка уже разобрал; когда закончу выложу в паблик, если надо.

Выложите в этой теме, если не затруднит.

ANZO 22.05.2014 23:18

Re: Конвертор геодаты
 
Цитата:

Сообщение от Pointer*Rage (Сообщение 364016)
Исходник в открытом доступе, ничто не мешает сделать форк и считать этот форк своим :)

Ну с этой точки зрения я написал столько "своего" софта что у меня уже миллиарды должны были быть :D

n3k0nation 23.05.2014 15:17

Re: Конвертор геодаты
 
Цитата:

Сообщение от Donatte (Сообщение 364017)
Выложите в этой теме, если не затруднит.

Пока, то что разобрал.
Структура заголовка у DAT:
byte -- сохраняется в массиве (регион по x)
byte -- сохраняется в массиве (регион по y)
short (word) -- не сохраняется (всегда 0x0080, возможно макс. число слоев)
short (word) -- не сохраняется (всегда 0x0010, дискретность клетки)
int (dword) -- сохраняется в массиве (общее количество ячеек для комплекса и слоев для мультилевела)
int (dword) -- не сохраняется (количество всех блоков, кроме multilevel)
int (dword) -- не сохраняется (количество flat блоков)

Первые два байта сохраняются в массив и после чекаются на ренж (результат чека сейвится в массив сдвиг от второго байта 7):
Код:

first <= 17 ||
first == 18 && second >= 23 ||
first == 19 && (second == 18 || second == 24) ||
first == 20 && second >= 23 ||
first == 21 && (second == 18 || second == 23) ||
first == 22 && (second == 22 || second == 23);

На следующий байт (сдвиг 8 от второго байта) в массиве кладем ноль.

ЗЫ: под массивом я имею ввиду мемори-хранилище в птске :)
ЗЫЫ: разобранный листинг дизасма не буду выкладывать, т.к. не вижу смысла

Тестер ячеек:
:
Свернуть ↑Развернуть ↓


Have fun!

n3k0nation 20.10.2015 21:15

Re: Конвертор геодаты
 
Обновил структуру постом выше. Большое спасибо r00tk1d1 :)


Текущее время: 03:13. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot