Diskussionen über Memorys

04/12/2009 14:18 kknb#496
Quote:
Originally Posted by _revo View Post
gibt aus, was du selber in den chat geschrieben hast ;)

hatte mal langeweile und habe die mems mit den offsets in ce gespeichert, vielleicht kanns ja wer gebrauchen^^

man müsste mal bei leben von hero 2 und 3 gucken was da falsch ist, es werden komische werte ausgegeben.
04/12/2009 14:23 buFFy!#497
Îch hab kp wie man die Addresse nützlich anwenden soll O.o

Code:
Const $memChat = 0xa00878
Const $memChat_OS = 0x2a8

;-Chat
$1_memChat = _MemoryRead($memChat, $hprocess, 'dword')
$2_memChat = _MemoryRead($1_memChat + $memChat_OS, $hprocess, 'wchar[3]')
$CHAT = $2_memChat
Dim $chatray[10]
$chatray[0] = " "

Func ReadChat()
	$CHAT = _MemoryRead($1_memChat + $memChat_OS, $hprocess, 'wchar[100]')
	 _ArrayAdd($chatray, $CHAT)
EndFunc

AdlibEnable("ReadChat", 1000)
HotKeySet("{Home}", "Display")
Func Display()
	_ArrayDisplay($chatray)
EndFunc

While True
	sleep(500)
WEnd
04/12/2009 14:35 kknb#498
habs bisl geändern nun schreibt er net soviel doppelt.

was man damit machen kann...mh kein plan

Code:
#include "tt6.au3"
#Include <Array.au3>
Const $memChat = 0xa00878
Const $memChat_OS = 0x2a8

;-Chat
$1_memChat = _MemoryRead($memChat, $hprocess, 'dword')
$2_memChat = _MemoryRead($1_memChat + $memChat_OS, $hprocess, 'wchar[3]')
$CHAT = $2_memChat
Dim $chatray[10]
$chatray[0] = " "
HotKeySet("{esc}", "Display")
ReadChat()

Func ReadChat()
	while 1
		$CHAT = _MemoryRead($1_memChat + $memChat_OS, $hprocess, 'wchar[100]')
			if $CHAT <> "" then
				_ArrayAdd($chatray, $CHAT)
				sleep(3000)
			EndIf
	WEnd
EndFunc


Func Display()
	_ArrayDisplay($chatray)
EndFunc
04/12/2009 15:02 NBA#499
Kannmandamitwasindenchatschreiben?
04/12/2009 15:02 buFFy!#500
jo is eigentlich nutzlos. ziemlich.
das einzige was ginge (bei mir egal weils ehh immer geht)
man könnte damit auslesen ob das resign richtig angekommen is.
04/12/2009 19:50 kknb#501
so ich benutze jetzt einfach mal den thread weiter um über mems zu labern...kann mir jemand von euch sagen wie man mit solchen adressen in autoit umgeht?

Gw1.exe+6132B0
04/12/2009 19:52 __wadim#502
Gw?.exe = 0x00400000
+ 0x006132B0
= 0x00A132B0
lol?
04/12/2009 19:54 kknb#503
kthxbye *rotwerd*

habe trotzdem noch was interessantes dazu gefunden, vielleicht brauchts ja mal wer:
[Only registered and activated users can see links. Click Here To Register...]
04/12/2009 22:24 buFFy!#504
So..jetzt mal meine Frage..
Was bedeuten folgende Mems?

Code:
AX					= 0xa058a8
AY					= 0xa058ac
NO_NPC					= 0xa0748c
EXPANDERA				= 0xa057db
EXPANDERB				= 0xa057da
PVP_PVE					= 0xa0321c
INTERFACE				= 0xa01c88
STORAGE					= 0xa021fc
SELLBAGX				= 0xa02180
MOUSEACTION				= 0x9f9b48
MESSAGE					= 0xa05f7f
04/12/2009 22:31 NBA#505
Code:
AX					= 0xa058a8 ;KA vllt X ACHSE
AY					= 0xa058ac ; KA vllt Y ACHSE
NO_NPC					= 0xa0748c
EXPANDERA				= 0xa057db
EXPANDERB				= 0xa057da
PVP_PVE					= 0xa0321c ; Ob PVP oder PVE
INTERFACE				= 0xa01c88; Groesse des interface
STORAGE					= 0xa021fc
SELLBAGX				= 0xa02180
MOUSEACTION				= 0x9f9b48 
MESSAGE					= 0xa05f7f ; Zeigt, soweit ich weiss an ob ne fehlermeldung da ist
Die paar kenn ich :D Einfach damit rumspielen, ist selbsterklaerend(danach)
04/12/2009 22:35 buFFy!#506
Thx, bei PVE_PVP dachte ich eig. das es angibt ob man sich grad auf PVP oder PVE Map befindet :D
Hab mich nämlich gewundert wieso das nicht ging xD
04/12/2009 22:40 NBA#507
Also, es hat halt mehrere moeglichkeiten :
1. Wie du es beschrieben hast
2. Ob PvP/PvE Charakter.
usw..

