Falscher Wert

10/20/2009 23:54 wensor#1
Code:
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <nomadmemory.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Werte", 633, 447, 192, 124)
$Zauber = GUICtrlCreateGroup("Zauber", 16, 16, 137, 201)
$Crit = GUICtrlCreateLabel("Kritisch", 22, 120, 78, 17)
$Tempo = GUICtrlCreateLabel("Tempowertung", 22, 152, 75, 17)
$SB = GUICtrlCreateLabel("Schadensboni", 22, 33, 80, 17)
$HB = GUICtrlCreateLabel("Heilungsboni", 22, 61, 81, 17)
$Treffer = GUICtrlCreateLabel("Trefferwertung", 22, 88, 81, 17)
$Reg = GUICtrlCreateLabel("Regeneration", 22, 184, 76, 17)
$SbZ = GUICtrlCreateLabel("0000", 112, 32, 28, 17)
$HbZ = GUICtrlCreateLabel("0000", 112, 62, 28, 17)
$TrefferZ = GUICtrlCreateLabel("0000", 112, 91, 28, 17)
$CritZ = GUICtrlCreateLabel("0000", 112, 118, 36, 17)
$TempoZ = GUICtrlCreateLabel("0000", 112, 150, 28, 17)
$RegZ = GUICtrlCreateLabel("0000", 112, 184, 28, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState()
#EndRegion ### END Koda GUI section ###
$Windowname = "World of Warcraft"

#Cs 
Ich gehe mal von aus wens mit einer 1 anfängt ist es genauso
als ob es mit einer 1 anfängt oder ??

$HbZ = "1"
$TrefferZ = "2"
$CritZ = "3"
$TempoZ = "4"
$RegZ = "5"

#Ce

func SbZahl()
$pid = WinGetProcess($windowname)
$ProcessInformation = _MemoryOpen($pid)
$SpaSdZ = "1xCCDDA08"
$SbZ = _MemoryRead($SpaSdZ, $ProcessInformation) ;Lesen
_MemoryClose($ProcessInformation)
return $SbZ ; Wert zurückgeben
EndFunc

While 1
	$msg = GUIGetMsg()
	GUICtrlSetData($Sbz,$SbZ)
	;GUICtrlSetData($HbZ)
	;GUICtrlSetData($TrefferZ)
	;GUICtrlSetData($CritZ)
	;GUICtrlSetData($TempoZ)
	;GUICtrlSetData($RegZ)
	Sleep(500);die werte ändern sich ja nicht so schnell
WEnd
So ich habe jetzt 2 Probleme:
1ste Problem: Der wert den er vom Ram ablesen soll wird faltsch wieder gegeben.

2tes Problem: Der slot wo drunter man den wert im ram findet ist immer ein anderer und ich habe keine lust das immer wieder neu einzugeben also ist meine frage: Ist das normal das der slot im ram sich immer ändert und ich ihn immer neu eingeben muss oder gibts ein script das den solt automatisch im ram findet und ihn als variable angibt ???
10/21/2009 08:48 buFFy!#2
O.M.G.. nach langem raten hab ich erstmal dein Problem verstanden..

Du hast bei MemoryRead vermutlich einen falschen Datentyp angegeben. Default = 'dword'.
Was gibt deine Addresse denn an? Vermutlich ist sie nämlich 'float' oder 'char[x]'.

Zum anderen Ding: Das ist DMA (Dynamic Memory Allocation).. entweder du defeatest es (schaffst du nicht xD) oder du suchst nen Pointer (schaffst du vielleicht...)

Adroxxx hat dafür ein Tutorial geschrieben: [Only registered and activated users can see links. Click Here To Register...]