public string GetUnitName() { using (WindowsApi.ProcessMemory mem = new WindowsApi.ProcessMemory(_gameContext.ProcessId)) { return(mem.ReadChar4((IntPtr) unchecked (_newChildrenArgs.ThisUnitAddress + 0x30))); } }
private string GetItemName() { using (WindowsApi.ProcessMemory mem = new WindowsApi.ProcessMemory(_gameContext.ProcessId)) { return(mem.ReadChar4((IntPtr) unchecked (_newChildrenArgs.CurrentItemPackAddress + 0x30))); } }
private void FillAddressList(int functionNodeId) { // To set the right window viewData.Items.Clear(); foreach (IAddressNode addressLine in _mainTrainer.GetAddressList()) { if (addressLine.ParentIndex != functionNodeId) { continue; } viewData.Items.Add(new ListViewItem( new string[] { addressLine.Caption, // Caption "", // Original value "" // Modified value })); viewData.Items[viewData.Items.Count - 1].Tag = addressLine; } // To get memory content using (WindowsApi.ProcessMemory mem = new WindowsApi.ProcessMemory(_currentGameContext.ProcessId)) { foreach (ListViewItem currentItem in viewData.Items) { IAddressNode addressLine = currentItem.Tag as IAddressNode; if (addressLine == null) { continue; } Object itemValue; switch (addressLine.ValueType) { case AddressListValueType.Integer: itemValue = mem.ReadInt32((IntPtr)addressLine.Address) / addressLine.ValueScale; break; case AddressListValueType.Float: itemValue = mem.ReadFloat((IntPtr)addressLine.Address) / addressLine.ValueScale; break; case AddressListValueType.Char4: itemValue = mem.ReadChar4((IntPtr)addressLine.Address); break; default: itemValue = ""; break; } currentItem.SubItems[1].Text = itemValue.ToString(); } } }