Einfach rumprobieren. Und zweideutigkeit erkennen...

Edit: Mit den anderen kann man glaub ich das Interface anpassen...
04/12/2009 22:41 kknb#508
ach ist damit pve oder pvp char gemeint? ich switche nämlich auch grad die ganze zeit von gh in pve gebiete und wunder mich über die werte^^
04/12/2009 22:42 NBA#509
WIE GESAGT, RUMPROBIEREN !!!!111omfgeinself

XD

:p

Anscheinend.

Werde heute Nacht auch ein bisschen mit Mems rumspielen...
04/12/2009 22:43 buFFy!#510
kknb.. spar die die mühe.. ich erweitere grad die Liste..
kleine vorschau :P

Code:
;-Memorie Liste für update.ini
;==============================

#include "tt6.au3"
#include <Array.au3>

#Region Memory's & Offsets
;-Base Pointer Health
Const $PTR_HEALTH = IniRead("update.ini", "SECTION D", "PTR_HP_E", "Not Found")
Const $MEM_CLIENTPATH = IniRead("update.ini", "SECTION D", "CLIENTPATH", "Not Found")
Const $MEM_PLAYERNAME = IniRead("update.ini", "SECTION 9-A", "PNAME", "Not Found")
Const $MEM_EMAIL = IniRead("update.ini", "SECTION 9-A", "EMAIL", "Not Found")
Const $MEM_LEVEL = IniRead("update.ini", "SECTION 9-A", "LVL", "Not Found")
Const $MEM_PING = IniRead("update.ini", "SECTION 9-A", "PING", "Not Found")
Const $MEM_AREAID = IniRead("update.ini", "SECTION 9-A", "AREA_ID", "Not Found")
Const $MEM_EX_AREAID = IniRead("update.ini", "SECTION 9-A", "EX_AREA_ID", "Not Found")
Const $MEM_MAPPLAYER = IniRead("update.ini", "SECTION 9-A", "MAPPLAYER", "Not Found")
Const $MEM_MAPTIME = IniRead("update.ini", "SECTION 9-A", "MAPTIME", "Not Found")
Const $MEM_NO_NPC = IniRead("update.ini", "SECTION 9-A", "NO_NPC", "Not Found")
Const $MEM_LOGIN = IniRead("update.ini", "SECTION 9-A", "LOGIN", "Not Found")
Const $MEM_PVP_PVE = IniRead("update.ini", "SECTION 9-A", "PVP_PVE", "Not Found")
Const $MEM_INTERFACESIZE = IniRead("update.ini", "SECTION 9-A", "INTERFACE", "Not Found")


;-Base Pointer Health Offset
Const $PTR_GLOBAL_OFFSET = 0x104

;Cur & Max HP
Const $PTR_HEALTH_CUR_HP = 0x28
Const $PTR_HEALTH_MAX_HP = 0x2c

;Cur & Max Energy
Const $PTR_HEALTH_CUR_E = 0x14
Const $PTR_HEALTH_MAX_E = 0x18

;-Hero Hp offsets
Const $PTR_HEALTH_HERO1 = 0xc
Const $PTR_HEALTH_HERO2 = 0x40
Const $PTR_HEALTH_HERO3 = 0x74

;-Base Pointer A + Offset 1/2 for points
Const $PTR_BASE_A = IniRead("update.ini", "SECTION D", "PTR_BASEA", "Not Found")
Const $PTR_BASE_A_OFFSET1 = 0x18
Const $PTR_BASE_A_OFFSET2 = 0x2c

;Cur & Max Balthazar
Const $PTR_BASE_A_MAXBALTHAZAR_OS = 0x748
Const $PTR_BASE_A_CURBALTHAZAR_OS = 0x724

