C# VAMemory read float возвращает 0 - PullRequest
0 голосов
/ 07 марта 2020

Я пытался сделать трейнер для игры как своего рода учебный проект в 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.

Я также не получаю никаких сообщений об ошибках или предупреждений.
Пожалуйста, сообщите Если потребуется дополнительная информация, любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 07 марта 2020

После еще нескольких часов царапин на голове я понял, что действительно глуп, и мне приходилось менять каждые ReadInt32(Base) на ReadInt64(Base).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...