Esempio n. 1
0
        private void btnSaveMod_Click(object sender, EventArgs e)
        {
            var item = cbx_modlist.SelectedItem as dynamic;

            if (item != null && item.name != null)
            {
                var modName = item.name;
                var txt     = nud_MaxStackCount.Text;
                var max     = int.Parse(txt);
                var cdir    = item.cdir;
                if (max > 0)
                {
                    ModsConfigJson conf = mods[modName];
                    if (conf.db.ContainsKey("items"))
                    {
                        foreach (var itemKey in conf.db["items"])
                        {
                            var    tmp    = Path.Combine(cdir, itemKey.Value.ToString());
                            string tmpCtx = File.ReadAllText(tmp);
                            Dictionary <string, object> itemObj =
                                JsonConvert.DeserializeObject <Dictionary <string, object> >(tmpCtx);
                            var jo = itemObj["_props"] as JObject;
                            jo["StackMaxSize"] = max;
                            itemObj["_props"]  = jo;
                            tmpCtx             = JsonConvert.SerializeObject(itemObj, Formatting.Indented);
                            File.WriteAllText(tmp, tmpCtx, new UTF8Encoding(false));
                        }

                        MessageBox.Show("ok");
                    }
                }
            }
        }
Esempio n. 2
0
        private void Form1_Load(object sender, EventArgs e)
        {
            if (File.Exists("config.json"))
            {
                var conf = File.ReadAllText("config.json");
                sysConfig = JsonConvert.DeserializeObject <SysConfig>(conf);
                basepath  = sysConfig.DefaultPath;
            }
            else
            {
                sysConfig = new SysConfig();
            }

            var fbd = new FolderBrowserDialog();

redo:
            basepath   = Directory.Exists(basepath) ? basepath : System.Environment.CurrentDirectory;
            path       = $"{basepath}\\user\\mods\\EmuTarkov-AllItemsExamined-1.0.0\\db\\items";
            transPath  = $"{basepath}\\user\\mods\\EmuTarkov-LocaleCh-1.0.0\\db\\locales\\ch\\templates";
            configPath = $"{basepath}\\user\\configs";
            if (!Directory.Exists(path))
            {
                if (DialogResult.OK == fbd.ShowDialog())
                {
                    basepath         = fbd.SelectedPath;
                    path             = Path.Combine(basepath, @"user\mods\EmuTarkov-AllItemsExamined-1.0.0\db\items");
                    transPath        = Path.Combine(basepath, @"user\mods\EmuTarkov-LocaleCh-1.0.0\db\locales\ch\templates");
                    configPath       = Path.Combine(basepath, @"user\configs");
                    ProfilePath      = Path.Combine(basepath, ProfilePath);
                    tranquestpath    = Path.Combine(basepath, tranquestpath);
                    enquesttransPath = Path.Combine(basepath, enquesttransPath);
                    orgLocalePath    = Path.Combine(basepath, orgLocalePath);
                }
                else
                {
                    this.Close();
                    return;
                }
            }

            txt_base_path.Text    = basepath;
            sysConfig.DefaultPath = basepath;
            var cng = JsonConvert.SerializeObject(sysConfig);

            File.WriteAllText("config.json", cng, Encoding.UTF8);
            if (!Directory.Exists(path))
            {
                goto redo;
            }

            files = Directory.GetFiles(path);
            foreach (var file in files)
            {
                var    stream = File.OpenText(file);
                string json   = stream.ReadToEnd();
                Item   item   = JsonConvert.DeserializeObject <Item>(json);
                if (item._props == null)
                {
                    continue;
                }

                if (item._props.ItemSound != null && !soundList.Contains(item._props.ItemSound))
                {
                    soundList.Add(item._props.ItemSound);
                }

                sortedItems.Add(file, item);
            }

            comboBox1.BeginUpdate();
            comboBox1.Items.AddRange(soundList.ToArray());
            comboBox1.EndUpdate();
            if (File.Exists(configPath + @"\gameplay.json"))
            {
                string gameConfigString = File.ReadAllText(configPath + @"\gameplay.json");
                gameConfig    = JsonConvert.DeserializeObject <GameConfig>(gameConfigString);
                NUDUsec.Value = gameConfig.bots.pmcUsecChance;
                NUDpmc.Value  = gameConfig.bots.pmcSpawnChance;
            }

            if (Directory.Exists(ProfilePath))
            {
                string[] profiles = Directory.GetDirectories(ProfilePath);

                if (profiles != null && profiles.Length > 0)
                {
                    cb_profile_list.BeginUpdate();
                    cb_profile_list.Items.Add("选择一个账号");
                    foreach (var profile in profiles)
                    {
                        var fileName = Path.Combine(profile, "character.json");
                        if (File.Exists(fileName))
                        {
                            var ch = JsonConvert.DeserializeObject <Character>(File.ReadAllText(fileName),
                                                                               new JsonSerializerSettings()
                            {
                                Error = ((o, args) =>
                                {
                                    // args.ErrorContext.Handled = true;
                                }),
                                FloatParseHandling = FloatParseHandling.Decimal
                            });
                            charList.Add(ch.aid, ch);
                            cb_profile_list.Items.Add(new { Text = ch.Info.Nickname, Value = ch.aid });
                            cb_profile_list.DisplayMember = "Text";
                            cb_profile_list.ValueMember   = "Value";
                        }
                    }

                    cb_profile_list.EndUpdate();
                }
            }

            if (Directory.Exists(tranquestpath))
            {
                var questPaths = Directory.GetFiles(tranquestpath);
                if (questPaths != null && questPaths.Length > 0)
                {
                    foreach (var questPath in questPaths)
                    {
                        if (File.Exists(questPath))
                        {
                            var quest1 = JsonConvert.DeserializeObject <Quest>(File.ReadAllText(questPath));
                            questdic_ch.Add(Path.GetFileName(questPath), quest1);
                        }
                    }
                }
            }

            if (Directory.Exists(enquesttransPath))
            {
                var questPaths = Directory.GetFiles(enquesttransPath);
                if (questPaths != null && questPaths.Length > 0)
                {
                    foreach (var questPath in questPaths)
                    {
                        if (File.Exists(questPath))
                        {
                            var quest1 = JsonConvert.DeserializeObject <Quest>(File.ReadAllText(questPath));
                            questdic_en.Add(Path.GetFileName(questPath), quest1);
                        }
                    }
                }
            }

            if (File.Exists(orgLocalePath))
            {
                propLocale = JsonConvert.DeserializeObject <PropLocale>(File.ReadAllText(orgLocalePath));
            }

            moddir = Path.Combine(basepath, moddir);
            if (Directory.Exists(moddir))
            {
                var dirs = Directory.GetDirectories(moddir);
                cbx_modlist.BeginUpdate();
                foreach (var dir in dirs)
                {
                    string config = Path.Combine(dir, "mod.config.json");
                    if (File.Exists(config))
                    {
                        string         tempfile   = File.ReadAllText(config);
                        ModsConfigJson configJson = JsonConvert.DeserializeObject <ModsConfigJson>(tempfile);
                        mods.Add(configJson.name, configJson);
                        cbx_modlist.Items.Add(new { configJson.name, value = config, cdir = dir });
                    }
                }

                cbx_modlist.DisplayMember = "name";
                cbx_modlist.ValueMember   = "value";
                cbx_modlist.EndUpdate();
            }
        }