# Пользовательские дополнения

На главную

# CategoryOptions

Игровые опции реализованы в UISystem. В логике их нет.

Опции устроены следующим образом. Есть описание в базе, которое задает "каркас". Расположено оно: /Interface/System/UIGameRoot.xdb, поле uioption. Опции сгруппированы в несколько уровней: страницы, группы, блоки, последние содержат собственно опции. Можно выполнять операции как над отдельными опциями, так и над целой коллекцией (страницей, группой, блоком). Информация об опциях выдается скрипту в унифицированном виде, детали реализации скрываются кодом и базой данных. Можно выполнять уникальную обработку для отдельных опций, для этого надо их соответствующим образом идентифицировать и проверять на этот идентификатор в скрипте.

Для автоматической обработки (типичная схема использования) опции привязываются к глобальным переменным. Соответствие типа опции и типа глобальной переменной:

     UI_OPTION_DATA_FIXED - неизменяемая опция
     UI_OPTION_DATA_BOOLEAN - значение опции: 0 и 1, тип глобальной переменной: boolean
     UI_OPTION_DATA_DISCRETE - диапазон значений: [0..N], тип глобальной переменной: int
     UI_OPTION_DATA_DISCRETE_FLOAT - диапазон значений: [0..N], тип глобальной переменной: float

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

## BlurpSearch: CategoryLuaApi CategoryOptions

Функции Lua Api библиотеки options - игровые опции.

EventOptionsChanged
FunctionOptionsApply
FunctionOptionsCancel
FunctionOptionsCancelPreview
FunctionOptionsGetBlockIds
FunctionOptionsGetCollectionInfo
FunctionOptionsGetGroupIds
FunctionOptionsGetOptionByCustomId
FunctionOptionsGetOptionIds
FunctionOptionsGetOptionInfo
FunctionOptionsGetOptionsByCustomType
FunctionOptionsGetPageIds
FunctionOptionsPreview
FunctionOptionsResetToDefault
FunctionOptionsSetOptionCurrentIndex
FunctionOptionsUpdate

CategoryConfig

На главную