2DA/ru

From Dragon Age Toolset Wiki

< 2DA
Jump to: navigation, search
2DAs
Начало / Русская DA Builder Wiki

Многие из свойств объектов в тулсете ссылаются на таблицы 2DA, которые содержат различные данные игры и используются при написании скриптом и движком самой игры. Каждый 2DA является простой коллекцией строк и чисел. Функция, которую выполняет определённый 2DA, зависит от того, как он используется другими системами в игре.

Contents


Обзор – что такое 2DA?

2DA содержит ряд столбцов, каждый из которых имеет определённое название и определённый тип данных. Для примера, в ABI_Base есть столбец, который называется namestrref и тип данных int. Это означает, что данные, которые хранятся в этом столбце, имеют целочисленный тип и могут быть получены при обращении к 2DA с указанием столбца namestrref. Количество и тип столбцов в 2DA обычно никогда не изменяются. Столбцы представляют структуру 2DA, которая позволяет последовательно обращаться к нему. Первый столбец каждого 2DA называется ID и всегда имеет тип integer. Этот столбец используется для уникальной идентификации строк в 2DA.

Строки 2DA содержат всю информацию, хранящуюся в нём. Каждая ячейка строки имеет название и тип данных, которые определены в первых двух строках 2DA, но данные, содержащиеся в них, могут быть разными. Лёгким и доступным способом расширения 2DA является добавление новых строк, для этого надо добавить строку, указать уникальный номер в столбце ID и заполнить ячейки строки в соответствии с вашими потребностями. Присвоенный строке номер никогда не должен изменяться. Игра также имеет удобный механизм M2DA, с помощью которого можно расширить 2DA не редактируя основной 2DA(более подробно рассказано ниже).

Некоторые 2DA ссылаются на строки в других 2DA. Для примера, в ABI_Base есть столбец, именуемый projectile, ячейки которого ссылаются на строки в PRJ_Base 2DA. Эти отношения определяются только в скриптах, использующих 2DA, а не являются непосредственно встроенными в него, таким образом отслеживать эти связи нужно самостоятельно.

Формат таблицы Excel

Исходными файлами для 2DA являются рабочие листы Microsoft Excel. Это позволяет использовать сложные методы при задании значений для ячеек 2DA, такие как формулы и макросы. Это также делает редактирование 2DA достаточно удобным и простым, так как позволяет использовать аннотации к ячейкам и их форматирование, а связанные листы могут быть объединены в один файл. Прежде чем использоваться игрой или тулсетом, 2DA должны быть скомпилированы из файлов Excel в формат, понимаемый ими. После компиляции файла Excel каждый его рабочий лист преобразуется в файл с расширением .GDA (en).

Более полную информацию о способах компиляции и месте размещения GDA-файлов вы найдёте по ссылке Преобразование 2DA (en).

Пример рабочего листа "Monsters"
ID Label Strenght Name ResourceExample Scale disabled Commentexample
int string int string resource float bool comment
0 INVALID **** sometimes bioware said **** **** i stay unused
1 Evilmonster1 23 Abomination prp_barrel01 1,0 0 totally evil
2 Evilmonster2 34 Shriek prp_bucket_01 1,0 1 very bad

Данные в 2DA идентифицируются по номеру (столбец ID) строки, первая строка с ID равным 0 зарезервирована для внутреннего использования (неопределённые, неверные данные и т.д.). Каждый ряд имеет произвольное количество столбцов, идентифицируемых по названию. Серые поля в данном примере являются определяющими для 2DA, в белых полях могут храниться любые произвольные данные, которые движок игры идентифицирует для этого 2DA.

ID строки – это ссылка для игры, по которой она осуществляет доступ и связь с данными. Как таковые они должны быть уникальны как для 2DA, так и для расширяющего его M2DA.

Содержание каждого столбца может быть произвольным, но иметь тип данных, определяемый 2DA. Когда 2DA расширяется, присваиваются новые ID, но количество столбцов и тип данных в них должны оставаться такими, как и в исходном 2DA.

Рекомендации

Расширение игры с помощью M2DA

Пример рабочего листа "MonstersCustom"
ID Label Strenght Name ResourceExample Scale disabled Commentexample
int string int string resource float bool comment
2300000 Evilmonster3 32 Wolf c_wolfa 1,0 0 New Monster

