Перейти к содержанию

Дайджесты за январь-февраль

Обновления гайдов и аддонов

Январь Февраль

Мониторинг серверов и редактор аддонов

Представляем вам две легенды. То, о чем можно было только мечтать, стало реальностью.

Мониторинг серверов Редактор аддонов

Подсказки из игры на вашем сайте

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

Подробнее

Апдейтер аддонов

Представляем вам программу для автообновления аддонов и делимся подробностями.

Подробнее Скачать

Копаем игровые ресурсы


Гость skillcoder

Рекомендуемые сообщения

  • 2 недели спустя...
  • Ответов 98
  • Создана
  • Последний ответ

Топ авторов темы

Топ авторов темы

Формат файла \data\Packs\BaseLocrus.pak -> Bin\pack.loc:

Файл запакован ZLib (уровень сжатия 6)

После распаковки:

Заголовок + таблица_имён_файлов + имена_файлов + блок 1 + таблица_размеров + блок 2 + данные

Заголовок (16 байт):

int32 unknown1 = 0x00

int32 sizes_pos // позиция таблицы размеров

int32 unknown2 = 0x08

int32 item_count // количество файлов

таблица_имён_файлов (по 12 байт):

int32 pos // позиция имени (относительно заголовка)

int32 size // размер строки

int32 id // идентификатор

имена_файлов (длинна зависит от таблицы_имён_файлов):

строка file_name // имя файла (строка завершается нулями; количество нулей добивается до кратности 4)

непонятный блок 1

int32 unknown1 = 0x01

int32 item_count = item_count * 2

таблица_размеров (по 8 байт):

int32 pos // позиция (должна быть кратна 4)

int32 size // размер файла / 2

непонятный блок 2

int32 unknown1 = 0x02

int32 file_sizes = размер всех файлов (с учётом подгонки кратности 4)

int32 unknown2 = 0x00

int32 unknown3 = 0x00

int32 unknown4 = 0x00

int32 unknown5 = 0x00

Распакованные ресурсы в архиве:

rus.pack.loc.1.0.3.19.rar (8,5 Mb)

Распаковщик ресурсов, версия 0.2 (PHP):

loc.extracter.zip (1 Kb)

Компилятор ресурсов, версия 0.4 (PHP):

loc.compiler.zip (1,5 Kb)

Примечание к компилятору:

Тормозит... выполняется 10 минут... Нужно оптимизировать по скорости

Файлы ресурсов в кодировке UTF-16 (Unicode).

Можно, в принципе перекодировать. Но так они хранятся изначально.

---

Спасибо, kosh, что навёл на мысль это всё осилить)

А также за подсказки по формату файлов.

UPD

ДА! Наконец-таки компилятор стал компилировать!!!!

УРА!!!

Ссылка на комментарий
Поделиться на другие сайты

Ну... ковырнул немного... увлёкся...

Раньше, кстати, ковырял другие игрушки. Так что опыт ковыряния есть)

Ссылка на комментарий
Поделиться на другие сайты

Ахахаха... Ковыряюсь тут... пасхалок и приколов много в ресурсах.

Например:

\Tests\Abilities\Faction\Ability_Desc.txt:

Code:
<html>Воруй, убивай</html>
Ссылка на комментарий
Поделиться на другие сайты

попробуй запаковать обратно...

вот и "формы" для вывода текстов в модулях будут свои

Ссылка на комментарий
Поделиться на другие сайты

