AHK auslesen von HP funkt nicht

  • Hallo zusammen, habe folgenden Code gefunden:




    ReadMemory(MADDRESS,PROGRAM)
    {
    winget, pid, PID, %PROGRAM%
    VarSetCapacity(MVALUE,4,0)
    ProcessHandle := DllCall("OpenProcess", "Int", 24, "Char", 0, "UInt", pid, "UInt")
    DllCall("ReadProcessMemory","UInt",ProcessHandle,"UInt",MADDRESS,"Str",MVALUE,"UInt",4,"UInt *",0)
    Loop 4
    result += *(&MVALUE + A_Index-1) << 8*(A_Index-1)
    return, result
    }
    ReadMemoryFloat(MADDRESS=0,PROGRAM="")
    {
    Static OLDPROC, ProcessHandle
    VarSetCapacity(MVALUE,4,0)
    If PROGRAM != %OLDPROC%
    {
    WinGet, pid, pid, % OLDPROC := PROGRAM
    ProcessHandle := ( ProcessHandle ? 0*(closed:=DllCall("CloseHandle"
    ,"UInt",ProcessHandle)) : 0 )+(pid ? DllCall("OpenProcess"
    ,"Int",2035711,"Int",0,"UInt",pid) : 0)
    }
    If (ProcessHandle) && DllCall("ReadProcessMemory","UInt"
    ,ProcessHandle,"UInt",MADDRESS,"Str",MVALUE,"UInt",4,"UInt *",0)
    {
    MVALUE := *(&MVALUE+3)<<24 | *(&MVALUE+2)<<16 | *(&MVALUE+1)<<8 | *(&MVALUE)
    return (1-2*(MVALUE>>31)) * (2**((MVALUE>>23 & 255)-127)) * (1+(MVALUE & 8388607)/8388608)
    }
    return !ProcessHandle ? "Handle Closed: " closed : "Fail"
    }


    1::
    pointer:=ReadMemory(0x00B6F5F0,"GTA:SA:MP")
    Health:=ReadMemoryFloat(pointer+1344,"GTA:SA:MP")
    Armor:=ReadMemoryFloat(pointer+1352,"GTA:SA:MP")
    SendInput tIch habe noch %Health% HP & %Armor% Rüstung{Enter}
    Return



    Mein Problem ist, dieser funktioniert nicht richtig.
    Im Chat steht nacher dort wo die HP stehen sollen immer 00.000000 obwohl ich irgendwie 90HP habe.


    Woran könnte das Liegen?


    Habe das Betriebssystem Windows 8



    Freundlicher Gruss
    Black_Mamba