Есть файл:
{
"modID": "test_mod",
"ModName": "test mod",
"data": [{
"nomber": 0,
"defaultRaceListNum": 13,
"form": "__formData|test_mod.esp|0x00013B53"
},
{
"nomber": 1,
"defaultRaceListNum": 13,
"form": "__formData|test_mod.esp|0x00013B54"
}
]
}
Нужно вытащить имя файла и соответствующий ID в скрипте из поля "form"
int jsonFile = JValue.ReadFromFile("Data/mergedmods/test_mod.json")
if jsonFile
Debug.Trace("[File] Found!" )
string modID = JMap.GetStr(jsonFile, "modID")
string modName = JMap.GetStr(jsonFile, "ModName")
int modMerged = JMap.GetObj(jsonFile, "data")
int modMergedCount = JArray.Count(modMerged)
if (modID == "test_mod" || modName == "test mod") && modMerged != 0 && modMergedCount > 0
dataloaded = true;
int c = 0
while c < modMergedCount
int modMergedMap = JArray.GetObj(modMerged, c)
int nomber = JMap.GetInt(modMergedMap, "nomber")
int defaultRaceListNum = JMap.GetInt(modMergedMap, "defaultRaceListNum")
Form f = JMap.GetForm(modMergedMap, "form")
Debug.Trace(" get num "+ nomber + " race " + defaultRaceListNum + " in file " + f.GetName() + " ID " + f.GetFormID())
f.GetName() f.GetFormID() - тестировал разные подходы - результата 0
c += 1
endWhile
else
Debug.Trace("[File] File " + modName + " is invalid or empty")
endIf
JValue.Release(jsonFile)
JValue.ZeroLifetime(jsonFile)
endIf
Суть в том, что бы запихнуть данные в функцию Game.GetFormFromFile(Form_Id, mod_name)
Может есть какой-то другой путь. Как вариант - меня бы устроила функция, которая может читать шестнадцатиричные числа из файла, но такой не нашел..
Полноценных примеров не нашел.