I'd help but i've never even glanced at autoit so i aint got a clue, i can help people willing to learn the C/C++ way though...
Heres something i posted on another site about 4 years ago...
Code: Register to unlock hidden link
/*
Example:
dwAddressOfHealth = GetPointerEx( hOpenedGame, 0x1BD2F20, 2, 0x570, 0 );
*/
#define MAX_PTR_LEVEL 12
DWORD GetPointerEx ( HANDLE hGameProc, DWORD BasePtr, int Level, ...)
{
BYTE buf[ sizeof( DWORD ) ];
DWORD dwPrev;
va_list arglist;
DWORD arg[MAX_PTR_LEVEL];
int i, j;
if( !hGameProc || Level < 1 || Level > MAX_PTR_LEVEL )
return NULL;
va_start ( arglist, Level );
for ( i = Level, j = 0; i > 0; i-- )
arg[j++] = va_arg ( arglist, DWORD );
va_end ( arglist );
dwPrev = BasePtr;
for( i = 0; i < Level; i++ )
{
*(DWORD*)buf = 0;
if(!(ReadProcessMemory( hGameProc, (LPCVOID)dwPrev, buf, sizeof(DWORD), NULL )))
return NULL;
dwPrev = ( *(DWORD*)buf + arg[i] );
if( dwPrev <= 0 || dwPrev == arg[i] )
return NULL;
}
return ( dwPrev );
}
^ That would get the address that contains the health, which you can then read using something like this..
Code: Register to unlock hidden link
// Example:
// printf( "Your Health is: %i\n", GetIntEx( dwAddressOfHealth ) );
float GetIntEx( HANDLE hGameProc, DWORD dwAddr )
{
int ret;
BYTE buf[ sizeof( int ) ];
if( !( ReadProcessMemory( hGameProc, (void*)dwAddr, buf, sizeof(int), NULL ) ) )
return NULL;
ret = *(int*)buf;
memset( buf,0, sizeof(int) );
return ret;
}