Diskussionen über Memorys

04/01/2009 15:28 Specter cason#406
Quote:
Originally Posted by Painful Pete View Post
Hast du das in der tt6.au3 auch geändert?

Glaub in Zeile 31 war das, da steht nochmal was von Guild Wars in nem IniRead.
Trag da auch mal Guild Wars 1 ein und schau ob da als Sektion in der tt6.ini [id] oder [ids] steht.
da hatte ich auch mal probleme damit :)

EDIT: OK knapp daneben... Zeile 30 ist es ;)
-.- ich meinte doch dass ich in der au3 geändet hab sry... es kommt ja was im 2. fenster an aber halt nur dass er sich im kreis dreht im orginal fenster geht alles....
und vor dem mem update gings auch in mehreren fenstern nur jetzte nichtmehr find ich halt i-wie komisch und brauch ne lösung ;)
04/01/2009 22:26 kknb#407
was hat das mit dem autoupdater zu tun???
04/02/2009 08:41 Specter cason#408
naja nach de mupdate gings nimma deswegen hab ich gedacht dass des i-was mit den mems zu tun hat is aber geklährt danke
04/02/2009 21:29 NANAAA#409
also die memorys sind ja schon wieder anderst oder ?
weil iwie bewegt sich mein bot atm kein stück -.-
04/02/2009 21:36 Specter cason#410
Code:
; update.ini [Gw.exe] - __wadim 
; 31.3.2009 - 7:9

[SECTION 9-A]
AX					= 0xa05750
AY					= 0xa05754
AREA_ID					= 0xa06598
NO_NPC					= 0xa07334
DEATH					= 0xa057d4
MOUSE_COORDX				= 0xa05de0
MOUSE_COORDY				= 0xa05de4
CAMCOURSEA				= 0xa056c2
CAMCOURSEB				= 0xa05678
EX_AREA_ID				= 0xa03078
EXPANDERA				= 0xa05683
EXPANDERB				= 0xa05682
LVL					= 0xa030b8
PVP_PVE					= 0xa030c4
PING					= 0xa004dc
INTERFACE				= 0xa01b30
LOGIN					= 0xa057f0
EMAIL					= 0xa01b34
MOVETO_TARGET				= 0xa05dc4
MAPPLAYER				= 0xa05dcc
MAPTIME					= 0xa056b8
PNAME					= 0xa00528
STORAGE					= 0xa020a4
SELLBAGX				= 0xa02028
MOUSEACTION				= 0x9f99f0
MESSAGE					= 0xa05e27
INVENTAR				= 0xa02594
HERO					= 0xa02508
MMAP					= 0xa025e4
PARTY					= 0xa0265c
CHEST					= 0xa025a8
ALLBAG					= 0xa025bc
GUILD					= 0xa02574
SKILL					= 0xa02530
TRADE					= 0xa027b0
PARTYSEARCH				= 0xa02678
MERCHANT				= 0xa027d8
;x					= 0x0
;y					= 0x4
;width					= 0x8
;height					= 0x12

MOVECHAR				= 0xa05dac
;back					= 0x4
;left					= 0x8
;right					= 0xc
;tleft					= 0x10
;tright					= 0x14

[SECTION D]
POSX					= 0xd28d64
POSY					= 0xd28d68
CHECK_MAP				= 0xd28a00
NPC_ID_NEAR				= 0xd28610
NPC_ID_SELECT				= 0xd285f0
NPC_ID_MOUSE_SELECT			= 0xd285fc
CLIENTPATH				= 0xd295d8
KNOCKDOWN				= 0xd2a7b8

P_HEALTH				= 0xd28ab8
;_M_HP					= 0x130
;_M_E					= 0x11c
;_M_MAX_HP				= 0x134
;_M_MAX_E				= 0x120
04/02/2009 21:47 NANAAA#411
mhm hatte das schon , liegt also nciht an den Mem's und ja habe schon mit MousecourseB probiert

der bewegt sich kein bissel -.-

