@wadimwadim: Verbesserungsvorschlag zu deiner SectionD-Suchfunktion:
Code:
#include <NomadMemory.au3>
$ah_Handle = _MemoryOpen(ProcessExists ("gw.exe"))
$pattern="558BEC83 EC1056.. ........ ....8B08 890D.... ....8BCF 8B50.... ........ ......8B 400889.."
$timer=TimerInit()
$find=_MemoryScan($ah_Handle, $pattern, true)
$timer=TimerDiff($timer)
$N_SECTION_D_POSX = _MemoryRead($find, $ah_Handle)
$POSX = Round(_MemoryRead($N_SECTION_D_POSX, $ah_Handle, "float"), 0)
msgbox(0, "Found", "Found: " & $find & " in " & Round($timer,0) & "ms." & @LF & "Address: " & Hex($N_SECTION_D_POSX) & " Value: " & $POSX)
;==================================================================================
; Function: _MemoryScan($ah_Handle, $pattern [, $after[, $iv_addrStart, [$iv_addrEnd]]])
; Description: Finds the address of the first occurance of a pattern in a process.
; Parameter(s): $ah_Handle - An array containing the Dll handle and the handle
; of the open process as returned by _MemoryOpen().
; $pattern - The pattern you want to find. Provide the pattern
; as a String of hex values. You may use the '.' as wildcard.
; Any other character as '0123456789ABCDEFabcdef.' is ignored.
; Example: "55 8B .. 83"
; $after - (optional) Set to FALSE by default.
; If set to TRUE, the method will return the address
; after the pattern, else the method returns the address
; of the pattern itself.
; $iv_addrStart - (optional) Set to 0x00400000 by default.
; This is the address where the method begins to scan
; for the pattern. It must be in hex format (0x00000000).
; $iv_addrEnd - (optional) Set to 0X00FFFFFF by default.
; This is the address where the method stops to scan
; for the pattern. It must be in hex format (0x00000000).
; Requirement(s): None.
; Return Value(s): On Success - Returns the address of the first occurance of the pattern
; ($after = FALSE) or the address after the first occurance
; of the pattern ($after = TRUE). The address is in
; hexadecimal format.
; On Failure - Returns -1
; @Error - 0 = No error.
; 1 = Invalid $ah_Handle.
; 2 = Invalid $pattern.
; Author(s): Luzifer42
; Note(s): The default scan range will be completed in less than one second.
;==================================================================================
Func _MemoryScan($ah_Handle, $pattern, $after=false, $iv_addrStart=0x00400000, $iv_addrEnd=0X00FFFFFF, $step=51200)
If Not IsArray($ah_Handle) Then
SetError(1)
Return -1
EndIf
$pattern=StringRegExpReplace($pattern, "[^0123456789ABCDEFabcdef.]", "")
IF StringLen($pattern)=0 Then
SetError(2)
Return -1
EndIf
For $addr=$iv_addrStart To $iv_addrEnd Step $step-(StringLen($pattern)/2)
StringRegExp(_MemoryRead($addr, $ah_Handle, "byte[" & $step & "]"), $pattern, 1, 2)
If Not @Error Then
If $after Then
return StringFormat("0x%.8X", $addr+((@Extended-2)/2))
Else
return StringFormat("0x%.8X", $addr+((@Extended-StringLen($pattern)-2)/2))
EndIf
EndIf
Next
Return -1
EndFunc
Habt ihr auch Probleme mit einigen Adressen? Bei mir z.B. Chest X und Y: Die Adressen scheinen zu stimmen jedenfalls würden die Werte die ausgegeben werden passen aber wenn ich sie verändere tut sich nichts mehr an der Chest Position o0
Ping wird ein falscher Wert wiedergegeben, bei Interface wird auch kein passender Wert wiedergegeben und Partysize stimmt auch nicht mehr. Das waren jetzt nur die Adressen wo es mir bisher aufgefallen ist.
Und bei mir funktioniert irgendwie auch Wadims Update Tool nicht mehr (die Version ist schon ein bisschen älter hat bis vor dem Up aber immer funktioniert). Es kommt immer eine Meldung, dass die Variable fehlt obwohl ich richtig stand. Habs schon X mal probiert.
Sieht so aus, als hätten sich die offsets geändert, das heisst einfach nochmal die adressen suchen (und evtl. Posten, damit man die neuen offsets einbauen kann).
Sieht so aus, als hätten sich die offsets geändert, das heisst einfach nochmal die adressen suchen (und evtl. Posten, damit man die neuen offsets einbauen kann).
jo wird wohl so sein, ich denke kaum, dass sich die region weit enfernt hat.
ich werd das wahrscheinlich nicht machen, am besten schreibt ihr euch was eigenes :P
jo wird wohl so sein, ich denke kaum, dass sich die region weit enfernt hat.
ich werd das wahrscheinlich nicht machen, am besten schreibt ihr euch was eigenes :P
[Fragen & Diskussionen] Longjuyt2 07/25/2009 - Metin2 Private Server - 1461 Replies Hallöchen,
in diesme Thread könnt ihr eure Fragen über Longjuyt2 los werden.
Gleichzeitg könnt ihr hier wild diskutieren rund um den Server Longjuyt2.
Suche ICQ Support zu den Memorys 10/12/2008 - Guild Wars - 10 Replies Wie der Titel schon sagt, suche ich jemanden der mir das mit den Memorys ein bisschen erklären kann und mir dann auch fragen beantworten kann.
Eventuell könnte er mir dann auch ein bisschen so zu AutoIt helfen und meinen unpublic NestlingeFarmbot als Belohnung bekommen.. :bandit:
meldet euch einfach hier oder per pm! :)
Naja bis dann,
anonym110
Memorys auslesen 10/04/2008 - Guild Wars - 5 Replies Hi,
ich arbeite mich gerade in Memorys ein, kann ja mal nützlich sein
Aktuelles Leben habe ich Adresse 05C6E648 herraus gefunden , stimmt auch da ich wenn ich 30 HP verliere das da auslesen kann.
Die Frage ist nun, wadims adressen sind alle 0x irgenwas , muss man die umwandeln ??
Und die nächste Frage, nach Leben scannen, also Zahlen die sich verändern hab ich nun verstanden und es klappt.