_MemoryReadPointer gibt mir 0 zurück Oo

02/25/2011 04:42 NewbieExtrem#1
Heyho, wollte mir für LC-Ger 'nen HP-Scanner basteln in AutoIt.
Das ganze sieht bei mir zur Zeit so aus:
Code:
#Include <Timers.au3>
#include <EditConstants.au3> 
#Include <nomadmemory.au3>

#NoTrayIcon

WinWaitActive("[CLASS:Nksp]")
$Open = _MemoryOpen(ProcessExists("Nksp.exe"))
	If @error Then MsgBox(4096, "Fehler", "Konnte den richtige Prozess nicht finden!")

#Region GUI
GUICreate("HP-Scanner", 240, 75) 
GUISetBkColor(0xFFFFFF)
$pBar = GUICtrlCreateProgress(10, 10, 220, 36)
$LabelCurHp = GUICtrlCreateLabel( "X", 10, 49)
$LabelMaxHp = GUICtrlCreateLabel( "X", 180, 49)

GUISetState(@SW_SHOW) 
#EndRegion


Global $TargetHP_cur_offset[2] = [0, 0x108F54]
Global $TargetHP_max_offset[2] = [0, 0x108F50]
$base = 0x106A9B00

$tGot = 0

While 1
	;Select close msg and buttons
	$p_msg = GUIGetMsg()
	
	Select
	
		case $p_msg = -3
			ExitLoop
		
	EndSelect
		
	If $tGot = 0 Then
		$tStart = TimerInit()
		$tGot = 1
	EndIf
	
	If $tGot = 1 Then
		If TimerDiff( $tStart ) >= 3000 Then
			
			$tGot = 0
			_read()
		EndIf
	EndIf
	

	
		
	
WEnd

Func _read()
	$HP_Cur = _MemoryPointerRead($base, $Open,  $TargetHP_cur_offset)
	$HP_Max = _MemoryPointerRead($base, $Open,  $TargetHP_max_offset)
	GUICtrlSetData($LabelCurHp, $HP_Cur[1])
	GUICtrlSetData($LabelMaxHp, $HP_Max[1])
	$percent = ($HP_Cur[1]/100)/($HP_Max[1]/100)*100
	GUICtrlSetData($pBar, Round($percent, 0))
EndFunc
Schön und gut, aber in der GUI schreibt mir der jetzt nicht die HP vom target hin sondern bloß 0.
Wieso ist das so, und was in aller Welt muss ich machen, dass das Script tut was es soll? :confused:

Ich bitte euch um Hilfe, unter euch ist doch bestimmt einer der's weiß wo der Fehler liegt :handsdown:
02/25/2011 15:54 KDeluxe#2
Im Prinzip hast du gar keinen Fehler. Du solltest die Werte aber auch nur ändern, wenn es nötig ist. Hier mal ein Beispiel, wie du das machen kannst:
PHP Code:
#NoTrayIcon
#Include <NomadMemory.au3>

#Region GUI
GUICreate("HP-Scanner"24075)
GUISetBkColor(0xFFFFFF)
$BarHp GUICtrlCreateProgress(101022036)
$LabelCurHp GUICtrlCreateLabel("0"1049)
$LabelMaxHp GUICtrlCreateLabel("0"18049)
GUISetState(@SW_SHOW)
#EndRegion

$Base 0x106A9B00
Global $TargetHP_cur_offset[2] = [00x108F54]
Global 
$TargetHP_max_offset[2] = [00x108F50]

While 
Sleep(10)
    If 
GUIGetMsg() == -3 Then Exit

    
$PID WinGetProcess("[CLASS:Nksp]")
    If 
$PID 0 Then
        $Open 
_MemoryOpen($PID)
        If 
Not @error Then
            $HP_Cur 
_MemoryPointerRead($base$Open,  $TargetHP_cur_offset)
            
$HP_Max _MemoryPointerRead($base$Open,  $TargetHP_max_offset)

            If 
GUICtrlRead($LabelCurHp) <> $HP_Cur[1Then GUICtrlSetData($LabelCurHp$HP_Cur[1])
            If 
GUICtrlRead($LabelMaxHp) <> $HP_Max[1Then GUICtrlSetData($LabelMaxHp$HP_Max[1])

            
$Percent $HP_Cur[1] * 100 $HP_Max[1]
            If 
GUICtrlRead($BarHp) <> $Percent Then GUICtrlSetData($BarHp$Percent)
        EndIf
    EndIf
WEnd 
AutoIt kannst du für alle LC Versionen von Gamigo vergessen, XTrap ist das Problem. Für 10 Minuten würde es sich schließlich nicht rentieren.
02/26/2011 23:23 NewbieExtrem#3
nja das es sich schliest ist bei mir nicht der fall habe ja den 64 bit .net trainer am laufen und da antiautoit bypass an und es rennt stunden aber ich krieg immer 0 als wert zurück =/

Kann es vllt sein das ich den wert 0 rauskriege da meine nomadmemory outdatet ist?
02/27/2011 17:12 KDeluxe#4
Quote:
Originally Posted by KillerDeluxe View Post
AutoIt kannst du für alle LC Versionen von Gamigo vergessen, XTrap ist das Problem.
"Anti AutoIt" bringt dir rein gar nichts.
02/28/2011 00:04 NewbieExtrem#5
also liegts daran das ich den wert 0 raus krieg? ^^