Frage zu Memory

07/31/2010 13:47 Artarex#1
Hi ich spiel ein Spiel (Pokemonworldonline) Nun habe ich mal di pointer rausgefunden. Also jedes Pokemon hat eine bestimmte id und wenn mir nun ein pokemon begenet steht ebend da welche id es hat^^.
Nun möchte ich aber das wenn es z.b die id 123 gefunden hat das der bot einfach stoppt. wie könnte ich das machen? (ein script habe ich noch nicht)
hier mal der pointer: P->005A7C70 die adresse war 005A7C70 (Also da wo ich in Ce gesehen habe das sich die Valu geändert hat.


Thx schonmal^^.
07/31/2010 15:17 Shadow992#2
Quote:
Originally Posted by nilsheigener View Post
Hi ich spiel ein Spiel (Pokemonworldonline) Nun habe ich mal di pointer rausgefunden. Also jedes Pokemon hat eine bestimmte id und wenn mir nun ein pokemon begenet steht ebend da welche id es hat^^.
Nun möchte ich aber das wenn es z.b die id 123 gefunden hat das der bot einfach stoppt. wie könnte ich das machen? (ein script habe ich noch nicht)
hier mal der pointer: P->005A7C70 die adresse war 005A7C70 (Also da wo ich in Ce gesehen habe das sich die Valu geändert hat.


Thx schonmal^^.
Pseudo-Code
Code:
MemoryOpen("Pokemonworldonline","DebugPrivilegs")
$addr=""
$offset=""
if MemoryRead($addr+$offset)="123" then Stop()
Btw. Such mal nach NomadMemory.au3 ;)
07/31/2010 15:39 KDeluxe#3
PHP Code:
$Handle _MemoryOpen("Pokemonworldonline")
$Address 0x005A7C70
$Address2 
_MemoryRead($Address$Handle)
$Offset 0x0

If _MemoryRead($Address2 $Offset$Handle) = "123" Then MsgBox(0"""123"
Du musst natürlich noch "$Address" und "$Offset" anpassen.
07/31/2010 18:17 Italien...Donni#4
Wen du Stoppen wilst einfach so:

While 1
Sleep (50)
WEnd
07/31/2010 18:37 Neon™#5
Quote:
Originally Posted by italien1995 View Post
Wen du Stoppen wilst einfach so:

While 1
Sleep (50)
WEnd
Schonmal was von Exit gehört?
07/31/2010 18:52 Italien...Donni#6
??
HotKeySet("{F5}", "_Stop")
Func _Stop()
While 1
Sleep(50)
WEnd
EndFunc
07/31/2010 19:34 Artarex#7
Mein script sieht nun so aus:


#include <NomadMemory.au3>

while 1
$Handle = _MemoryOpen("Pokemonworldonline")
$Address = 0x005A7C70
$Address2 = _MemoryRead($Address, $Handle)
$Offset = 0x005A7C70

Wend
If _MemoryRead($Address2 + $Offset, $Handle) = "48" Then MsgBox(0, "", "123)
EndIf





der fehler kommt immer: C:\Users\heigi\Desktop\relaxo.au3(10,72) : ERROR: syntax error (illegal character)
If _MemoryRead($Address2 + $Offset, $Handle) = "48" Then MsgBox(0, "", "
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~^
C:\Users\heigi\Desktop\relaxo.au3 - 1 error(s), 0 warning(s)
07/31/2010 19:37 MoepMeep#8
Quote:
Originally Posted by italien1995 View Post
Wen du Stoppen wilst einfach so:

While 1
Sleep (50)
WEnd
Die AutoIt section ist einfach immer einen lacher wert :>
07/31/2010 19:39 Artarex#9
Hatte meinen fehler gefunden den einen weshalb die meldung kam^^
07/31/2010 19:55 omer36#10
Quote:
Originally Posted by MoepMeep View Post
Die AutoIt section ist einfach immer einen lacher wert :>
er spricht nicht für uns alle... :rolleyes:
07/31/2010 20:04 Artarex#11
Neuer fehler habe nun dieses script:
PHP-Code:
PHP Code:
#include <NomadMemory.au3>

while 1
$Handle 
_MemoryOpen("PWO")
$Address 0x005A7C70
$Address2 
_MemoryRead($Address$Handle)
$Offset 0x005A7C70


If _MemoryRead($Address2 $Offset$Handle) = "48" Then MsgBox("","Info","script wird beendet!","1")



$Handle _MemoryOpen("PWO")
$Address 0x005A7C7C
$Address2 
_MemoryRead($Address$Handle)
$Offset 0x005A7C7C


If _MemoryRead($Address2 $Offset$Handle) = "48" Then MsgBox("","Info","script wird beendet!","1")


Wend 
Naja ich bekomme keine msg. Habe die nomadmemory.au3 im script order und im include ordner. Die frage ist. Ob ich das richtige bei memoryopen eingetragen habe. Was soll da genau rin? Wie das Spiel heißt ? Wie der nanme auch in CE angezeigt wird? (Also PWO) usw.
Wieso ich 2 mal die adress habe? Weil es leider 2 adressen sind.
Da komische die offsets sind die gleichen werte wie die adresse. (Ok das spiel hat noch nie offsets änderungen gemacht)

mfg
07/31/2010 20:17 bassbanane#12
Ich denke mal dein Problem ist, dass du keinen schimmer davon hast, was das mit den Adressen, Pointern, Basepointern und Offsets überhaupt auf sich hat.
Es ist sehr schwer einen funktionierenden Memory hack zu coden, wenn man davon 0 Ahnung hat.
Also würde ich dir empfehlen dich erstmal AUSGIEBIG mit dem Memory zu beschäftigen.
Wenn du das kapiert hast wird es eine Leichtigkeit sein dein Script zu vervollständigen.

Bis dahin musste dich wohl oder übel mit deiner CE beglücken ;)
07/31/2010 23:02 KDeluxe#13
Du solltest uns erst mal die richtigen Adressen und Offsets geben.

Zu deinem Fehler:
Du musst entweder ProcessExists() oder WinGetProcess() benutzen, um den Prozess zu öffnen.

PHP Code:
#include <NomadMemory.au3> 

$Handle _MemoryOpen(ProcessExists("PWO.exe")) ;falls der Prozess so heißt
;$Handle _MemoryOpen(WinGetProcess("PWO")) ; falls "PWO" der Fenstername des Spiels ist
$Address 
0x005A7C7C ;ist eine normale Adresse
$Offset 
0x0
$Address2 
_MemoryRead($Address$Handle)

While 
True
    
If _MemoryRead($Address2 $Offset$Handle) = "48" Then 
        MsgBox
("","Info","script wird beendet!","1")
        Exit
    EndIf
WEnd