![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]() ![]()
Сообщение
#1
|
|
Level 2 ![]() Класс: Некромант Характер: Neutral Evil Раса: Человек ![]() |
Перевод и редакция DeKaVi
Источники: 2DA or not 2DA – Overriding 2DA files Автор: John Vanderbeck От редактора: Я далеко не профессионал в деле перевода и оформления статей и тем более в DA toolset. Взялся я за это нелегкое дело т.к. нет альтернативных русскоязычных источников. Сам разбираюсь и не прочь другим помочь. Потому прошу воспринимать мои труды адекватно. Буду рад если подскажете или иными способами поможете исправить неточности. Спасибо за понимание. Поехали! В уроке мы рассмотрим, как работать с файлами 2DA, как их правильно изменять, вводить пользовательские элементы и поведения в Dragon Age. Что такое 2DA файл? По своей сути, 2da файлы не более чем таблица. Набор строк и столбцов, описывающих данные игры. Перечень игровых предметов, например, и вся связанная с ними статистика, работает безукоризненно как таблица. 2da файлы используются для определения большинства, если не всех, данных в игре. В качестве бонуса для моддеров, у вас есть возможность изменять эти файлы. В "сыром", не откомпилированном формате, 2da хранятся в виде простого XLS файла - таблице Excel. Их можно открывать и редактировать в Microsoft Excel (OpenOffice или др. программами пользоваться НЕ РЕКОМЕНДУЕТСЯ). Эти таблицы в итоге компилируются в двоичный файл с расширением GDA. Преимущества 2DA файлов В теории, вы могли бы просто заменить соответствующие данные в XLS файле, затем скомпилировать, но это неправильный способ. Если вы это сделаете, то игра в будущем, с новой версией этого файла, может сбросить ваши изменения или могут появиться проблемы в работе с другими модулями. В этом случае, Bioware дало нам возможности не трогать главный файл, а создавать дополнение этого файла - M2DA(Mutliple two dimensional arrays). Это хороший способ расширить или переопределить данные. Давайте посмотрим, как это работает. Давайте рассмотрим на примере. Скажем, xls таблица с предметами игры могут выглядеть примерно так: (IMG:http://dekavi.ucoz.ru/_fr/1/2848228.png) Здесь мы можем увидеть определение и параметры нескольких предметов. Скажем данный файл является "items.xls".Теперь мы хотим сделать новый элемент в игре. Мы хотим добавить новый длинный лук(longbow). Мы могли бы открыть копию этого файла(items.xls) и добавить новую строку с ID 5, но это было бы неправильным! Вместо этого мы создаем новый файл, назовем его "items_bow.xls". И здесь мы будем определять наш лук, но мы не должны забывать, что ID(идентификатор) должен быть 5. Мы получим нечто вроде этого: (IMG:http://dekavi.ucoz.ru/_fr/1/7437914.png) Теперь мы создали новый файл с нашим новым предметом. Мы, в сущности, создали M2DA файл. Но каким образом наши данные теперь будут сочетаться с данными игры? Все дело в имени файла! Помните, файл предметов называется "items.xls" и мы создали новый файл с именем "items_bow.xls"? Обратите внимание, что оба файла начинаются с одного и того же слова "items". Это является ключевым моментом! Когда игра грузит предметы, она будет загружать их из 2da файлов. Затем, будет загружать данные с нашего items_bow файла(M2DA файла) и обнаружив там лук с ID 5, он будет дополнять игру новым объектом. В итоге, мы имеем два ключевых момента. Это имя файла и идентификатор объекта. Если мы указали уникальный ID, т.е. его еще не было в главном файле - мы добавим новый предмет, если мы будем использовать ранее созданный ID, то мы заменим объект, переопределим его в новом файле. Например, мы могли бы сделать файл "items_new_swords.xls" (IMG:http://dekavi.ucoz.ru/_fr/1/4417995.png) Этот файл, в сочетании с нашими предыдущими двумя будет создавать еще один новый предмет, Shortsword, №6, но также переопределит данные предмета с ID №2. Давайте теперь посмотрим на реальном примере. Реальный 2DA немного сложнее, но не намного. Давайте взглянем на настоящий 2da. Это из 2DA_base.xls (Прим. ред.: находится в папке игры Dragon Age - Origins\tools\Source\2DA) (IMG:http://dekavi.ucoz.ru/_fr/1/8717641.png) Первые две строки в 2da всегда одни и те же. Строка 1 содержит имена столбцов, в первом столбце всегда ID. Остальное зависит от данных 2da. Вторая строка показывает тип данных в каждой колонке. Int - целое число, string - строка(просто текст) и т.д. Фактически, данные начинаются на третей строке. Каждая строка должна иметь уникальный идентификатор, а идентификатор должен быть в последовательном порядке. Ранее мы говорили, что игра объединяет 2da на основании имен файлов.Но как вы узнаете, какие имена файлов использовать? В файле 2DA_base.xls хранится ответ на этот вопрос. В нем мы видим, что файл, который определяет предметы в игре будут начинаться с "BITM_". Любой M2DA который мы хотим сделать для переопределения, должен иметь такой же префикс. Компиляция 2DA файлов Теперь, когда мы знаем как использовать 2da файлы для создания новых и переопределения старых данных, мы должны узнать, как собрать из xls файлов, файлы GDA - понятные для игры. Это очень легко. Для этого используются утилита ExcelProcessor.exe из директории toolsest(Dragon Age\tools\ResourceBuild\Processors). Есть несколько способов использования этого инструмента, но сейчас я собираюсь описать самый простой. Для начала выберите каталог для хранения ваших xls файлов. Не имеет значение, где вы будете их хранить. Копируйте туда утилиту ExcelProcessor.exe. Создайте с этого файла ярлык в той же папке. теперь можете просто перетаскивать xls файл на ярлык. В той же папке появится много файлов. Для разных объектов может потребоваться различные файлы (названия задаются из имен вкладок в xls файле). Для предметов это скорее всего будут файлы BITM_base.GDA и ItemStats.GDA. Куда поместить скомпилированные файлы 2DA После компилирования этих файлов, вам необходимо их разместить для правильной работы. К сожалению у меня нет точных данных, поэтому хочу сразу сказать что моя информация может быть неправильной или неполной. Я буду обновлять информацию. (Прим. ред.: далее в комментариях предлагают рецепт: 1) сделал копию ABI_Base.xml 2) Удалил все лишние строки. оставил только свои изменения 3) Использовал ExcelProcessor конвертировал таблицы в файлы GDA 4) удалил всё, кроме двух файлов GDA ABI_Base и ability_data 5) переименовал их в ABI_Base_NightmarePlus и ability_data_NightmarePlus 6) скопировал файлы в packages/core/override/zNightmarePlus подкаталог (примечание редактора: в папке "Мои документы" наверное...) 7) Игра работает безупречно и модификации работают вместе с другими модами ABI_Base) |
![]()
Сообщение
#2
|
|
Level 1 Класс: Паладин Характер: Neutral Good Раса: Человек ![]() |
Спасибо за статью=)
|
![]()
Сообщение
#3
|
|
Level 4 ![]() ![]() Класс: Маг Характер: True Neutral Раса: Человек ![]() |
Огромное спасибо! С нетерпением жду новых переводов!
|
![]()
Сообщение
#4
|
|
Level 19 ![]() ![]() ![]() ![]() ![]() ![]() Класс: Рейнджер Характер: Lawful Neutral Раса: Эльф ![]() |
Мне думается новых переводов более не будет. =\
Сообщение отредактировал Ghost - Oct 11 2010, 22:09 |
![]()
Сообщение
#5
|
|
Отверженный ![]() ![]() ![]() ![]() Класс: Теневой Танцор Характер: Neutral Good Раса: Баатезу ![]() |
Гост, мысли порой материализуются. Неправильный настрой. Будь позитивнее (IMG:style_emoticons/kolobok_light/wink3.gif)
|
![]() ![]() |
Текстовая версия | Сейчас: 29th April 2025 - 17:57 |