/edit hat sich geklärt danke :)
04/04/2009 20:55 NBA#412
Schau grad, was man da machen koennte, xninja...

Was fuer ne nomadmemory nutzen du (falls es da mehrere gibt..)

Code:
C:\Documents and Settings\*******\Desktop\tt6_V1.6\New AutoIt v3 Script.au3(59,61) : ERROR: _MemoryPointerRead(): undefined function.
$Value = _MemoryPointerRead($Address, $Handle, $Offset,'int')
Edit: Find auch nur 0 ...
04/04/2009 22:34 tonitusch666#413
Hat bei mir auch so nicht funktioniert, hab dann aber nicht weiter in der nomadmemory rumgesucht, sondern einfach über memreads das zusammengebaut.
also ret = memread(base), ret+=offset, ret2=memread(ret) usw.

btw nach dem update müsste die base ja auch verschoben sein, muss ma gucken....

mfg
04/04/2009 23:17 Jacob_G#414
@ NBA
HTML Code:
#include-once
#region _Memory
;=================================================================================================
; AutoIt Version:    3.1.127 (beta)
; Language:            English
; Platform:            All Windows
; Author:            Nomad
; Requirements:        These functions will only work with beta.
;=================================================================================================
; Credits:    wOuter - These functions are based on his original _Mem() functions.  But they are
;            easier to comprehend and more reliable.  These functions are in no way a direct copy
;            of his functions.  His functions only provided a foundation from which these evolved.
;=================================================================================================
;
; Functions:
;
;=================================================================================================
; Function:            _MemoryOpen($iv_Pid[, $iv_DesiredAccess[, $iv_InheritHandle]])
; Description:        Opens a process and enables all possible access rights to the process.  The
;                    Process ID of the process is used to specify which process to open.  You must
;                    call this function before calling _MemoryClose(), _MemoryRead(), or _MemoryWrite().
; Parameter(s):        $iv_Pid - The Process ID of the program you want to open.
;                    $iv_DesiredAccess - (optional) Set to 0x1F0FFF by default, which enables all
;                                        possible access rights to the process specified by the
;                                        Process ID.
;                    $if_InheritHandle - (optional) If this value is TRUE, all processes created by
;                                        this process will inherit the access handle.  Set to TRUE
;                                        (1) by default.  Set to 0 if you want it to be FALSE.
; Requirement(s):    A valid process ID.
; Return Value(s):     On Success - Returns an array containing the Dll handle and an open handle to
;                                 the specified process.
;                    On Failure - Returns 0
;                    @Error - 0 = No error.
;                             1 = Invalid $iv_Pid.
;                             2 = Failed to open Kernel32.dll.
;                             3 = Failed to open the specified process.
; Author(s):        Nomad
; Note(s):
;=================================================================================================
Func _MemoryOpen($iv_Pid, $iv_DesiredAccess = 0x1F0FFF, $if_InheritHandle = 1)
    
    If Not ProcessExists($iv_Pid) Then
        SetError(1)
        Return 0
    EndIf
    
    Local $ah_Handle[2] = [DllOpen('kernel32.dll')]
    
    If @Error Then
        SetError(2)
        Return 0
    EndIf
    
    Local $av_OpenProcess = DllCall($ah_Handle[0], 'int', 'OpenProcess', 'int', $iv_DesiredAccess, 'int', $if_InheritHandle, 'int', $iv_Pid)
    
    If @Error Then
        DllClose($ah_Handle[0])
        SetError(3)
        Return 0
    EndIf
    
    $ah_Handle[1] = $av_OpenProcess[0]
    
    Return $ah_Handle
    
EndFunc