;Cur & Max Kurzick
Const $PTR_BASE_A_MAXKURZICK_OS = 0x740
Const $PTR_BASE_A_CURKURZICK_OS = 0x6e4

;Cur & Max Luxon
Const $PTR_BASE_A_MAXLUXON_OS = 0x744
Const $PTR_BASE_A_CURLUXON_OS = 0x6f4

;Cur Experience
Const $PTR_BASE_A_CUREXP_OS = 0x6dc

;-Gold @chest & @inventory
Const $PTR_BASE_A_OFFSET1_GOLD = 0x18
Const $PTR_BASE_A_OFFSET2_GOLD = 0x40
Const $PTR_BASE_A_OFFSET3_GOLD = 0xf8
Const $PTR_BASE_A_OFFSET_GOLD_SELF = 0x64
Const $PTR_BASE_A_OFFSET_GOLD_CHEST = 0x4

;-Travel
Const $PTR_BASE_B = IniRead("update.ini", "SECTION D", "PTR_BASEB", "Not Found")
Const $PTR_BASE_B_OFFSET1_TRAVEL = 0x18
Const $PTR_BASE_B_OFFSET2_TRAVEL = 0x44
Const $PTR_BASE_B_OFFSET_TRAVELID = 0x1bc
#EndRegion Memory's & Offsets


;-StartPlayerINFO=======================================================================================
$PVP_PVE = _MemoryRead($MEM_PVP_PVE, $hprocess, 'int') ;-1 = PVP | 0 = PVE
$PLAYERNAME = _MemoryRead($MEM_PLAYERNAME, $hprocess, 'wchar[19]')
$PLAYERLEVEL = _MemoryRead($MEM_LEVEL, $hprocess, 'int')
$MAPPLAYER = _MemoryRead($MEM_MAPPLAYER, $hprocess)
$MAPTIME = _MemoryRead($MEM_MAPTIME, $hprocess, 'int')
;-EndePlayerINFO=======================================================================================



;-StartGlobalINFO======================================================================================
$LOGIN = _MemoryRead($MEM_LOGIN, $hprocess) ;-LOGIN SCREEN & CHARSELECTION = 0 | Else = 1
$PING = _MemoryRead($MEM_PING, $hprocess)
$EMAIL = _MemoryRead($MEM_EMAIL, $hprocess, 'wchar[100]')
$CLIENTPATH = _MemoryRead($MEM_CLIENTPATH, $hprocess, 'wchar[100]')
$AREA_ID = _MemoryRead($MEM_AREAID, $hprocess)
$EX_AREA_ID = _MemoryRead($MEM_EX_AREAID, $hprocess)
$NO_NPC = _MemoryRead($MEM_NO_NPC, $hprocess)
$INTERFACE_SIZE = _MemoryRead($MEM_INTERFACESIZE, $hprocess) ;0 = SMALL | 1 = NORMAL |2 = LARGE | 3 = LARGER
;-EndeGlobalINFO========================================================================================



;-StartTravel===========================================================================================
;-Travel
;
$1_TravelID = _MemoryRead($PTR_BASE_B, $hprocess)
$2_TravelID = _MemoryRead($1_TravelID + $PTR_BASE_B_OFFSET1_TRAVEL, $hprocess)
$3_TravelID = _MemoryRead($2_TravelID + $PTR_BASE_B_OFFSET2_TRAVEL, $hprocess)
$4_TravelID = _MemoryRead($3_TravelID + $PTR_BASE_B_OFFSET_TRAVELID, $hprocess)
$TRAVEL_ID = $4_TravelID
;-EndeTravel=============================================================================================




;-Start_Points===========================================================================================
;Cur Experience
$1_Exp = _MemoryRead($PTR_BASE_A, $hprocess, 'dword')
$2_Exp = _MemoryRead($1_Exp + $PTR_BASE_A_OFFSET1, $hprocess, 'dword')
$3_Exp = _MemoryRead($2_Exp + $PTR_BASE_A_OFFSET2, $hprocess, 'dword')
$4_Exp = _MemoryRead($3_Exp + $PTR_BASE_A_CUREXP_OS, $hprocess, 'int')
$CUR_EXP = $4_Exp

;Max Balthazar
$1_MaxBalthazar = _MemoryRead($PTR_BASE_A, $hprocess, 'dword')
$2_MaxBalthazar = _MemoryRead($1_MaxBalthazar + $PTR_BASE_A_OFFSET1, $hprocess, 'dword')
$3_MaxBalthazar = _MemoryRead($2_MaxBalthazar + $PTR_BASE_A_OFFSET2, $hprocess, 'dword')
$4_MaxBalthazar = _MemoryRead($3_MaxBalthazar + $PTR_BASE_A_MAXBALTHAZAR_OS, $hprocess, 'int')
$MAX_BALTHAZAR = $4_MaxBalthazar

