Таблица данных *(Data Table)* — это неупорядоченная структура для хранения динамических данных в формате ключ-значение, позволяющая хранить в ней данные почти любых типов данных.

Что из этого определения можно понять?

  1. Таблица данных — некий контейнер, в который можно записать что угодно по уникальному строковому идентификатору Name.
  1. В отличие от обычных массивов, размер которых фиксирован при создании, таблица данных автоматически расширяется по мере добавления новых записей. Вам не нужно заранее беспокоиться о её вместимости.

Важно понимать, что в редакторе существует два типа таблиц данных, которые различаются по области видимости *(scope)*:
  • Глобальная таблица данных — такая таблица создаётся один раз, ещё до начала инициализации карты, и существует всю игровую сессию. Её главной особенностью является то, что доступ к этой таблице данных может осуществляться откуда угодно, из любого триггера, Библиотеки триггеров, и даже из другой подключенной модификации!
  • Локальные таблицы данных — эти таблицы данных работают по точно такому же принципу, как и локальные переменные в триггерах, а значит, они создаются заново при каждом срабатывании триггера и автоматически уничтожаются (очищаются) после завершения всех его действий.

Доступ к Глобальной таблице данных карты, имеет даже сторонняя модификация, подключенная через игровой клиент, в режиме схватки. Таким образом при желании можно настроить "общение" карты с модификацией.

Как осуществляется запись в таблицу?

Для записи данных в таблицу используется семейство действий Save Data Table Value {Data Type}, где {Data Type} — это конкретный тип данных, например: Integer, Real, Unit, Unit Group, Player Group и так далее...
Каждое из этих действий принимает 3 параметра:
  • Value - Определяет, что? нужно записать в таблицу
  • Name - Определяет, строковый ID по которому записать значение в таблицу
  • Scope - Определяет, в глобальную или локальную? таблицу нужно записать значение

Как получить значение из таблицы?

Для чтения данных используются функции Value From Data Table {Data Type}. Обратите внимание: это именно функции, которые возвращают значение, а не действия.
Они принимают те же два ключевых параметра, что и при записи:
  • Name — строковый ключ, по которому было сохранено значение.
  • Scope — указание на глобальную или локальную таблицу.
Записывать значения необходимо либо в переменные подходящего типа данных, либо напрямую передать подобную функцию в параметр необходимого действия или функции

Data Table Instance

"А это ещё что за зверь?"
Data Table Instance — это специальный тип данных, представляющий собой динамически создаваемые экземпляры таблицы данных. Каждый такой экземпляр:
  • Изолирован и не конфликтует с другими экземплярами или глобальной таблицей.
  • Может быть передан по ссылке в параметры функций и действий.

Для чего они нужны?

Например можно создать динамический буфер данных для каждого игрока.
Вместо того чтобы придумывать сложные ключи для глобальной таблицы (например, "Player_" + "Player Number", вы можете создать отдельный экземпляр Data Table Instance для каждого игрока и просто передавать его в функции
А далее настроить функции таким образом, чтобы они абстрактно работали с данными "одного игрока"
Остались вопросы? Задайте их сообществу! Задать вопрос
`
ОЖИДАНИЕ РЕКЛАМЫ...