;=================================================================================================
; Function:            _MemoryRead($iv_Address, $ah_Handle[, $sv_Type])
; Description:        Reads the value located in the memory address specified.
; Parameter(s):        $iv_Address - The memory address you want to read from. It must be in hex
;                                  format (0x00000000).
;                    $ah_Handle - An array containing the Dll handle and the handle of the open
;                                 process as returned by _MemoryOpen().
;                    $sv_Type - (optional) The "Type" of value you intend to read.  This is set to
;                                'dword'(32bit(4byte) signed integer) by default.  See the help file
;                                for DllStructCreate for all types.
;                                An example: If you want to read a word that is 15 characters in
;                                length, you would use 'char[16]'.
; Requirement(s):    The $ah_Handle returned from _MemoryOpen.
; Return Value(s):    On Success - Returns the value located at the specified address.
;                    On Failure - Returns 0
;                    @Error - 0 = No error.
;                             1 = Invalid $ah_Handle.
;                             2 = $sv_Type was not a string.
;                             3 = $sv_Type is an unknown data type.
;                             4 = Failed to allocate the memory needed for the DllStructure.
;                             5 = Error allocating memory for $sv_Type.
;                             6 = Failed to read from the specified process.
; Author(s):        Nomad
; Note(s):            Values returned are in Decimal format, unless specified as a 'char' type, then
;                    they are returned in ASCII format.  Also note that size ('char[size]') for all
;                    'char' types should be 1 greater than the actual size.
;=================================================================================================
Func _MemoryRead($iv_Address, $ah_Handle, $sv_Type = 'dword')
    
    If Not IsArray($ah_Handle) Then
        SetError(1)
        Return 0
    EndIf
    
    Local $v_Buffer = DllStructCreate($sv_Type)
    
    If @Error Then
        SetError(@Error + 1)
        Return 0
    EndIf
    
    DllCall($ah_Handle[0], 'int', 'ReadProcessMemory', 'int', $ah_Handle[1], 'int', $iv_Address, 'ptr', DllStructGetPtr($v_Buffer), 'int', DllStructGetSize($v_Buffer), 'int', '')
    
    If Not @Error Then
        Local $v_Value = DllStructGetData($v_Buffer, 1)
        Return $v_Value
    Else
        SetError(6)
        Return 0
    EndIf
    
EndFunc

;=================================================================================================
; Function:            _MemoryWrite($iv_Address, $ah_Handle, $v_Data[, $sv_Type])
; Description:        Writes data to the specified memory address.
; Parameter(s):        $iv_Address - The memory address you want to write to.  It must be in hex
;                                  format (0x00000000).
;                    $ah_Handle - An array containing the Dll handle and the handle of the open
;                                 process as returned by _MemoryOpen().
;                    $v_Data - The data to be written.
;                    $sv_Type - (optional) The "Type" of value you intend to write.  This is set to
;                                'dword'(32bit(4byte) signed integer) by default.  See the help file
;                                for DllStructCreate for all types.
;                                An example: If you want to write a word that is 15 characters in
;                                length, you would use 'char[16]'.
; Requirement(s):    The $ah_Handle returned from _MemoryOpen.
; Return Value(s):    On Success - Returns 1
;                    On Failure - Returns 0
;                    @Error - 0 = No error.
;                             1 = Invalid $ah_Handle.
;                             2 = $sv_Type was not a string.
;                             3 = $sv_Type is an unknown data type.
;                             4 = Failed to allocate the memory needed for the DllStructure.
;                             5 = Error allocating memory for $sv_Type.
;                             6 = $v_Data is not in the proper format to be used with the "Type"
;                                 selected for $sv_Type, or it is out of range.
;                             7 = Failed to write to the specified process.
; Author(s):        Nomad
; Note(s):            Values sent must be in Decimal format, unless specified as a 'char' type, then
;                    they must be in ASCII format.  Also note that size ('char[size]') for all
;                    'char' types should be 1 greater than the actual size.
;=================================================================================================
Func _MemoryWrite($iv_Address, $ah_Handle, $v_Data, $sv_Type = 'dword')
    
    If Not IsArray($ah_Handle) Then
        SetError(1)
        Return 0
    EndIf
    
    Local $v_Buffer = DllStructCreate($sv_Type)
    
    If @Error Then
        SetError(@Error + 1)
        Return 0
    Else
        DllStructSetData($v_Buffer, 1, $v_Data)
        If @Error Then
            SetError(6)
            Return 0
        EndIf
    EndIf
    
    DllCall($ah_Handle[0], 'int', 'WriteProcessMemory', 'int', $ah_Handle[1], 'int', $iv_Address, 'ptr', DllStructGetPtr($v_Buffer), 'int', DllStructGetSize($v_Buffer), 'int', '')
    
    If Not @Error Then
        Return 1
    Else
        SetError(7)
        Return 0
    EndIf
    
