ich beschäftige mich in den letzten tagen mit den memory funktionen und habe unter anderem dazu auch die beiträge hier im forum durch gelesen. jetzt sind jedoch ein paar fragen aufgekommen, wo es super wäre, wenn ihr mir da vielleicht helfen könntet....
fangen wir bei den adressen an...
manche werte haben nur einen bereich von 0 bis/oder 1. zb leben/tot, laufen/stehen oder die lebensanzeige, welche ja relativ 0 bis 1 angegeben wird. diese kann man noch irgentwo im speicher suchen, aber wie finde ich werte heraus, die mir komplett unbekannt sind ? wie die
- x und y koordinate
- die ids von npcs
- oder denn gerade ladenden skillz ?
ich laß was von wegen unchanged, same as first, changed, aber meistens bringt das am ende trozdem kein ergebnis. ich weiß es gibt tools dafür, aber ich würde das ganz gerne selbst machen.
dann zu den offsets....
habe ich das richtig verstanden, dass offsets sowas wie verschieber sind ? also suche die adresse des pointers und gehe x schritte weiter ?
und dann hatte ich in einem beitrag hier im forum einen code zum auslesen der lebens- und energie punkte. ich fand dazu noch woanders die aktuelle adresse und habe es kurz ein wenig formatiert (p1 = pointer1)
ist es richtig, dass man hier die adresse aus p1 und nem offset 104 nimmt, und dazu jeweils verschiedene offsets, je nach anliegen ? falls ja, wozu geht man dann über pointer1 ?
Code:
#include "NomadMemory.au3" Local $PID = WinGetProcess("Guild Wars") Global $hprocess = _MemoryOpen($PID) ; Adressen Global $HP_EP = 0xd41538 Func _MEN_HP_EP () Local $p1 = _MemoryRead($HP_EP, $hprocess) Local $p2 = _MemoryRead($p1+0x104, $hprocess) Global $ep_max = _MemoryRead($p2 + 0x18, $hprocess) Global $hp_max = _MemoryRead($p2 + 0x2C, $hprocess) Global $ep_cur = Floor($ep_max * _MemoryRead($p2 + 0x14, $hprocess, "float")) ; von relativ in absolute ganzzahl Global $hp_cur = Floor($hp_max * _MemoryRead($p2 + 0x28, $hprocess, "float")) ; von relativ in absolute ganzzahl EndFunc
MfG
derindarbe