Eine Frage zu Mems

01/18/2009 14:47 N.E.O.#1
Wie kriegt man die Mem Adresse von einem bestimmten NPC raus?

[Only registered and activated users can see links. Click Here To Register...]

Da habe ich schon geguckt, aber das klappt irgendwie nicht -.-"


Die Func solll dann so irgendwie sein^^:

Code:
Func _WayOut()
	
_MemoryWrite ($NPC, $Process, $NPC_ID)
Send ("{space}")

EndFunc
01/18/2009 14:49 i4mSoH34Vy#2
$ID = _MemoryRead($NPCAdresse, $hp1)
MsgBox(0,"",$ID)
01/18/2009 14:50 N.E.O.#3
Danke, ich teste es kurz

#edit Geht irgendwie nicht o.O

Ich habe das jetzt so gemacht:

Code:
Global $NPC = IniRead(@ScriptDir & "\Memorys.ini", "SECTION D", "NPC_ID_SELECT", "Not Found" ) ;Must be Updated!
Global $GW = "Guild Wars"
Global $Process = "Gw.exe"

#include<NomadMemory.au3>

$ID = _MemoryRead($NPC, $Process)
MsgBox(0,"",$ID)

Da kommt immer nur "0" raus.
01/18/2009 17:59 i4mSoH34Vy#4
$PID = ProcessExists(WinGetProcess("Guild Wars"))
$hp1 = _MemoryOpen($PID)
$ID= _MemoryRead($NPCAdresse, $hp1)
01/19/2009 18:32 N.E.O.#5
Hättest du vllt noch ne Idee wie man den WayTo dann macht?

Weil mit
Code:
Func _WayOut()
	
_MemoryWrite ($NPC, $Process, $NPC_ID)
Send ("{space}")

EndFunc
funzt der Run nicht..
01/19/2009 19:38 i4mSoH34Vy#6
Was möchtest denn machen?
01/20/2009 10:26 N.E.O.#7
Das er zu einem NPC läuft
01/20/2009 14:44 NBA#8
Da suchst du dir mit einem tool die NPC_Select adresse aus, und schreibst eine andere rein, dann tust du leer druecken lassen und er ist da.

(ACHTUNG! koennte zum abstuerzen des spiels fuehren. Memoryadresse koennte auch anders heissen!)
01/20/2009 17:08 aLasca#9
Wie such ich ne Mem mit CE raus?
01/20/2009 19:38 xSharkoonX#10
search unknown value --> dann den wert verändern was du suchst sonst nix --> search changed value --> alles verändern nur nich den wert --> search unchanged value --> und som weiter
01/21/2009 22:08 Kaneoxi#11
und wenn ich mit der TOWN_OUT_ID nach draussen laufen möchte?
PHP Code:
#cs
Town_OUT_ID anlaufen

#ce
#include<NomadMemory.au3>