EndFunc

;=================================================================================================
; Function:            _MemoryClose($ah_Handle)
; Description:        Closes the process handle opened by using _MemoryOpen().
; Parameter(s):        $ah_Handle - An array containing the Dll handle and the handle of the open
;                                 process as returned by _MemoryOpen().
; Requirement(s):    The $ah_Handle returned from _MemoryOpen.
; Return Value(s):    On Success - Returns 1
;                    On Failure - Returns 0
;                    @Error - 0 = No error.
;                             1 = Invalid $ah_Handle.
;                             2 = Unable to close the process handle.
; Author(s):        Nomad
; Note(s):
;=================================================================================================
Func _MemoryClose($ah_Handle)
    
    If Not IsArray($ah_Handle) Then
        SetError(1)
        Return 0
    EndIf
    
    DllCall($ah_Handle[0], 'int', 'CloseHandle', 'int', $ah_Handle[1])
    If Not @Error Then
        DllClose($ah_Handle[0])
        Return 1
    Else
        DllClose($ah_Handle[0])
        SetError(2)
        Return 0
    EndIf
    
EndFunc

;=================================================================================================
; Function:            _MemoryPointerRead ($iv_Address, $ah_Handle, $av_Offset[, $sv_Type])
; Description:        Reads a chain of pointers and returns an array containing the destination
;                    address and the data at the address.
; Parameter(s):        $iv_Address - The static memory address you want to start at. It must be in
;                                  hex format (0x00000000).
;                    $ah_Handle - An array containing the Dll handle and the handle of the open
;                                 process as returned by _MemoryOpen().
;                    $av_Offset - An array of offsets for the pointers.  Each pointer must have an
;                                 offset.  If there is no offset for a pointer, enter 0 for that
;                                 array dimension.
;                    $sv_Type - (optional) The "Type" of data you intend to read at the destination
;                                 address.  This is set to 'dword'(32bit(4byte) signed integer) by
;                                 default.  See the help file for DllStructCreate for all types.
; Requirement(s):    The $ah_Handle returned from _MemoryOpen.
; Return Value(s):    On Success - Returns an array containing the destination address and the value
;                                 located at the address.
;                    On Failure - Returns 0
;                    @Error - 0 = No error.
;                             1 = $av_Offset is not an array.
;                             2 = Invalid $ah_Handle.
;                             3 = $sv_Type is not a string.
;                             4 = $sv_Type is an unknown data type.
;                             5 = Failed to allocate the memory needed for the DllStructure.
;                             6 = Error allocating memory for $sv_Type.
;                             7 = Failed to read from the specified process.
; Author(s):        Nomad
; Note(s):            Values returned are in Decimal format, unless a 'char' type is selected.
;                    Set $av_Offset like this:
;                    $av_Offset[0] = NULL (not used)
;                    $av_Offset[1] = Offset for pointer 1 (all offsets must be in Decimal)
;                    $av_Offset[2] = Offset for pointer 2
;                    etc...
;                    (The number of array dimensions determines the number of pointers)
;=================================================================================================
Func _MemoryPointerRead ($iv_Address, $ah_Handle, $av_Offset, $sv_Type = 'dword')
    
    If IsArray($av_Offset) Then
        If IsArray($ah_Handle) Then
            Local $iv_PointerCount = UBound($av_Offset) - 1
        Else
            SetError(2)
            Return 0
        EndIf
    Else
        SetError(1)
        Return 0
    EndIf
    
    Local $iv_Data[2], $i
    Local $v_Buffer = DllStructCreate('dword')
    
    For $i = 0 to $iv_PointerCount
        
        If $i = $iv_PointerCount Then
            $v_Buffer = DllStructCreate($sv_Type)
            If @Error Then
                SetError(@Error + 2)
                Return 0
            EndIf
            
            $iv_Address = '0x' & hex($iv_Data[1] + $av_Offset[$i])
            DllCall($ah_Handle[0], 'int', 'ReadProcessMemory', 'int', $ah_Handle[1], 'int', $iv_Address, 'ptr', DllStructGetPtr($v_Buffer), 'int', DllStructGetSize($v_Buffer), 'int', '')
            If @Error Then
                SetError(7)
                Return 0
            EndIf
            
            $iv_Data[1] = DllStructGetData($v_Buffer, 1)
            
        ElseIf $i = 0 Then
            DllCall($ah_Handle[0], 'int', 'ReadProcessMemory', 'int', $ah_Handle[1], 'int', $iv_Address, 'ptr', DllStructGetPtr($v_Buffer), 'int', DllStructGetSize($v_Buffer), 'int', '')
            If @Error Then
                SetError(7)
                Return 0
            EndIf
            
            $iv_Data[1] = DllStructGetData($v_Buffer, 1)
            
        Else
            $iv_Address = '0x' & hex($iv_Data[1] + $av_Offset[$i])
            DllCall($ah_Handle[0], 'int', 'ReadProcessMemory', 'int', $ah_Handle[1], 'int', $iv_Address, 'ptr', DllStructGetPtr($v_Buffer), 'int', DllStructGetSize($v_Buffer), 'int', '')
            If @Error Then
                SetError(7)
                Return 0
            EndIf
            
            $iv_Data[1] = DllStructGetData($v_Buffer, 1)
            
        EndIf
        
    Next
    
    $iv_Data[0] = $iv_Address
    
    Return $iv_Data

