Verwenden von Zeigern in Cheat Engine in C #

Über das Programm

Ich habe ein Programm, das in die Erinnerung an das Spiel schreibt, mit dem ich experimentiere. Der Code funktioniert für mich einwandfrei, wenn ich eine normale statische Adresse verwende, aber aus irgendeinem Grund kann ich es nicht tun, wenn ich einen funktionierenden Zeiger gefunden habe. Zum Beispiel finde ich dies in der Cheat Engine, nachdem der Zeiger einige Male gescannt wurde:

Diese Adresse funktioniert jedes Mal, wenn ich das Spiel lade und den Wert bearbeite. Das Problem ist, dass ich nicht verstehe, wie ich es in meinem Programm verwenden soll. Hier sind meine deklarierten Variablen, die ich versucht habe, die Werte einzufügen:

bool UnlimitedAmmo = false;
string AmmoPointer = "031B7324"; // <--- The address
int[] AmmoOffset = { 0x2c, 0x1e8, 0x3c8, 0x6d4, 0x508 }; // <--- It's pointers
int AmmoToFill = 1337; // <--- The Amount of ammo to give

Ich übergebe diese Variablen wie folgt:

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();

Ich habe einmal eine statische Adresse verwendet (für ein anderes Spiel) und mein Code hat einwandfrei funktioniert, sobald ich die Adresse und den Offset eingegeben habe. Diesmal bin ich ratlos. Jede Hilfe und Erklärungen wäre sehr dankbar. Danke im Voraus

Antworten auf die Frage(2)

Ihre Antwort auf die Frage