0

I have a CheatEngine script

game.exe+2F6D0E8]+478]+560]+198]+60]+470

And I want to use it in C #

            long num = MemoryHelper.ReadMemory<long>(MemoryHelper.BaseAddress + 0x2F6D0E8, 8, false);
            num = MemoryHelper.ReadMemory<long>(num + 0x470, 8, false);
            num = MemoryHelper.ReadMemory<long>(num + 0x60, 8, false);
            num = MemoryHelper.ReadMemory<long>(num + 0x198, 8, false);
            num = MemoryHelper.ReadMemory<long>(num + 0x560, 8, false);
            num = MemoryHelper.ReadMemory<long>(num + 0x478, 8, false);

            Debug.WriteLine("Offset" + num);

But it returns 0, what im doing wrong?

Bodyan
  • 1
  • Are the offsets reversed between the script and code for a reason? Also, are the offsets in hex or decimal? There is a curious lack of A..F characters. – user2864740 May 25 '20 at 20:05
  • Im not sure that I understand your question correctly, but the value I need changes every time I enter the game. – Bodyan May 25 '20 at 20:14
  • In the command line the order is 2F6D0E8,478,560,198,60,470. In the program the order is 2F6D0E8,470,60,198,560,478 - is this reversal intentional? – user2864740 May 25 '20 at 20:18
  • Also, in the command-line, are _all_ the values in hex? – user2864740 May 25 '20 at 20:19
  • tried both sequences all values in long, like 1900081523408 – Bodyan May 25 '20 at 20:28

1 Answers1

0

Everything broke just on the last offset, you had to use it separately. Like

        long num = MemoryHelper.ReadMemory<long>(MemoryHelper.BaseAddress + 0x2F6D0E8, 8, false);
        num = MemoryHelper.ReadMemory<long>(num + 0x470, 8, false);
        num = MemoryHelper.ReadMemory<long>(num + 0x60, 8, false);
        num = MemoryHelper.ReadMemory<long>(num + 0x198, 8, false);
        num = MemoryHelper.ReadMemory<long>(num + 0x560, 8, false);
        //num = MemoryHelper.ReadMemory<long>(num + 0x478, 8, false);

        Debug.WriteLine("Offset" + (num + 0x478);
Bodyan
  • 1