Использование 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.
}