;Cur Balthazar
$1_CurBalthazar = _MemoryRead($PTR_BASE_A, $hprocess, 'dword')
$2_CurBalthazar = _MemoryRead($1_CurBalthazar + $PTR_BASE_A_OFFSET1, $hprocess, 'dword')
$3_CurBalthazar = _MemoryRead($2_CurBalthazar + $PTR_BASE_A_OFFSET2, $hprocess, 'dword')
$4_CurBalthazar = _MemoryRead($3_CurBalthazar + $PTR_BASE_A_CURBALTHAZAR_OS, $hprocess, 'int')
$CUR_BALTHAZAR = $4_CurBalthazar

;Max Kurzick Points
$1_MaxKurzick = _MemoryRead($PTR_BASE_A, $hprocess, 'dword')
$2_MaxKurzick = _MemoryRead($1_MaxKurzick + $PTR_BASE_A_OFFSET1, $hprocess, 'dword')
$3_MaxKurzick = _MemoryRead($2_MaxKurzick + $PTR_BASE_A_OFFSET2, $hprocess, 'dword')
$4_MaxKurzick = _MemoryRead($3_MaxKurzick + $PTR_BASE_A_MAXKURZICK_OS, $hprocess, 'int')
$MAX_KURZICK = $4_MaxKurzick

;Cur Kurzick Points
$1_CurKurzick = _MemoryRead($PTR_BASE_A, $hprocess, 'dword')
$2_CurKurzick = _MemoryRead($1_CurKurzick + $PTR_BASE_A_OFFSET1, $hprocess, 'dword')
$3_CurKurzick = _MemoryRead($2_CurKurzick + $PTR_BASE_A_OFFSET2, $hprocess, 'dword')
$4_CurKurzick = _MemoryRead($3_CurKurzick + $PTR_BASE_A_CURKURZICK_OS, $hprocess, 'int')
$CUR_KURZICK = $4_CurKurzick

;Max Luxon Points
$1_MaxLuxon = _MemoryRead($PTR_BASE_A, $hprocess, 'dword')
$2_MaxLuxon = _MemoryRead($1_MaxLuxon + $PTR_BASE_A_OFFSET1, $hprocess, 'dword')
$3_MaxLuxon = _MemoryRead($2_MaxLuxon + $PTR_BASE_A_OFFSET2, $hprocess, 'dword')
$4_MaxLuxon = _MemoryRead($3_MaxLuxon + $PTR_BASE_A_MAXLUXON_OS, $hprocess, 'int')
$MAX_LUXON = $4_MaxLuxon

;Cur Luxon Points
$1_CurLuxon = _MemoryRead($PTR_BASE_A, $hprocess, 'dword')
$2_CurLuxon = _MemoryRead($1_CurLuxon + $PTR_BASE_A_OFFSET1, $hprocess, 'dword')
$3_CurLuxon = _MemoryRead($2_CurLuxon + $PTR_BASE_A_OFFSET2, $hprocess, 'dword')
$4_CurLuxon = _MemoryRead($3_CurLuxon + $PTR_BASE_A_CURLUXON_OS, $hprocess, 'int')
$CUR_LUXON = $4_CurLuxon
;-Ende_Points============================================================================================




;StartGold===============================================================================================
;-Gold in inventory
$1_InventoryGold = _MemoryRead($PTR_BASE_A, $hprocess, 'dword')
$2_InventoryGold = _MemoryRead($1_InventoryGold + $PTR_BASE_A_OFFSET1_GOLD, $hprocess, 'dword')
$3_InventoryGold = _MemoryRead($2_InventoryGold + $PTR_BASE_A_OFFSET2_GOLD, $hprocess, 'dword')
$4_InventoryGold = _MemoryRead($3_InventoryGold + $PTR_BASE_A_OFFSET3_GOLD, $hprocess, 'dword')
$5_InventoryGold = _MemoryRead($4_InventoryGold + $PTR_BASE_A_OFFSET_GOLD_SELF, $hprocess, 'int')
$INVENTORY_GOLD = $5_InventoryGold