Data/SFX_Music.pak/SFX/Music/*.fsb

не пкованый "злибом" пак с музыкой в формате

FSB v4

http://www.fmod.org/

там же кодек для WMP9 http://www.fmod.org/files/wmfdist.exe

Ссылка на комментарий
Поделиться на другие сайты

Пишу тут компилятор ресурсов...

Очень смешно получилось, когда создал пустой pack.loc и зашёл в игру:

00dfea6fa8c7x.jpg

Ссылка на комментарий
Поделиться на другие сайты

Вообщем, с запаковкой пока ничего непонятно...

Разобрался опытным путём, что используется ZLib сжатие $f=gzcompress($f, 6);

А заголовок 78 9C - это лишь один из заголовков ZLib. Так что добавлять заголовок к упакованному файлу не требуется.

Вторая мысль возникла после внимательного пересмотра распакованного оригинального pack.loc файла.

Имена файлов "добиты" нулями, чтобы размер строки был кратный 4.

Т.е. формаат как-бы выравнивает до 4-х байт всё, что находится внутри.

Прикладываю архив с последней версией компилятора.

Мозг взрывается. Пойду, посплю...

UPD:

Компилятор заработал. Ура, товарищи!

Последняя версия тут:

http://ui9.ru/forum/3/topic/5#c231

Ссылка на комментарий
Поделиться на другие сайты

Спасибо за помощь в колупании.

Мы сделали этот компилятор вместе!

Ссылка на комментарий
Поделиться на другие сайты

Компилятор теперь всё правильно запаковывает.

Кто может - тестируем)

Ещё раз спасибо kosh ))

--

Если всё работает вообщем-то нормально, постараюсь найти время, переписать на Си, например.

Не у всех же стоит дома настроеный веб-сервер с ПХП ))

Хотя, если кто найдёт в себе силы перписать сам, я буду только рад)

Ссылка на комментарий
Поделиться на другие сайты

Да да gsomgsom - на Си нада *))) Настроеный ПХП сревер - далеко не у всех есть ! *))))) А ктонить уже пробовал добавить произволный шаблон ? Например для выделения другим цветом гилдейцов по рагну ? или для добавления просто "Хелло <Имя>" при в ходе в игру ? если да ток как делать ?

Ссылка на комментарий
Поделиться на другие сайты

Единственное, что я делал в качестве проверки загрузки изменённого pack.loc - изменил файл /Client/Watermark.txt

Сейчас прямо немного нет времени колупаться дальше (работа не волк, но голод - всё же не тётка).

Поэтому призываю поэкспериментировать всех, кто может на данный момент)

Ссылка на комментарий
Поделиться на другие сайты

Блин я нету пхп сервака на работе ( даи дома тож нету ) 8(((( а тобы стестанул, прям щас - аж руки чещуться *)))))

Ссылка на комментарий
Поделиться на другие сайты

не расстраивайтесь... специально для вас я делаю исполняемый файлик не требующий ни пхп не темболее сервера

если тест пройдет успешно, я соберу все это добро и выложу здесь..

Ссылка на комментарий
Поделиться на другие сайты

затык.. опять же.. все прекрасно работает, но если добавлять новое - не работает вернее стандарт работает, а добавленное нет... =( копаемся дальше

Ссылка на комментарий
Поделиться на другие сайты

А скачать зип ПХП без установки сервера религия не позволяет?

Пуск - Выполнить - cmd - C:/php/php.exe C:/files/my_file.php

Ссылка на комментарий
Поделиться на другие сайты

КАПА-А-А-АТЬ!!!!

короче.. есть мысль...

на ЗБТ вспоминался файлик pack.bin он в data/Packs/Bin.pak/bin/

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

немного поясню вводную суть:

почти все ресурсы в АО расположены в пакетах...

они делятся на несколько групп

каждая группа образует свою виртуальную файловую систему...

в то же время... в этих виртуакалках есть файлы образующие виртуалки второго уровня (к примеру тот же pack.loc)

возможно в фаликах виртуалки первого уровня есть списки какие загружать файлики из виртуалок второго уровня

думаю суть понятна

это все предположение

Ссылка на комментарий
Поделиться на другие сайты

Вы аццкие жгуны, товарищи :) Сюда ( http://forum.astrumnival.com/showpost.php?p=1863097&postcount=249 ) заглянуть не пробовали? Я там уже выкладывал распаковщик текстов.

Ссылка на комментарий
Поделиться на другие сайты

"пробывали".. спасибо..

и что нам это дало бы?

а так разобрались с форматом и написали компилятор..

Ссылка на комментарий
Поделиться на другие сайты

А смысл? В будущем это все равно будет не нужно.

Нивал не позволит менять ресурсы клиента. Подменять другими, к примеру, скрипты - это да. Для собственных скриптов текст скорее всего откуда-то из спец-места грузиться будет, иначе могут возникнуть проблемы совместимости разных аддонов. Аддон должен быть самостоятельным и не должен менять при этом оригинальных ресурсов игры.

Именно исходя из этой логики, я не стал делать "компилятор". Он просто бесполезен. Единственное место его приложения я вижу только если у себя _локально_ хочется поправить текст какой-то, к примеру. Тогда да, он может пригодиться. Но ради этого стоит ли городить огород?

Ко всему прочему, у вас там че-то уж очень много "неизвестностей" в ваших описаниях. В loc-файле нет никаких "ненужных" полей.

И если уж хотите действительно полезное дело сделать, расковыряйте лучше файл AO\data\packs\bin.pak\bin\pack.bin. Там очень _похожая_ на pack.loc структура, но, к сожалению, не _такая же_.

Ссылка на комментарий
Поделиться на другие сайты

смысл в том, что я очень "рад" за Нивал...

лок-файл мы пока оставили в покое... да менять там нет смыла, а добавлять?

на счет pack.bin: а что по-твоему мы делаем?

присоединяйся

Ссылка на комментарий
Поделиться на другие сайты

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

А что будет, если человек захочет поставить два мода, каждый из которых добавляет какие-то тексты? Если у каждого в архиве будет свой pack.loc, то игра загрузит только один, а второй мод останется без добавленных текстов. Если же в архиве будут только сырые тексты, а пользователь при установке будет "запаковывать" эти тексты в pack.loc, то это блин какой-то очень крутой пользователь, который вполне способен сам и мод наваять. Даже если все это будет автоматом, выглядеть это все будет очень ненадежно и ошибкоопасно. Далеко мы все так не уедем.

Нивал скорее всего даст возможность тексты каким-то дополнительным образом "добавлять" к пользовательским аддонам. Если не даст, значит ПРИДЕТСЯ обходиться только тем, что есть в составе оригинального pack.loc.

И еще немаловажный момент. Согласно моим текущим изысканиям (они конечно не факт, что 100% истина, чисто догадки), каждому интерфейсному аддону соответствует некоторый набор текстовых файлов из виртуального каталога pack.loc. Соответствие это задается как раз в pack.bin и определяется жестко. Если соответствия у конкретного текстового файла с аддоном нет, то загрузить этот текст функцией GetAddonRelatedText() или аналогами не получится. И мне думается, что уж pack.bin Нивал точно не даст "править" и "подменять".

Ссылка на комментарий
Поделиться на другие сайты

Ты все описал что мне уже известно...

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

а вот Тебе смысл:

если нивал ничего не сделает для текстов

при добавлении/изменении на этом ресурсе мода, будет собираться пак.лок файлик для всех опубликованных, юзверу остается скачать сам мод и лок-файлик, в этом есть какая-то сложность?

Ссылка на комментарий
Поделиться на другие сайты

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...

Важная информация

Пользуясь сайтом, вы принимаете Условия использования