Jump to content
viterra

Нужна помощь по скриптам

Recommended Posts

 

Есть файл:

{
    "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)

Может есть какой-то другой путь. Как вариант - меня бы устроила функция, которая может читать шестнадцатиричные числа из файла, но такой не нашел..

Полноценных примеров не нашел.

 

 

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...