;-Gold in Chest
$1_ChestGold = _MemoryRead($PTR_BASE_A, $hprocess, 'dword')
$2_ChestGold = _MemoryRead($1_ChestGold + $PTR_BASE_A_OFFSET1_GOLD, $hprocess, 'dword')
$3_ChestGold = _MemoryRead($2_ChestGold + $PTR_BASE_A_OFFSET2_GOLD, $hprocess, 'dword')
$4_ChestGold = _MemoryRead($3_ChestGold + $PTR_BASE_A_OFFSET3_GOLD, $hprocess, 'dword')
$5_ChestGold = _MemoryRead($4_ChestGold + $PTR_BASE_A_OFFSET_GOLD_CHEST, $hprocess, 'int')
$CHEST_GOLD = $5_ChestGold
;-EndeGold===============================================================================================




;-StartPlayerSelf========================================================================================
;-Current Energystack
$1_OwnEnergy = _MemoryRead($PTR_HEALTH, $hprocess, 'dword')
$2_OwnEnergy = _MemoryRead($1_OwnEnergy + $PTR_GLOBAL_OFFSET, $hprocess, 'dword')
$3_OwnEnergy = _MemoryRead($2_OwnEnergy + $PTR_HEALTH_CUR_E, $hprocess, 'float')

;-Max Energystack
$1_OwnEnergyMAX = _MemoryRead($PTR_HEALTH, $hprocess)
$2_OwnEnergyMAX = _MemoryRead($1_OwnEnergyMAX + $PTR_GLOBAL_OFFSET, $hprocess)
$3_OwnEnergyMAX = _MemoryRead($2_OwnEnergyMAX + $PTR_HEALTH_MAX_E, $hprocess)
$MAX_E = $3_OwnEnergyMAX ;kann man nur ausserhalb von städten auslesen

;-Healthstack
$1_OwnHealth = _MemoryRead($PTR_HEALTH, $hprocess)
$2_OwnHealth = _MemoryRead($1_OwnHealth + $PTR_GLOBAL_OFFSET, $hprocess)
$3_OwnHealth = _MemoryRead($2_OwnHealth + $PTR_HEALTH_CUR_HP, $hprocess,"float")

;-Max Healthstack
$1_OwnHealthMAX = _MemoryRead($PTR_HEALTH, $hprocess, 'dword')
$2_OwnHealthMAX = _MemoryRead($1_OwnHealth + $PTR_GLOBAL_OFFSET, $hprocess)
$3_OwnHealthMAX = _MemoryRead($2_OwnHealth + $PTR_HEALTH_MAX_HP, $hprocess)
$MAX_HP = $3_OwnHealthMAX ;kann man nur ausserhalb von städten auslesen
;-EndePlayerSelf========================================================================================




;-StartHeroHealths======================================================================================
;-Hero1 Healthstack
$1_Hero1Health = _MemoryRead($PTR_HEALTH, $hprocess, 'dword')
$2_Hero1Health = _MemoryRead($1_Hero1Health + $PTR_GLOBAL_OFFSET, $hprocess, 'dword')
$3_Hero1Health = _MemoryRead($2_Hero1Health - $PTR_HEALTH_HERO1, $hprocess, 'float')
$CUR_HP_HERO1 = $3_Hero1Health

;-Hero2 Healthstack
$1_Hero2Health = _MemoryRead($PTR_HEALTH, $hprocess, 'dword')
$2_Hero2Health = _MemoryRead($1_Hero2Health + $PTR_GLOBAL_OFFSET, $hprocess, 'dword')
$3_Hero2Health = _MemoryRead($2_Hero2Health - $PTR_HEALTH_HERO2, $hprocess, 'float')
$CUR_HP_HERO2 = $3_Hero2Health

;-Hero3 Healthstack
$1_Hero3Health = _MemoryRead($PTR_HEALTH, $hprocess, 'dword')
$2_Hero3Health = _MemoryRead($1_Hero3Health + $PTR_GLOBAL_OFFSET, $hprocess, 'dword')
$3_Hero3Health = _MemoryRead($2_Hero3Health - $PTR_HEALTH_HERO3, $hprocess, 'float')
$CUR_HP_HERO3 = $3_Hero3Health
;-EndeHeroHealths=======================================================================================
;-=============================================
Dauert halt ne weile, ich prüfe die Rückgabewerte nach'm aufschreiben nämlich mit MsgBox.

Edit: PVP_PVE gibt 1 wenn pvp char und 0 wenn pve.