Script/ru

From Dragon Age Toolset Wiki
< Script
Revision as of 03:37, 14 October 2011 by Kelamor (Talk | contribs) (Edit)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Основная информация о скриптах
Начало / Русская DA Builder Wiki / Поделиться ВКонтакте
Скрипты
все статьи категории
описание функций

Скрипты в Dragon Age контролируют практически все игровые события. Вся игровая механика, которая обычно управляется движком игры, в Dragon Age управляется скриптами, что позволяет производить глубокую настройку игры.

Язык DAScript

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

Смотрите - Обзор языка DAScript (en).

События

В Dragon Age используется событийно-ориентированная модель, в которой каждое событие посылается в скрипт, назначенный для его обработки, с параметрами, содержащими необходимую информацию Основная часть работы со скриптами в DA связана именно с обработкой событий. Типичные примеры возникновения событий:

  • Событие посылается в скрипт, ассоциированный с Plot-файлом, когда его флаг считывается или устанавливается.
  • Событие посылается в скрипт, ассоциированный с локацией, когда в локации умирает команда существ, когда в локацию входит игрок.
  • Событие посылается в скрипт, ассоциированный с модулем, во время генерации персонажа.
  • Событие посылается существу, когда с ним что-то происходит (например - бьют).

Изменение AI (en) для существ осуществляется созданием пользовательских обработчиков событий AI.

Для получения большей информации о событиях смотрите - События (en).

Эффекты и способности

Эффекты (en) - применяются на определённый объект. Каждый эффект содержит пакет модификаторов, которая определяет, как он влияет на объект. Эти модификаторы могут изменять обычные базовые свойства, так и более сложные игровые, а также накладывать визуальные эффекты. Также события содержат ряд параметров, зависящих от их типа, и определяющих их поведение. Когда эффект убирается (обычно по истечении определённого времени) модификаторы снимаются с объекта.

В DA применяется следующая шкала продолжительности эффектов, которая определяет, как они накладываются и снимаются:

  1. Временные: накладываются на короткое время (определяется в секундах)
  2. Постоянные: применяются пока не будут убраны скриптом
  3. Разовые: применяются мгновенно и не хранятся на объекте (для примера - смерть существа)
  4. Экипировочные: ассоциированы с вещами, которыми экипировано существо. Действие эффекта прекращается после снятия вещи.

Обычно эффекты накладываются способностями, которыми владеют существа и персонаж игрока.

Для получения большей информации о эффектах и способностях смотрите - Эффекты (en), Способности (en).

2DA - Хранилище игровых данных

2DA (двухмерные массивы) содержат большую часть данных, используемых в игре, и создаются на основе таблиц формата .XLS. Если вы хотите создать новые типы существ, вещей, способностей и т.д., вам необходимо будет создать новые 2DA.

Для получения большей информации о 2DA смотрите - Работа с 2DA (en).

Система выдачи плюшек (Treasure System)

Система выдачи плюшек (Treasure System) позволяет выдавать различные плюшки в большинство существ и контейнеров в игре. Плюшки выдаются посредством случайной генерации при возникновении определённых событий (например - смерть существа или размещение сундука в локации). Вид и количество плюшек выбираются в соответствии с категорией и рангом объекта (у дикого животного не должны часто обнаруживаться доспехи, а порождения тьмы навряд ли будут таскать с собой фарфоровые вазы). Управление системой выдачи плюшек может осуществляться посредством локальных переменных (en) и событий (en).

Для существа, которое уже размещено в конкретной локации (en), инвентарь не может быть определён напрямую.

Для получения большей информации о СВП смотрите - Система выдачи плюшек (Treasure System) (en).

Локальные переменные - хранилище индивидуальных данных

Локальные переменные - связанные с игровыми объектами переменные, хранящиеся длительное время и доступные из любого скрипта (в отличие от временных, которые существуют только пока работает создавший их скрипт).

Устанавливаются локальные переменные функцией SetLocal* и считываются функцией GetLocal*.

DA не поддерживает динамическое выделение локальных переменных в игре, поэтому для использование в игре локальные переменные должны быть определены в 'variable 2DA.

Как альтернатива - по ссылке [1] вы найдёте проект "Неограниченное хранилище переменных". Используя его вы сможете посредством одного подключаемого файла получить неограниченное хранилище переменных и массивов без обязательного декларирования их в 2DA.

Для получения большей информации о локальных переменных смотрите - Локальные переменные (en)


Язык: English  • русский