Перейти к содержанию

3 изображения

Информация о файле

Простой в использовании интерфейс, позволяющий сохранять и загружать внутриигровые переменные в файл и из файла соответственно, что может быть полезно для модмейкеров.
Это может пригодиться в различных ситуациях. Например, всё больше и больше модов обладают обширными настройками в МКМ, которые при начале новой игры приходится выставлять заново. FISS позволяет создателям модов обеспечить возможность создания пользовательских пресетов данных, которые могут быть сохранены, загружены или использованы где-то ещё.
Думаю, кому-нибудь пригодится.

Моды, в настоящее время использующие FISS:

Take Notes - Journal of the Dragonborn;
MinimalHUD;
Spellmaking in Skyrim - The last altar;
Dynamic Potions - Poisons - Ingredients - Food;
Dynamic Magicka and Stamina Growth;
A Matter of Time - A HUD clock widget;
Enchanted Arsenal;
Widget Mod;
Living takes time;
Timing is everything;
Awakened Magicka.


Как использовать:
Для игроков:
1. Скачать и установить FISS (извлечь в папку “Skyrim/Data/”);
2. Активировать FISS.ESP в вашем лаунчере/менеджере модов;
3. После него установить любой использующий FISS мод и использовать его возможности.

Для мододелов:
1 и 2 - аналогично;
3. Использовать FISS в ваших скриптах (см. API и пример ниже);
4. Когда выпускаете свой мод, следует включить следующие файлы в директорию Scripts Вашего мода:
- FISSFactory.pex
- FISSInterface.pex
Но не включать каких-либо других файлов FISS.

ЧАВО:

Вопрос: Где будут находиться созданные файлы?
Ответ: В директории “/Skyrim/Data/SKSE/Plugins/FISS/” или, если используете ModOrganizer, в “/ModOrganizer/overwrite/SKSE/Plugins/FISS”.
Вы также можете создавать свои подпапки: например, fiss.beginSave(“MySubfolderMyFile.xml”).

Вопрос: Нужно ли выпускать другую версию мода для людей, у которых не установлен FISS?
Ответ: Нет. Просто сделайте простую проверку на наличие установленного FISS:
FISSInterface fiss = FISSFactory.getFISS()
If !fiss
debug.MessageBox(“FISS not installed. Save/Reload disabled”)
return
endif



Требования:
- Skyrim;
- SKSE 1.6 и выше.

API (также это есть в файле MS Word папке "Документация" в архиве, наряду с оригинальной документацией):

API FISS'а состоит из двух скриптов: FISSFactory для обращения к интерфейсу FISS, и FISSInterface для операций с файлами.

Функции FISSFactory:

FISSInterface Function getFISS()
Получает ссылку на интерфейс FISS. Возвращает “none”, когда FISS не установлен.

Функции FISSInterface:

Функции загрузки:
Все операции загрузки должны начинаться с объявлений beginLoad и endLoad.

Function beginLoad(string filename)
Объявляет о начале набора операций загрузки.

string Function endLoad()
Объявляет о завершении набора операций загрузки. Возвращает сообщения об ошибке в виде строки. Cтрока будет пустой, если все операции загрузки прошли успешно.

bool Function loadBool(string name)
Загружает переменную логического типа с заданным именем.

string Function loadString(string name)
Загружает строку с заданным именем.

float Function loadFloat(string name)
Загружает число с плавающей точкой с заданным именем.

int Function loadInt(string name)
Загружает целое число с заданным именем.

Функции сохранения:
Все операции сохранения должны начинаться с beginSave и заканчиваться с endSave.

Function beginSave(string filename, string modname)
Объявляет о начале набора операций сохранения. "filename" должен (но не обязательно) заканчиваться “.XML”.
"Modname" здесь - имя мода.

string Function endSave()
Объявляет о завершении набора операций сохранения. Возвращает сообщения об ошибке в виде строки. Cтрока будет пустой, если все операции загрузки прошли успешно.

Function saveBool(string name, bool value)
Сохраняет переменную логического типа с заданным именем.

Function saveString(string name, string value)
Сохраняет строку с заданным именем.

Function saveFloat(string name, float value)
Сохраняет число с плавающей точкой с заданным именем.

Function saveInt(string name, int value)
Сохраняет целое число под заданным именем.

Другие функции:

float Function getVersion()
Получает установленную версию FISS

float Function getInterfaceVersion()
Получает версию интерфейса.

string Function saveTextToTxtFile(string filename, string text)
Напрямую сохраняет строку в текстовый файл. Эта функция должна быть использована без BeginSave и EndSave.

Небольшой пример использования:

Модификация под названием "My Mod" сохранит и загрузит переменные в/из файла “MyFile.xml”.
Для этого определяются функции “MySaveFunction” и “MyLoadFunction”.
Script MyScript extends <whatever>
;переменные
bool bMyBool
int iMyInt
string sMyString
;импорт FISSFactory для создания интерфейса с FISS
import FISSFactory
;функция сохранения
Function MySaveFunction
; получение ссылки на интерфейс FISS
FISSInterface fiss = FISSFactory.getFISS()
; проверка, установлен ли вообще FISS
If !fiss
debug.MessageBox(“FISS не установлен. Сохранение отменено”)
return
endif
; сохранение переменных
fiss.beginSave(“MyFile.xml”)
fiss.saveBool(“MyBool”, bMyBool)
fiss.saveInt(“MyInt”, iMyInt)
fiss.saveString(“MyString”, sMyString)
string saveResult = fiss.endSave()
; проверка результата
if saveResult != “”
debug.Trace(saveResult)
endif
EndFunction
; функция загрузки
Function MyLoadFunction
; получение ссылки на интерфейс FISS 
FISSInterface fiss = FISSFactory.getFISS()
; проверка, установлен ли FISS
If !fiss
debug.MessageBox(“FISS не установлен. Загрузка отменена.”)
return
endif
; загрузка переменных
fiss.beginLoad(“MyFile.xml”)
bMyBool = fiss.loadBool(“MyBool”)
iMyInt = fiss.loadInt(“MyInt”)
sMyString = fiss.loadString (“MyString”)
string loadResult = fiss.endLoad()
; проверка результата
if loadResult != “”
debug.Trace(loadResult)
endif
EndFunction

  • Нравится 18

Обратная связь

Рекомендуемые комментарии

Meridiano

Опубликовано

Спасибо, что напомнил про эту штуку, пойду познавать магию MCM)

MadMaxNN

Опубликовано

Года 3-4 назад эта прога была шикарна. А сейчас модмейкерство на убыль идет семимильными шагами.

  • Нравится 2
Practical Tomato

Опубликовано

С 2014 поддерживаемых модов все так же кот насрал.

XMagnat

Опубликовано

Очень актуальное решение, только с поддержкой модов полная беда.

Viy

Опубликовано

хороший мод)давно использую, экономит время...

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×
×
  • Создать...