private void button1_Click(object sender, EventArgs e) { if (hexText.Text == "" && decText.Text != "") { int hexValue = int.Parse(decText.Text); hexText.Text = IDToHex.idToHex(hexValue); } if (decText.Text == "" && hexText.Text != "") { char[] decValue = hexText.Text.ToCharArray(); HexToID.hexToID(decValue); string resultHex = new string(decValue); if (resultHex == "FFFF") { //isEmpty = true; } else if (resultHex.EndsWith("0")) { resultHex = resultHex.Substring(0, resultHex.Length - 1); } int resultHex2 = Convert.ToInt32(resultHex, 16); decText.Text = resultHex2.ToString(); } }
void writeToPlayer() { timer2.Interval = 2000; timer2.Tick += timer2_Tick; timer2.Start(); saveToolStripMenuItem2.Enabled = false; main m = (main)this.MdiParent; var s = m.statusLabelPlayer; s.Text = "Player file saved!"; // Write all changed values to file using (var bw = new BinaryWriter(File.OpenWrite(playerFile))) { playerName = nameText.Text; // Clear all name characters for (int i = 0x57; i <= 0x66; i++) { bw.BaseStream.Position = i; bw.Write(0x00); } // Write player name bw.BaseStream.Position = 0x57; bw.Write(playerName); // Write health bw.BaseStream.Position = 0x538; if (healthBox.Value == 0xFFFF) { byte[] invincible = { 0x00, 0x00, 0xFF, 0xFF }; bw.Write(invincible); } else { health = (int)healthBox.Value; float hFloat = Convert.ToSingle(health); byte[] healthBytes = BitConverter.GetBytes(hFloat); bw.Write(healthBytes); } // Write characteristics // Hair color byte shiftValue = 4; bw.BaseStream.Position = 0x74; colorValue = Convert.ToByte((colorBox.SelectedItem as dynamic).Value); bw.Write((byte)(colorValue << shiftValue)); // Gender // 0 2 4 6 8 male // 1 3 5 6 7 female bw.BaseStream.Position = 0x75; switch (toneBox.SelectedValue) { case 1: // Very Light if (genderBox.SelectedValue == male) { skinID = 0; } else { skinID = 1; } break; case 2: // Light if (genderBox.SelectedValue == male) { skinID = 2; } else { skinID = 3; } break; case 3: // Tan if (genderBox.SelectedValue == male) { skinID = 4; } else { skinID = 5; } break; case 4: // Dark if (genderBox.SelectedValue == male) { skinID = 6; } else { skinID = 7; } break; case 5: // very Dark if (genderBox.SelectedValue == male) { skinID = 8; } else { skinID = 9; } break; } //bw.Write((byte)(genderValue << shiftValue)); // Hair style bw.BaseStream.Position = 0x75; styleValue = Convert.ToByte((styleBox.SelectedItem as dynamic).Value); bw.Write((byte)((skinID << shiftValue)) | (styleValue & 0x0F)); readHex(); // Write armor values void writeOffset(int start, TextBox textbox = null, NumericUpDown itemAmount = null) { int id = 65535; bw.BaseStream.Position = start; english englishItems = JsonConvert.DeserializeObject <english>(englishJson); if (textbox != null) { if (textbox.Text == "") { id = 65535; } else { foreach (var item in englishItems.treasures) { englishID = item.id; englishName = item.name; if (textbox.Text == englishName) { id = englishID; //id = int.Parse(textbox.Text); } } } IDToHex.idToHex(id); bw.Write(id); } else if (textbox == null) { id = int.Parse(numericUpDown1.Value.ToString()); IDToHex.idToHex(id); bw.Write(id); } bw.BaseStream.Position = start + 6; // For toggle render bw.Write(0x00); } writeOffset(helm, helmText); writeOffset(chest, chestText); writeOffset(legs, legsText); writeOffset(feet, feetText); // Write treeview values if (treeView1.SelectedNode == null) { return; } else { if (itemBox.Text == "") { treeView1.SelectedNode.Text = "[Empty]"; numericUpDown1.Value = 0; } else if (itemBox.Text == "0") { treeView1.SelectedNode.Text = "[Empty]"; numericUpDown1.Value = 0; } treeView1.SelectedNode.Text = itemBox.Text; // Invenory items for (var i = 0; i < hots.Length; i++) { int[] tag = { hots[i], hotsAmount[i] }; treeView1.Nodes[0].Nodes[i].Tag = tag[0]; //hots[i]; } for (var i = 0; i < slots.Length; i++) { int[] tag = { slots[i], slotsAmount[i] }; treeView1.Nodes[1].Nodes[i].Tag = tag[0]; } int selectedItem = Convert.ToInt32(treeView1.SelectedNode.Tag); writeOffset(selectedItem, itemBox); // Item amounts for (var i = 0; i < hots.Length; i++) { int[] tag = { hots[i], hotsAmount[i] }; treeView1.Nodes[0].Nodes[i].Tag = tag[1]; //hots[i]; } for (var i = 0; i < slots.Length; i++) { int[] tag = { slots[i], slotsAmount[i] }; treeView1.Nodes[1].Nodes[i].Tag = tag[1]; } selectedAmount = Convert.ToInt32(treeView1.SelectedNode.Tag); writeOffset(selectedAmount, null, numericUpDown1); } } // Read to itemAmount again using (var br = new BinaryReader(File.OpenRead(playerFile))) { var treeHots = treeView1.Nodes[0]; for (var i = 0; i < hots.Length; i++) { //readOffset(hots[i], hotsEnds[i], hotNames[i], null, treeHots, null, br); readOffset(hotsAmount[i], hotsAmountEnds[i], hotNames[i], null, null, numericUpDown1, br); //treeHots.Tag = hots[i]; if (numericUpDown1.Value > numericUpDown1.Maximum) { numericUpDown1.Value = 0xFFFF; } //int[] tag = { hots[i], hotsAmount[i] }; treeView1.Nodes[0].Nodes[i].Tag = tags[i]; } tags.Clear(); var treeSlots = treeView1.Nodes[1]; for (var i = 0; i < slots.Length; i++) { //readOffset(slots[i], slotsEnds[i], slotNames[i], null, treeSlots, null, br); readOffset(slotsAmount[i], slotsAmountEnds[i], null, null, null, numericUpDown1, br); //treeSlots.Tag = slots[i]; if (numericUpDown1.Value > numericUpDown1.Maximum) { numericUpDown1.Value = 0xFFFF; } //int[] tag = { slots[i], slotsAmount[i] }; treeView1.Nodes[1].Nodes[i].Tag = tags[i]; } tags.Clear(); } }