WinWait("Guild Wars""")
If 
Not WinActive("Guild Wars"""Then WinActivate("Guild Wars""")
WinWaitActive("Guild Wars""")

AutoItSetOption ("SendKeyDelay",150) ;Delay wird in ms angegebenStandardwert is 5 
AutoItSetOption 
("SendKeyDownDelay",150)

Sleep(2000)

$TOWN_OUT_ID 0xa06498
$var 
431
$PID 
ProcessExists(WinGetProcess("Guild Wars"))
$hp1 _MemoryOpen($PID)

_MemoryWrite($TOWN_OUT_ID$hp1$var)
sleep(1000)
send("{space}")


while 
1
        sleep
(50)

WEnd 
funktioniert es nicht. $var = 431 habe ich aus der Adresse 0xa06498 ausgelesen.
01/21/2009 22:42 i4mSoH34Vy#12
Damit kann man nur checken wo er ist und ihn nicht dort hin laufen lassen.
01/24/2009 23:24 N.E.O.#13
Kann mir das einer nochmal als Func schreiben pls?

Ich check das nicht...
das funzt irgendwie nicht o.O
01/24/2009 23:27 N.E.O.#14
Quote:
Originally Posted by Kaneoxi View Post
und wenn ich mit der TOWN_OUT_ID nach draussen laufen möchte?
PHP Code:
#cs
Town_OUT_ID anlaufen

#ce
#include<NomadMemory.au3>


WinWait("Guild Wars""")
If 
Not WinActive("Guild Wars"""Then WinActivate("Guild Wars""")
WinWaitActive("Guild Wars""")

AutoItSetOption ("SendKeyDelay",150) ;Delay wird in ms angegebenStandardwert is 5 
AutoItSetOption 
("SendKeyDownDelay",150)

Sleep(2000)

$TOWN_OUT_ID 0xa06498
$var 
431
$PID 
ProcessExists(WinGetProcess("Guild Wars"))
$hp1 _MemoryOpen($PID)

_MemoryWrite($TOWN_OUT_ID$hp1$var)
sleep(1000)
send("{space}")


while 
1
        sleep
(50)

WEnd 
funktioniert es nicht. $var = 431 habe ich aus der Adresse 0xa06498 ausgelesen.
Du brauchst die NPC_Select ID.

Guck mal hier:

NPC_ID_SELECT = 0xd284e0


PHP Code:
update.ini [Gw.exe] - wadimwadim 

[SECTION 9-A]
POSX 0xa05650
POSY 
0xa05654
DEATH 
0xa056d4
NO_NPC 
0xa07234
MOUSE_COORDX 
0xa05ce0
MOUSE_COORDY 
0xa05ce4
TOWN_OUT_ID 
0xa06498
MLOCATIONA 
0xa12e2b
MLOCATIONB 
0xa12e2a
COURSE 
0xa055c2
EX_AREA_ID 
0xa02f78
EXPANDER 
0xa05583
EXPANDERB 
0xa05582
LVL 
0xa02fc0
PVP_PVE 
0xa02fcc
PING 
0xa003e4
CHARNAME 
0xa00434
INTERFACE = 0xa01a37
MOUSE_TEXT 
0xa05308
BAGID 
0xa01f80
LOG_IN_OUT 
0xa165b8
GUILD_OPEN 
0xa02470
HERO_OPEN 
0xa0240c
INVENTAR_OPEN 
0xa02498
EMAIL 
0xa01a48
WINDOW 
0xa13330
MOVETO_TARGET 
0xa056af
CAST 
0xa05cc4
CURSOR 
0xa0a428
CWNDX 
0xa1340c
CWNDY 
0xa13408
INVENTARX 
0xa0249c
INVENTARY 
0xa0249c
HEROPOSX 
0xa02410
HEROPOSY 
0xa02414
HEROSIZEX 
0xa0241c
HEROSIZEY 
0xa02418
MMAPPOSX 
0xa024f0
MMAPPOSY 
0xa024ec
MMAPSIZEX 
0xa024f8
MMAPSIZEY 
0xa024f4
MERCHANTPOSX 
0xa026e0
MERCHANTPOSY 
0xa026e4
MERCHANTSIZEX 
0xa026e8
MERCHANTSIZEY 
0xa026ec
PARTYPOSX 
0xa02564
PARTYPOSY 
0xa02568
PARTYSIZEX 
0xa0256c
PARTYSIZEY 
0xa02570
STORAGE 
0xa01fac
SELLBAG_X 
0xa01f30
PMOVE 
0xa056dc
CHESTPOSX 
0xa024b4
CHESTPOSY 
0xa024b0
OBSERVEMOD 
0xa056e8

 
[SECTION D]
D_POSITION_X 0xd28c54
D_POSITION_Y 
0xd28c58
CHECK_MAP 
0xd288f0
NPC_ID_NEAR 
0xd28500
NPC_ID_SELECT 
0xd284e0
NPC_ID_MOUSE_SELECT 
0xd284ec
DMG 
0xd28988
NPC_ITEMSELECT 
0xd29f9c 
01/24/2009 23:28 aLasca#15
PHP Code:
#include <NomadMemory.au3> 

$hWnd WinGetHandle("Guild Wars"

Func _Dcheck() 
    Const 
$memdeath 0xa056d4 
    $PID 
WinGetProcess($hWnd
    Global 
$hprocess _MemoryOpen($PID

    If 
_memoryread($memdeath$hprocess) = 1 Then 
        
'resign' 
    
EndIf 
EndFunc 
Die Adresse von $memdeath gibt 1 Zurück wenn er tot ist, und 0 wenn er lebt.