Esempio n. 1
0
 public string GetUnitName()
 {
     using (WindowsApi.ProcessMemory mem = new WindowsApi.ProcessMemory(_gameContext.ProcessId))
     {
         return(mem.ReadChar4((IntPtr) unchecked (_newChildrenArgs.ThisUnitAddress + 0x30)));
     }
 }
Esempio n. 2
0
 private string GetItemName()
 {
     using (WindowsApi.ProcessMemory mem = new WindowsApi.ProcessMemory(_gameContext.ProcessId))
     {
         return(mem.ReadChar4((IntPtr) unchecked (_newChildrenArgs.CurrentItemPackAddress + 0x30)));
     }
 }
Esempio n. 3
0
        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();
                }
            }
        }