public string parse(TeraPacketWithData packet) { StringBuilder sb = new StringBuilder(); sb.Append("Offset 00 01 02 03 04 05 06 07 | 08 09 0A 0B 0C 0D 0E 0F 0123456789ABCDEF\n"); for (int i = 0; i < packet.data.Length; i += 16) { sb.AppendFormat(" {0:X4}: {1,-24}| {2,-24} {3,-16}\n", i, packet.toHex(i, i + 8, " "), packet.toHex(i + 8, i + 16, " "), packet.toSingleString(i, i + 16)); } sb.Append("\n"); //тут начало луа this.packet = packet; elements.Clear(); //Console.WriteLine(lua.DoString("return 1+1")); try { lua.DoString(script); } catch (Exception e) { MessageBox.Show(e.Message); } this.packet = null; //тут конец foreach (var el in elements) { sb.AppendFormat("{0:X4} - {1} : {2} : {3}\n", el.start, el.name, el.value, el.type); } return(sb.ToString()); }
private void textBoxValue_TextChanged(object sender, TextChangedEventArgs e) { if (_preventTextBoxEvents) { return; } _preventTextBoxEvents = true; try { try { switch (comboBoxType.SelectedItem.ToString()) { case "byte": textBoxHex.Text = byte.Parse(textBoxValue.Text).ToString("X2"); break; case "sbyte": textBoxHex.Text = sbyte.Parse(textBoxValue.Text).ToString("X2"); break; case "ushort": textBoxHex.Text = TeraPacketWithData.toHex(BitConverter.GetBytes(ushort.Parse(textBoxValue.Text))); break; case "short": textBoxHex.Text = TeraPacketWithData.toHex(BitConverter.GetBytes(short.Parse(textBoxValue.Text))); break; case "uint": textBoxHex.Text = TeraPacketWithData.toHex(BitConverter.GetBytes(uint.Parse(textBoxValue.Text))); break; case "int": textBoxHex.Text = TeraPacketWithData.toHex(BitConverter.GetBytes(int.Parse(textBoxValue.Text))); break; case "ulong": textBoxHex.Text = TeraPacketWithData.toHex(BitConverter.GetBytes(ulong.Parse(textBoxValue.Text))); break; case "long": textBoxHex.Text = TeraPacketWithData.toHex(BitConverter.GetBytes(long.Parse(textBoxValue.Text))); break; case "float": textBoxHex.Text = TeraPacketWithData.toHex(BitConverter.GetBytes(float.Parse(textBoxValue.Text))); break; case "double": textBoxHex.Text = TeraPacketWithData.toHex(BitConverter.GetBytes(double.Parse(textBoxValue.Text))); break; case "singleChar": textBoxHex.Text = TeraPacketWithData.toHex(BitConverter.GetBytes(char.Parse(textBoxValue.Text))); break; case "doubleChar": textBoxHex.Text = TeraPacketWithData.toHex(BitConverter.GetBytes(char.Parse(textBoxValue.Text))); break; case "singleString": textBoxHex.Text = TeraPacketWithData.toHex(TeraPacketWithData.fromSingleString(textBoxValue.Text)); break; case "doubleString": textBoxHex.Text = TeraPacketWithData.toHex(TeraPacketWithData.fromDoubleString(textBoxValue.Text)); break; case "bool": textBoxHex.Text = TeraPacketWithData.toHex(BitConverter.GetBytes(bool.Parse(textBoxValue.Text))); break; case "hex": textBoxHex.Text = TeraPacketWithData.toHex(TeraPacketWithData.fromHex(textBoxValue.Text)); break; } } catch { textBoxHex.Text = "ERROR"; } } catch { } _preventTextBoxEvents = false; }
private void textBoxHex_TextChanged(object sender, TextChangedEventArgs e) { if (_preventTextBoxEvents) { return; } _preventTextBoxEvents = true; try { try { switch (comboBoxType.SelectedItem.ToString()) { case "byte": textBoxValue.Text = TeraPacketWithData.toByte(TeraPacketWithData.fromHex(textBoxHex.Text), 0).ToString(); break; case "sbyte": textBoxValue.Text = TeraPacketWithData.toSByte(TeraPacketWithData.fromHex(textBoxHex.Text), 0).ToString(); break; case "ushort": textBoxValue.Text = TeraPacketWithData.toUInt16(TeraPacketWithData.fromHex(textBoxHex.Text), 0).ToString(); break; case "short": textBoxValue.Text = TeraPacketWithData.toInt16(TeraPacketWithData.fromHex(textBoxHex.Text), 0).ToString(); break; case "uint": textBoxValue.Text = TeraPacketWithData.toUInt32(TeraPacketWithData.fromHex(textBoxHex.Text), 0).ToString(); break; case "int": textBoxValue.Text = TeraPacketWithData.toInt32(TeraPacketWithData.fromHex(textBoxHex.Text), 0).ToString(); break; case "ulong": textBoxValue.Text = TeraPacketWithData.toUInt64(TeraPacketWithData.fromHex(textBoxHex.Text), 0).ToString(); break; case "long": textBoxValue.Text = TeraPacketWithData.toInt64(TeraPacketWithData.fromHex(textBoxHex.Text), 0).ToString(); break; case "float": textBoxValue.Text = TeraPacketWithData.toSingle(TeraPacketWithData.fromHex(textBoxHex.Text), 0).ToString(); break; case "double": textBoxValue.Text = TeraPacketWithData.toDouble(TeraPacketWithData.fromHex(textBoxHex.Text), 0).ToString(); break; case "singleChar": textBoxValue.Text = TeraPacketWithData.toSingleChar(TeraPacketWithData.fromHex(textBoxHex.Text), 0).ToString(); break; case "doubleChar": textBoxValue.Text = TeraPacketWithData.toDoubleChar(TeraPacketWithData.fromHex(textBoxHex.Text), 0).ToString(); break; case "singleString": textBoxValue.Text = TeraPacketWithData.toSingleString(TeraPacketWithData.fromHex(textBoxHex.Text), 0, 10000); break; case "doubleString": textBoxValue.Text = TeraPacketWithData.toDoubleString(TeraPacketWithData.fromHex(textBoxHex.Text), 0, 10000); break; case "bool": textBoxValue.Text = TeraPacketWithData.toBoolean(TeraPacketWithData.fromHex(textBoxHex.Text), 0).ToString(); break; case "hex": textBoxValue.Text = TeraPacketWithData.toHex(TeraPacketWithData.fromHex(textBoxHex.Text)); break; } } catch { textBoxValue.Text = "ERROR"; } } catch { } _preventTextBoxEvents = false; }
public object addElement(string name, int start, string type, int end = 0) { object val; switch (type) { case "byte": val = packet.toByte(start); break; case "sbyte": val = packet.toSByte(start); break; case "ushort": val = packet.toUInt16(start); break; case "short": val = packet.toInt16(start); break; case "uint": val = packet.toUInt32(start); break; case "int": val = packet.toInt32(start); break; case "ulong": val = packet.toUInt64(start); break; case "long": val = packet.toInt64(start); break; case "float": val = packet.toSingle(start); break; case "double": val = packet.toDouble(start); break; case "singleChar": val = packet.toSingleChar(start); break; case "doubleChar": val = packet.toDoubleChar(start); break; case "singleString": val = packet.toSingleString(start, end); break; case "doubleString": val = packet.toDoubleString(start, end); break; case "bool": val = packet.toBoolean(start); break; case "hex": val = packet.toHex(start, end); break; default: val = "[UNKNOWN]"; break; } elements.Add(new PacketElement(name, (ushort)start, type, val, (ushort)end)); if (val is string) { return((val as string).Length); } return(val); }