EndFunc

;=================================================================================================
; Function:            _MemoryPointerWrite ($iv_Address, $ah_Handle, $av_Offset, $v_Data[, $sv_Type])
; Description:        Reads a chain of pointers and writes the data to the destination address.
; Parameter(s):        $iv_Address - The static memory address you want to start at. It must be in
;                                  hex format (0x00000000).
;                    $ah_Handle - An array containing the Dll handle and the handle of the open
;                                 process as returned by _MemoryOpen().
;                    $av_Offset - An array of offsets for the pointers.  Each pointer must have an
;                                 offset.  If there is no offset for a pointer, enter 0 for that
;                                 array dimension.
;                    $v_Data - The data to be written.
;                    $sv_Type - (optional) The "Type" of data you intend to write at the destination
;                                 address.  This is set to 'dword'(32bit(4byte) signed integer) by
;                                 default.  See the help file for DllStructCreate for all types.
; Requirement(s):    The $ah_Handle returned from _MemoryOpen.
; Return Value(s):    On Success - Returns the destination address.
;                    On Failure - Returns 0.
;                    @Error - 0 = No error.
;                             1 = $av_Offset is not an array.
;                             2 = Invalid $ah_Handle.
;                             3 = Failed to read from the specified process.
;                             4 = $sv_Type is not a string.
;                             5 = $sv_Type is an unknown data type.
;                             6 = Failed to allocate the memory needed for the DllStructure.
;                             7 = Error allocating memory for $sv_Type.
;                             8 = $v_Data is not in the proper format to be used with the
;                                 "Type" selected for $sv_Type, or it is out of range.
;                             9 = Failed to write to the specified process.
; Author(s):        Nomad
; Note(s):            Data written is in Decimal format, unless a 'char' type is selected.
;                    Set $av_Offset like this:
;                    $av_Offset[0] = NULL (not used, doesn't matter what's entered)
;                    $av_Offset[1] = Offset for pointer 1 (all offsets must be in Decimal)
;                    $av_Offset[2] = Offset for pointer 2
;                    etc...
;                    (The number of array dimensions determines the number of pointers)
;=================================================================================================
Func _MemoryPointerWrite ($iv_Address, $ah_Handle, $av_Offset, $v_Data, $sv_Type = 'dword')
    
    If IsArray($av_Offset) Then
        If IsArray($ah_Handle) Then
            Local $iv_PointerCount = UBound($av_Offset) - 1
        Else
            SetError(2)
            Return 0
        EndIf
    Else
        SetError(1)
        Return 0
    EndIf
    
    Local $iv_StructData, $i
    Local $v_Buffer = DllStructCreate('dword')

    For $i = 0 to $iv_PointerCount
        If $i = $iv_PointerCount Then
            $v_Buffer = DllStructCreate($sv_Type)
            If @Error Then
                SetError(@Error + 3)
                Return 0
            EndIf
            
            DllStructSetData($v_Buffer, 1, $v_Data)
            If @Error Then
                SetError(8)
                Return 0
            EndIf
            
            $iv_Address = '0x' & hex($iv_StructData + $av_Offset[$i])
            DllCall($ah_Handle[0], 'int', 'WriteProcessMemory', 'int', $ah_Handle[1], 'int', $iv_Address, 'ptr', DllStructGetPtr($v_Buffer), 'int', DllStructGetSize($v_Buffer), 'int', '')
            If @Error Then
                SetError(9)
                Return 0
            Else
                Return $iv_Address
            EndIf
        ElseIf $i = 0 Then
            DllCall($ah_Handle[0], 'int', 'ReadProcessMemory', 'int', $ah_Handle[1], 'int', $iv_Address, 'ptr', DllStructGetPtr($v_Buffer), 'int', DllStructGetSize($v_Buffer), 'int', '')
            If @Error Then
                SetError(3)
                Return 0
            EndIf
            
            $iv_StructData = DllStructGetData($v_Buffer, 1)
            
        Else
            $iv_Address = '0x' & hex($iv_StructData + $av_Offset[$i])
            DllCall($ah_Handle[0], 'int', 'ReadProcessMemory', 'int', $ah_Handle[1], 'int', $iv_Address, 'ptr', DllStructGetPtr($v_Buffer), 'int', DllStructGetSize($v_Buffer), 'int', '')
            If @Error Then
                SetError(3)
                Return 0
            EndIf
            
            $iv_StructData = DllStructGetData($v_Buffer, 1)
            
        EndIf
    Next

