Я пытался сделать трейнер для игры как своего рода учебный проект в Visual Studio, но я полностью застрял.
Что я хочу сделать, это прочитать значение позиции Y в игру и поместите возвращаемое значение с плавающей точкой в текстовое поле всякий раз, когда нажимается кнопка btnConnect
, поэтому он показывает позицию Y игрока, но что бы я ни пытался, я всегда получаю «0» в текстовом поле valPosY
вместо «2992.065918». см. Cheat Engine.
Код:
private void btnConnect_Click(object sender, EventArgs e)
{
btnConnect.Enabled = false;
Process[] processes = Process.GetProcessesByName("QUBE-Win64-Shipping");
if (processes.Length > 0)
{
btnConnect.Text = "Connected!";
Process GameProcess = processes[0];
VAMemory vam = new VAMemory("QUBE-Win64-Shipping");
IntPtr Base = GameProcess.MainModule.BaseAddress + 0x0290B008;
Base = IntPtr.Add((IntPtr)vam.ReadInt32(Base), 0x58);
Base = IntPtr.Add((IntPtr)vam.ReadInt32(Base), 0x340);
Base = IntPtr.Add((IntPtr)vam.ReadInt32(Base), 0x18);
Base = IntPtr.Add((IntPtr)vam.ReadInt32(Base), 0x100);
Base = IntPtr.Add((IntPtr)vam.ReadInt32(Base), 0x198);
float valY = vam.ReadFloat(Base);
valPosY.Text = valY.ToString();
}
else
{
btnConnect.Enabled = true;
MessageBox.Show("Could not find a process named 'QUBE-Win64-Shipping'!", "Error Finding Process", MessageBoxButtons.OK);
}
}
Если я закрываю игру, оператор if не проходит, поэтому это означает, что он должен получить правильный процесс, который мне нужен.
Это указатель, который я получил с помощью Cheat Engine.
Я также не получаю никаких сообщений об ошибках или предупреждений.
Пожалуйста, сообщите Если потребуется дополнительная информация, любая помощь будет принята с благодарностью!