public ItemsTabPage() { if (!ItemData.Initialized) { using (var s = Assembly.GetExecutingAssembly().GetManifestResourceStream("QTRHacker.NewDimension.Res.Game.WikiRes.zip")) { using (ZipArchive z = new ZipArchive(s)) { using (var u = new StreamReader(z.GetEntry("ItemInfo.json").Open())) { var Items = JArray.Parse(u.ReadToEnd()); ItemData.InitializeFromJson(Items); } using (var u = new StreamReader(z.GetEntry("ItemName_cn.json").Open())) Items_cn = JArray.Parse(u.ReadToEnd()); using (var u = new StreamReader(z.GetEntry("RecipeInfo.json").Open())) { var Recipes = JArray.Parse(u.ReadToEnd()); RecipeData.InitializeFromJson(Recipes); } using (var u = new StreamReader(z.GetEntry("ItemDescriptions.json").Open())) ItemDescriptions = JArray.Parse(u.ReadToEnd()); } GC.Collect(); } } this.BackColor = Color.LightGray; this.BorderStyle = BorderStyle.None; ItemListView = new ListView(); ItemListView.Bounds = new Rectangle(5, 5, 450, 440); ItemListView.FullRowSelect = true; ItemListView.MultiSelect = false; ItemListView.HideSelection = false; ItemListView.View = View.Details; ItemListView.Columns.Add(MainForm.CurrentLanguage["Index"], 50); ItemListView.Columns.Add(MainForm.CurrentLanguage["Rare"], 50); ItemListView.Columns.Add(MainForm.CurrentLanguage["EnglishName"], 125); ItemListView.Columns.Add(MainForm.CurrentLanguage["ChineseName"], 125); ItemListView.Columns.Add(MainForm.CurrentLanguage["Type"], 70); ItemListView.MouseDoubleClick += (s, e) => { int id = Convert.ToInt32(ItemListView.SelectedItems[0].Text.ToString()); var player = HackContext.GameContext.MyPlayer; int num = Functions.GameObjects.Item.NewItem(HackContext.GameContext, player.X, player.Y, 0, 0, id, ItemData.Data[id].MaxStack, false, 0, true); Functions.GameObjects.NetMessage.SendData(HackContext.GameContext, 21, -1, -1, 0, num, 0, 0, 0, 0, 0, 0); }; ContextMenuStrip strip = ItemListView.ContextMenuStrip = new ContextMenuStrip(); strip.Items.Add(MainForm.CurrentLanguage["AddToInvMax"]).Click += (s, e) => { int id = Convert.ToInt32(ItemListView.SelectedItems[0].Text.ToString()); var player = HackContext.GameContext.MyPlayer; int num = Functions.GameObjects.Item.NewItem(HackContext.GameContext, player.X, player.Y, 0, 0, id, ItemData.Data[id].MaxStack, false, 0, true); Functions.GameObjects.NetMessage.SendData(HackContext.GameContext, 21, -1, -1, 0, num, 0, 0, 0, 0, 0, 0); }; strip.Items.Add(MainForm.CurrentLanguage["AddToInvOne"]).Click += (s, e) => { int id = Convert.ToInt32(ItemListView.SelectedItems[0].Text.ToString()); var player = HackContext.GameContext.MyPlayer; int num = Functions.GameObjects.Item.NewItem(HackContext.GameContext, player.X, player.Y, 0, 0, id, 1, false, 0, true); Functions.GameObjects.NetMessage.SendData(HackContext.GameContext, 21, -1, -1, 0, num, 0, 0, 0, 0, 0, 0); }; strip.Items.Add(MainForm.CurrentLanguage["ShowRecipeTree"]).Click += (s, e) => { int id = Convert.ToInt32(ItemListView.SelectedItems[0].Text.ToString()); RecipeTreeForm.ShowTree(id); }; ItemListView.SelectedIndexChanged += ItemListView_SelectedIndexChanged; ItemInfoPage = new ItemInfoSubPage(); ItemInfoPage.OnRequireItemDoubleClick += RequireItems_MouseDoubleClick; ItemInfoPage.OnRecipeToItemDoubleClick += RecipeToItems_MouseDoubleClick; AccInfoPage = new AccInfoSubPage(); SearcherPage = new ItemSearcherSubPage(); SearcherPage.BlockCheckBox.CheckedChanged += Filter_CheckedChanged; SearcherPage.WallCheckBox.CheckedChanged += Filter_CheckedChanged; SearcherPage.HeadCheckBox.CheckedChanged += Filter_CheckedChanged; SearcherPage.BodyCheckBox.CheckedChanged += Filter_CheckedChanged; SearcherPage.LegCheckBox.CheckedChanged += Filter_CheckedChanged; SearcherPage.AccessoryCheckBox.CheckedChanged += Filter_CheckedChanged; SearcherPage.MeleeCheckBox.CheckedChanged += Filter_CheckedChanged; SearcherPage.RangedCheckBox.CheckedChanged += Filter_CheckedChanged; SearcherPage.MagicCheckBox.CheckedChanged += Filter_CheckedChanged; SearcherPage.SummonCheckBox.CheckedChanged += Filter_CheckedChanged; SearcherPage.BuffCheckBox.CheckedChanged += Filter_CheckedChanged; SearcherPage.ConsumableCheckBox.CheckedChanged += Filter_CheckedChanged; SearcherPage.OthersCheckBox.CheckedChanged += Filter_CheckedChanged; SearcherPage.KeyWordTextBox.KeyDown += (s, e) => { if (e.KeyCode == Keys.Enter) { e.Handled = true; KeyWord = SearcherPage.KeyWordTextBox.Text; RefreshItems(); } }; SearcherPage.SearchButton.Click += (s, e) => { KeyWord = SearcherPage.KeyWordTextBox.Text; RefreshItems(); }; SearcherPage.ResetButton.Click += (s, e) => { KeyWord = ""; SearcherPage.KeyWordTextBox.Text = ""; RefreshItems(); }; InfoTabs = new MTabControl(); InfoTabs.TColor = Color.FromArgb(160, 160, 200); InfoTabs.Bounds = new Rectangle(460, 5, 270, 440); InfoTabs.Controls.Add(ItemInfoPage); InfoTabs.Controls.Add(AccInfoPage); InfoTabs.Controls.Add(SearcherPage); Controls.Add(ItemListView); Controls.Add(InfoTabs); }