EndFunc
#endregion
EDIT:

Hatte alte Adressen benutzt.
Hier funktionierender Code:

#include<NomadMemory.au3>

$ProcessID = WinGetProcess("Guild Wars")
$Handle = _MemoryOpen($ProcessID)
$Address = 0xd28ab8 ;Base

Dim $Offset[2]
$offset[0] = 0
$Offset[1] = 0x130

$Value = _MemoryPointerRead($Address, $Handle, $Offset,'float')
_MemoryClose($Handle)

MsgBox(4096, "Returned", "Address = " & $Value[0] & @CRLF & "Value =" & $Value[1])

EDIT2: Wadim, mir ist doch aufgefallen das es besser ist, wenn du all die Adressen in deinem Updater aufnimmst (höherer Verbreitungsgrad). Also, ich würde mich sehr freuen, wenn du noch die Base und Offsets, die hEDDA gepostet hat, mit in deinen Updater bringst :).
04/05/2009 11:15 NBA#415
Hab grad nach einer Adresse gesucht, die mir die anzahl der gegner zeigt, die im Aggroradius rumstehen. Naja, die Adresse wurde es leider nicht, aber ich hab eine anscheinend statische gefunden, die einem die Verbuendeten in der naehe anzeigt...

00D28870

Falls es tatsaechlich so ist, koennte man ja mal die offsets suchen...und evtl eins fuer mein problem finden...

