Использование FXT

Статические файлы FXT

CLEO Redux может загружать и обслуживать статический текстовый контент. Создайте новый файл с расширением .fxt и поместите его в папку CLEO\CLEO_TEXT. Имя файла может быть любым допустимым именем.

Каждый файл FXT содержит список записей ключ-значение в следующем формате:

<KEY1> <TEXT1>
<KEY2> <TEXT2>
...
<KEYN> <TEXTN>

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

CLEO загружает файлы FXT при запуске и объединяет их содержимое в один словарь. Он также отслеживает файлы и перезагружает их, если вносятся какие-либо изменения.

Вы также можете найти редактор файлов FXT на сайте cleo.li: https://cleo.li/download.html

Чтобы отобразить пользовательский контент в игре, используйте класс Text. Ключ, определенный в файле FXT, обычно является первым аргументом текстовых команд, например.

Text.PrintHelp('KEY1') // будет отображаться <TEXT1>

Вы можете найти команды, доступные в каждой игре, в библиотеке Sanny Builder, например. для Сан-Андреас: DE https://library.sannybuilder.com/#/sa_unreal/classes/Text

FxtStore

CLEO Redux предоставляет интерфейс для управления произвольным текстом непосредственно в коде JavaScript. Существует статическая переменная с именем FxtStore со следующим интерфейсом:

declare interface FxtStore {
  /**
   * Вставляет новое текстовое содержимое в хранилище fxt сценария, перезаписывая предыдущее содержимое и затеняя статические fxt с тем же ключом.
   * Ключ @param Ключ GXT, который можно использовать в текстовых командах (максимум 7 символов).
   * Текстовое содержимое значения @param.
   */
  insert(key: string, value: string): void;
  /**
   * Удаляет текстовое содержимое, связанное с ключом, в локальном хранилище fxt.
   * Ключ @param Ключ GXT.
   */
  delete(key: string): void;
}

Используя FxtStore, вы можете создавать уникальные ключи и значения в сценарии и помещать их в локальное хранилище FXT. Каждому скрипту принадлежит личное хранилище, и ключи одного скрипта не будут конфликтовать с другими скриптами. Также ключи, определенные в FxtStore, будут дублировать те же ключи, что и в статических файлах FXT. Рассмотрим пример:

custom.fxt:

MY_KEY Text from FXT file

custom.js:

Text.PrintHelp('MY_KEY') // Это отображает "Текст из файла FXT".
FxtStore.insert('MY_KEY', 'Text from script');
Text.PrintHelp('MY_KEY') // Это отображает "Текст из сценария".
FxtStore.delete('MY_KEY')
Text.PrintHelp('MY_KEY') // Это отображает "Текст из файла FXT" снова.

Частное хранилище FXT не поддерживается в San Andreas: The Definitive Edition. Каждый скрипт изменяет глобальное хранилище FXT. Это поведение может измениться в будущем.

Пользовательский текст может создаваться динамически, например:

while(true) {
    wait(0);
    FxtStore.insert('TIME', 'Timestamp: ' + Date.now());
    Text.PrintHelp('TIME') // Отобразится "Timestamp: " и обновленное значение timestamp.
}