Город Мастеров
IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Статья: Изменение 2DA файлов
DeKaVi
сообщение Nov 19 2009, 21:54
Сообщение #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)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Sworder
сообщение Dec 1 2009, 14:03
Сообщение #2


Level 1


Класс: Паладин
Характер: Neutral Good
Раса: Человек



Спасибо за статью=)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
EqKeeper
сообщение Oct 11 2010, 19:26
Сообщение #3


Level 4
**

Класс: Маг
Характер: True Neutral
Раса: Человек



Огромное спасибо! С нетерпением жду новых переводов!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ghost
сообщение Oct 11 2010, 22:08
Сообщение #4


Level 19
******

Класс: Рейнджер
Характер: True Neutral
Раса: Эльф



Мне думается новых переводов более не будет. =\

Сообщение отредактировал Ghost - Oct 11 2010, 22:09
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
virus_found
сообщение Oct 15 2010, 01:56
Сообщение #5


Отверженный
****

Класс: Теневой Танцор
Характер: Lawful Good
Раса: Баатезу



Гост, мысли порой материализуются. Неправильный настрой. Будь позитивнее (IMG:style_emoticons/kolobok_light/wink3.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 17th October 2018 - 08:46