Edit: Die Adresse scheint im zusammenhang zur Camera zu stehen: Desto weiter man rauszoomt, desto mehr verbuendete werden angezeigt. Man muss diese jedoch nicht sehen...
04/05/2009 15:00 Jacob_G#416
Btw, hat jemand eine Adresse für "Quest erfüllt" gefunden?
04/06/2009 14:46 x24y25z26#417
Ich kann den Link zum Updater leider nicht mehr finden. Könnte jemand den Link oder die aktuellen Mems posten?

€: Brauche ich nicht mehr die vom 31.03 waren doch aktuell war lediglich der fehler in der tt6
04/07/2009 13:55 __wadim#418
Code:
; update.ini [Gw.exe] - __wadim 
; 7.4.2009 - 13:46

[SECTION 9-A]
AX					= 0xa05750
AY					= 0xa05754
AREA_ID					= 0xa06598
NO_NPC					= 0xa07334
DEATH					= 0xa057d4
MOUSE_COORDX				= 0xa05de0
MOUSE_COORDY				= 0xa05de4
CAMCOURSEA				= 0xa056c2
CAMCOURSEB				= 0xa05678
EX_AREA_ID				= 0xa03078
EXPANDERA				= 0xa05683
EXPANDERB				= 0xa05682
LVL					= 0xa030b8
PVP_PVE					= 0xa030c4
PING					= 0xa004dc
INTERFACE				= 0xa01b30
LOGIN					= 0xa057f0
EMAIL					= 0xa01b34
MOVETO_TARGET				= 0xa05dc4
MAPPLAYER				= 0xa05dcc
MAPTIME					= 0xa056b8
PNAME					= 0xa00528
STORAGE					= 0xa020a4
SELLBAGX				= 0xa02028
MOUSEACTION				= 0x9f99f0
MESSAGE					= 0xa05e27
INVENTAR				= 0xa02594
HERO					= 0xa02508
MMAP					= 0xa025e4
PARTY					= 0xa0265c
CHEST					= 0xa025a8
ALLBAG					= 0xa025bc
GUILD					= 0xa02574
SKILL					= 0xa02530
TRADE					= 0xa027b0
PARTYSEARCH				= 0xa02678
MERCHANT				= 0xa027d8
;x					= 0x0
;y					= 0x4
;width					= 0x8
;height					= 0x12

MOVECHAR				= 0xa05dac
;back					= 0x4
;left					= 0x8
;right					= 0xc
;tleft					= 0x10
;tright					= 0x14

[SECTION D]
POSX					= 0xd28d64
POSY					= 0xd28d68
CHECK_MAP				= 0xd28a00
NPC_ID_NEAR				= 0xd28610
NPC_ID_SELECT				= 0xd285f0
NPC_ID_MOUSE_SELECT			= 0xd285fc
CLIENTPATH				= 0xd295d8
KNOCKDOWN				= 0xd2a7b8

PTR_HP_E				= 0xd28ab8
;offset 1				= 0x104
;current hp				= 0x28
;current e				= 0x14
;max hp					= 0x30
;max e					= 0x1c
;hero_1 hp 				= (-0xc)
;hero_2 hp				= (-0x40)
;hero_3 hp				= (-0x74)

PTR_FACTIONA				= 0xa006d4
PTR_FACTIONB				= 0xa00610
;offset 1				= 0x18
;offset 2				= 0x2c
;current kurzick			= 0x6e4
;current luxon				= 0x6f4
;current balthazar			= 0x724
;current exp				= 0x6dc
;max kurzick				= 0x740
;max luxon				= 0x744
;max balthazar				= 0x748
aktuellen updater gibts [Only registered and activated users can see links. Click Here To Register...].
04/07/2009 14:14 Jacob_G#419
Danke Wadim :)

Edit: Kann es sein das ein Fehler drinn ist ;( ? Versuch mal die max Hp auszulesen.
04/07/2009 15:16 __wadim#420
jo kann sein, aber max hp befindet sich einfach 1 dword weiter, so wie tonitusch es schonmal sagte :)