总的来说,这是一个问题,我最近才开始使用 Cheat Engine,我决定编写一个程序来简单地显示玩家的生命值以供进一步使用。
if (baseAddress == 0) {
ImGui::Text("Base Address not found");
}
else {
uintptr_t offset = (baseAddress + 0x0017E0A8) + 0xEC;
int currentValue = ReadValueByOffset<int>(processId, baseAddress, offset);
ImGui::Text("Health %.s", currentValue);
}
我不知道如何解释这一点,但我会尽力使其尽可能清楚,如果您通过作弊引擎查看基地址,它将与我的相同,但是当我使用它时,要添加我将使用的地址,我使用方括号,即 [ac_client.exe + 0x0017E0A8] + 0xEC 如果删除它们,它将是错误的地址,这些相同的方括号如何在作弊引擎中工作?如果我们将一个进程放在方括号中,那么它的地址也将不同于基地址,这是如何工作的?
"ac_client.exe"-- 找到 ac_client.exe 内存区域开始的第一个单元格"ac_client.exe"+0017E0A8-- 从第一个单元格进一步移动 17E0A8 个字节。["ac_client.exe"+0017E0A8]-- 获取该单元格中的内容,即括号内要计算的索引,然后将其解释为内存中的新地址。["ac_client.exe"+0017E0A8]+EC-- 从这个新地址进一步移动另一个 EC 字节。[["ac_client.exe"+0017E0A8]+EC]-- 将新内容解释为内存中的另一个地址。[[["ac_client.exe"+0017E0A8]+EC]+0]-- 从下一个新单元开始,不移动任何地方,使用其内容作为内存中的新地址。[[["ac_client.exe"+0017E0A8]+EC]+0]-123...——转变也可能是负的。投资数量没有限制。