FOnline
Изменение интерфейса

Простое изменение интерфейса

Для изменения базового интерфейса игры требуется редактирование файла default.ini, расположенного в папке Client\data\art\intrface. Структура файла проста и понятна. Есть ключ - есть его значение. Каждый ключ снабжен комментарием, к какому элементу интерфейса он относится или для чего он служит. Лишние пробелы и знаки табуляции игнорируются. В данном примере оба ключа будут работать:

key=value
key = value

Для удобства, ключи, относящиеся к определенному элементу интерфейса (окну), располагают в одном блоке. Если в файле попадаются идентичные ключи, то значения будут использоваться у того ключа, что расположен дальше по файлу. Также, значения ключей можно получить на стороне скриптов.

Для указания ключей, специфичных для отдельных разрешений, используются метки resolution, с указанием минимальной ширина и высоты, при которой эти опции будут учитываться. По умолчанию эти значения равны нулю. Например:

resolution 1024 768
key = value
...

Это означает, что все "key = value" до следующего ключевого слова resolution (или до конца файла) будут включены в итоговый ini. Найденные данные вставляются в итоговый файл по мере роста ширины экрана.

Кроме default.ini, возможно использование дополнительных ini-файлов. Движком автоматически добавляется только default.ini, остальные можете подключать в функции start() скрипта клиента. Пример подключения ini-файлов окон 3d-регистрации и инвентаря со слотом для головы:

bool start()
...
#ifdef PLAYERS_3D
AppendIfaceIni("players3d_chareg.ini");
#ifndef PLAYERS_3D_NO_HEAD
AppendIfaceIni("players3d_headinv.ini");
#endif
#endif
...

Если имя имеет слеши, то поиск производится из корня папки data, если нет, то в папке data/art/intrface/. Загрузка происходит последовательно от default.ini до подключенных пользователем, в порядке вызова. Проверяется каждый пакованный файл, в порядке загрузки, потом в самой папке.

Как измененять интерфейс с помощью скриптов - читайте здесь.

Converted from CHM to HTML with chm2web Pro 2.85 (unicode)