hallo liebe elitepvpers gemeinde
ich bin zwar nicht neu im forum trozdem breuchte ich die unterstuezung
von euch alteingedienten autoit pro'S
ich hab mal angefangen mir ein bot zu machen
er ist noch lange nicht fertig und fuer das spiel karos online!
ich habe bewust dieses spiel ausgesucht weil es noch in beta status ist und keine gamegurd oder sonstige sicherheit besitzt
so hier nun meine bisherige arbeit im spoiler
PHP Code:
#RequireAdmin ; Wird evtl. bei Vista benötigt
#include <GUIConstants.au3>
#include <GUIConstantsEx.au3>
#include <Timers.au3>
#include <Pointer.au3>; siehe Anhang (enthält __MemoryGetBaseAddress)
;#include <NomadMemory.au3>
HotKeySet("!a","Startclick")
HotKeySet("!q","TogglePause")
Global $Paused
Global $counter = 0
$timer_60s = TimerInit()
$timer_15m = TimerInit()
$timer_5m = TimerInit()
While 1
Sleep(100)
WEnd
Func Memory()
$PID = ProcessExists("amo.exe") ; Prozessname, der z.B im Taskmanager angezeigt wird.
$MemOpen = _MemoryOpen($PID) ; Memory wird geöffnet
Global $Offset[3] ; Array des Offsets vom Pointer
$Offset[0] = 0 ; Ist nicht von bedeutung, einfach bei 0 lassen.
$Offset[1] = Dec("5F8") ; Static Addr Oset.
$Offset[2] = Dec("188")
$StaticOffset = Dec("00229E84") ; Das statische Offset (Prozess.exe+???????)
$BaseAddr = _MemoryGetBaseAddress($MemOpen, 1) ; Um die BaseAddresse herauszufinden (Funktion im Anhang
$Addr = "0x" & Hex($baseADDR + $StaticOffset) ; Finale Addresse die für MemoryPointerRead/Write verwendet wird
$Value = _MemoryPointerRead($Addr, $MemOpen, $Offset) ; Liest den Wert aus
MsgBox(0,"Test",$Value[0]) ; $Value[0] gibt den Wert zurück.
; $Open = _MemoryOpen(ProcessExists("AMo.exe"))
; $Adresse = 0x00339750
; $Read = _MemoryRead($Open ,$Adresse,'dword')
EndFunc
Func Timer_buff()
If Int(TimerDiff($timer_60s) / 1000) >= 60 Then
ControlSend ("Karos Online - ver.02.091230.nhn.eng.real","","","{8}")
Sleep(500)
ControlSend ("Karos Online - ver.02.091230.nhn.eng.real","","","{9}")
$timer_60s = TimerInit()
EndIf
If Int(TimerDiff($timer_15m) / 1000) >= 900 Then
ControlSend ("Karos Online - ver.02.091230.nhn.eng.real","","","{7}")
$timer_15m = TimerInit()
EndIf
If Int(TimerDiff($timer_5m) / 1000) >= 300 Then
ControlSend ("Karos Online - ver.02.091230.nhn.eng.real","","","{6}")
$timer_5m = TimerInit()
EndIf
EndFunc
Func Startclick()
While 1
WinActive ("Karos Online - ver.02.091230.nhn.eng.real")
WinActivate ("Karos Online - ver.02.091230.nhn.eng.real")
WinWaitActive ("Karos Online - ver.02.091230.nhn.eng.real")
Timer_buff()
ControlSend ("Karos Online - ver.02.091230.nhn.eng.real","","","{TAB}")
Sleep (100)
ControlSend ("Karos Online - ver.02.091230.nhn.eng.real","","","{3}")
Sleep (3600)
;ControlSend ("Karos Online - ver.02.091230.nhn.eng.real","","","{2}")
;Sleep (500)
;Send ("{2}")
;Sleep (500)
;Send ("{2}")
;$counter = $counter + 1
WEnd
EndFunc
Func TogglePause()
$Paused = NOT $Paused
While $Paused
sleep(100)
ToolTip('Script is "Paused"',0,0)
WEnd
ToolTip("")
EndFunc
Func Terminate()
ToolTip("Thankyou and Goodbye",0,0)
Sleep(2000)
Exit 0
EndFunc
nun zu meiner eigentlichen frage
NomadMemory
ich denke ich habe es hier mit multi lvl pointer zu tuhn
genau das ist aber der punkt wo ich nicht mehr weiter komme diesen multilvlpointer zu verarbeiten
ich habe es versucht mit dem code aber irgentwas geht da nicht
PHP Code:
#RequireAdmin ; Wird evtl. bei Vista benötigt
#include <Pointer.au3> ; siehe Anhang (enthält __MemoryGetBaseAddress)
$PID = ProcessExists("Prozess.exe") ; Prozessname, der z.B im Taskmanager angezeigt wird.
$MemOpen = _MemoryOpen($PID) ; Memory wird geöffnet
Global $Offset[3] ; Array des Offsets vom Pointer
$Offset[0] = 0 ; Ist nicht von bedeutung, einfach bei 0 lassen.
$Offset[1] = Dec("5F8") ; Static Addr Oset.
$Offset[2] = Dec("188")
$StaticOffset = Dec("00229E84") ; Das statische Offset (Prozess.exe+???????)
$BaseAddr = _MemoryGetBaseAddress($MemOpen, 1) ; Um die BaseAddresse herauszufinden (Funktion im Anhang
$Addr = "0x" & Hex($baseADDR + $StaticOffset) ; Finale Addresse die für MemoryPointerRead/Write verwendet wird
$Value = _MemoryPointerRead($Addr, $MemOpen, $Offset) ; Liest den Wert aus
MsgBox(0,"Test",$Value[0]) ; $Value[0] gibt den Wert zurück.
dieser teil ist oben schon eingebaut
warum ich den memory machen will naja ganz einfach pixelsearch is mir zu ... naja ich will mich weiter entwickeln und dazulernen
gibt es den hier ein parr leute die sich auskennen
oder macht euch doch mal ein account wens den hilfreich ist
ich habe noch 2 jpg angehaengt um die ce ausgabe zu zeigen!
danke schon mal fuer jede hilfe die ihr mir geben koennt
mfg