WoW Speicher PlayerName auslesen

06/22/2011 23:22 Kilinat#1
Huhu, ich hab ein kleines Script geschrieben, dass meinen Playername aus WoW auslesen soll, leider gibt mit das Script aber immer "0" zurück.
Vielleicht könnt ihr mir ja helfen.



MFG
06/23/2011 00:25 KDeluxe#2
Das Script ist absoluter Schwachsinn. Die Funktion zum beenden des Script ist vollkommen nutzlos. Da eine MsgBox sowieso schon das ganze Script pausiert ist das Sleep() nach der MsgBox() bzw. vor dem Exit auch sinnlos.
Bei "$playerBase" addierst du einfach alles zusammen, was einer Adresse von 0x9B7884 entspricht. Du müsstest schon auf den Buffer addieren, oder gleich die "_MemoryPointer"-Funktionen benutzen. Da die Variable später aber auch nicht mehr benutzt wird, kannst du dir diesen Teil gleich sparen und entfernen.
Mit dem 3. Parameter wird der Datentyp übergeben, du ersetzt den Standardparameter aber einfach mit nichts. Dass das nichts werden kann ist klar, da dieser Fall nicht bedacht wird (sollte eigentlich auch logisch sein).


Übrig bleibt das:
PHP Code:
#include <NomadMemory.au3>

$ProcessId ProcessExists("wow.exe")
If 
$ProcessId 0 Then
    $Handle 
_MemoryOpen($ProcessId)
    If 
Not @error Then
        MsgBox
(0"Name"_MemoryRead(0x903F40$Handle"char[255]"))
    Else
        
MsgBox(0"Fehler""Der Prozess konnte nicht geöffnet werden!")
    EndIf
Else
    
MsgBox(0"""Starte WoW!")
EndIf 
06/23/2011 00:44 Kilinat#3
Danke, aber dein Script funktioniert genauso nicht...
Es gibt nichts zurück..
06/23/2011 00:47 BlackHybrid#4
Dann stimmt vllt die Adresse nicht mehr.
Du weist auch, dass sich die Adresse jedesmal wieder ändert oder?
06/23/2011 00:53 Kilinat#5
Und wie kann ich die dann fixxen, dass sie gleichbleibt ?
06/23/2011 00:58 BlackHybrid#6
Pointer raussuchen und andere UDF benutzen. Ein TuT, wie man nach Pointern sucht sollte man schnell finden.

PS: Ich habs eben ausprobiert und es hat alles geklappt.
06/23/2011 14:31 Kilinat#7
Wieso andere UDF benutzen ?
06/23/2011 14:49 BlackHybrid#8
Um die Pointer und Offsets mit einzubringen ;)
06/28/2011 05:05 Whoknowsit#9
PHP Code:
#include <NomadMemory.au3>

$ProcessId ProcessExists("wow.exe")
If 
$ProcessId 0 Then
    $Handle 
_MemoryOpen($ProcessId)
    If 
Not @error Then
        $Base 
_MemoryModuleGetBaseAddress($ProcessId"Wow.exe")
        
MsgBox(0"Name"_MemoryRead($Base 9453376$Handle"char[255]"))
    Else
        
MsgBox(0"Fehler""Der Prozess konnte nicht geöffnet werden!")
    EndIf
Else
    
MsgBox(0"""Starte WoW!")
EndIf