"M2DA" это "Multiple 2DA", что на русский можно перевести как "Составные 2DA", представляет собой комплект нескольких 2DA, объединённых в одну таблицу. Принцип работы у них такой же как и у 2DA, с тем отличием, что они могут исправляться или дополняться путём добавления ещё одного 2DA. Это значит, что с помощью M2DA можно отредактировать имеющиеся, либо добавить новые ресурсы, не изменяя основных 2DA, а полезность такой возможности переоценить трудно. 2DA в системе M2DA объединены построчно, используя столбец ID в качестве ключевого поля.

Для сторонних мододелов очень важно то, что официальные обновления могут привести к перезаписи любых изменений в 2DA, ими внесённых. Именно поэтому стоит использовать M2DA с уникальными именем и ID. Используемый в M2DA диапазон ID должен отличаться от биоваровских и используемых другими мододелами.

Все M2DA, используемые в игре, перечислены в Базе M2DA (en). Игра распознаёт в качестве M2DA только те 2DA, ID которых находятся вне диапазона от 10000 до 10999, 2DA, расположенные в этом диапазоне являются обычными и не подлежат расширению. Каждый M2DA в этом файле имеет краткое описание, определяющее круг его применения и префикс, с которого должны именоваться рабочие листы Excel. Игра считывает этот префикс, ищет M2DA, чьи названия начинаются с этого префикса и объединяет их всех в один большой 2DA.

Для примера: M2DA ID 0 это "ANIM_". Система просматривает список доступных 2DA и обнаруживает "ANIM_base", "ANIM_combat" и "ANIM_walk". Они считываются и объединяются в M2DA, называемый "ANIM_".

Обратите внимание M2DA_base также является M2DA и может быть расширен тем же способом.

Зарезервированные диапазоны ID и переопределение существующих строк

Хотя M2DA и позволяют избежать некоторых проблем, связанных с использованием обычных 2DA, идентификаторы всех 2DA, объединённых в один M2DA, должны быть уникальными.

Использование существующего ID позволит вам переопределить данные исходной строки, которой принадлежит используемый ID. Такая возможность и позволяет изменить существующий контент без редактирования исходных 2DA.

Для обеспечения совместимости с модами сторонних авторов постарайтесь, чтобы ваши диапазоны ID не вступали в конфликт с используемыми другими авторами. Проверить это вы можете по ссылке - Используемые диапазоны ID (en). Также проверьте уникальность префиксов, используемых в ваших модах. Сделать это вы можете по ссылке - Используемые префиксы (en).


Информацию о том, где должны располагаться готовые M2DA, ищите по следующей ссылке - Преобразование 2DA(Заметки) (en).

Проблемы с M2DA

Стоит отметить, что в настоящее время есть ошибка с некоторыми M2DA, в которых имеются ID выше 255. Известно, что такая проблема есть у 2DA, связанных с ItemVariations.xls/ru (en). Смотрите Информация об ошибке (en) для получения большей информации.

2DA XLS файлы, используемые в Dragon Age

Список 2DA таблиц (en)

Исходные файлы, установленные вместе с игрой вы сможете найти по следующему пути:

<Installdir>\Dragon Age\tools\Source\2DA\

Тем, кто использует Open Office

Adding Strings

The documentation on this page is incomplete, obsolete, or otherwise in need of a thorough review. The current content may provide a good starting point for this, but do not rely on its accuracy when using it to design content.

When adding strings to a 2DA, you have two options. The simplest is to enter **** for the StringID column. In that case, the name column will be used in the game.

The other approach is to use the toolset's string editor to create a new string. When that happens, you'll get a new StringID. Next enter that number into the StringID column in the 2DA.

The second approach works better when translating your module, at the cost of portability. If someone else wanted to reuse your 2DA, they'd have to generate their own strings, then update the StringID number based on these IDs.

Attention:

Workaround:

Edit-GDA-Values.jpg

Remark:

The previous Version stated: Take that StringID and add 16777216 to the number. this appears to be wrong and is likely a holdover from NWN.

Использование пользовательских 2DA при работе с тулсетом

Некоторые 2DA используются при работе с тулсетом, например 2DA, в которых перечислены существа, награды за выполненные задания.

Скомпилированные 2DA необходимо расположить в папке экспорта вашего модуля и тогда, при следующем запуске тулсета, вы сможете использовать их

Также смотрите


Язык: English  • Русский
Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox