О программе
У меня есть программа, которая записывает в память игры, в которой я экспериментирую. код работает для меня очень хорошо, когда я использую обычный статический адрес, но по какой-то причине я не могу это сделать, как только найду рабочий указатель. Например, я нахожу это в Cheat Engine после сканирования указателя несколько раз:
Этот адрес работает каждый раз, когда я загружаю игру и редактирую ее. Проблема в том, что я не понимаю, как ее использовать в моей программе. Здесь мои объявленные переменные, которые я попытался подключить к значениям:
bool UnlimitedAmmo = false;
string AmmoPointer = "031B7324"; // <--- The address
int[] AmmoOffset = { 0x2c, 0x1e8, 0x3c8, 0x6d4, 0x508 }; // <--- It pointers
int AmmoToFill = 1337; // <--- The Amount of ammo to give
Я передаю эти переменные следующим образом:
MyMemory.ReadProcess = MyProcess[0];
MyMemory.Open();
int PointerAddress = HexToDec(AmmoPointer);
int[] PointerOffest = AmmoOffset;
int BytesWritten;
byte[] ValueToWrite = BitConverter.GetBytes(AmmoToFill);
string WrittenAddress = MyMemory.PointerWrite((IntPtr)PointerAddress, ValueToWrite,
PointerOffest, out BytesWritten);
MyMemory.CloseHandle();
Я когда-то использовал статический адрес (для другой игры), и мой код работал нормально, как только я подключил адрес и смещение. На этот раз я в тупик. Любая помощь и объяснения будут глубоко оценены. Спасибо заранее.