viterra 0 Опубликовано 4 апреля, 2020 Есть файл: { "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) Может есть какой-то другой путь. Как вариант - меня бы устроила функция, которая может читать шестнадцатиричные числа из файла, но такой не нашел.. Полноценных примеров не нашел. Поделиться сообщением Ссылка на сообщение