AutoIt Monster HP Memory auslesen

04/07/2010 23:08 ShowUrSkillz#1
Ich wollte fragen ob ich diesen Code benutzen kann, das wenn die HP des Monster 0 sind TAB gedrückt wird. Offset hab ich schon.

PHP Code:
Func Monster HP()
$ID=_MemoryOpen(0x0000043C)   <== Nksp.exe
$Address
=0x"Monster HP Offset"
$CurrentMonsterHP=_MemoryRead($Address,$ID)

If 
$CurrentMonsterHP 0 Then
      ControlSend
("{TAB}")  <== Ziel wechseln(erstmal nicht wichtig)
EndIf
    
_MemoryClose($ID)
EndFunc 
Danke schon mal für nützliche Antworten.
04/07/2010 23:11 huberhans#2
Ich würd mir folgendes mal anschauen:
Die AutoIt-Funktion WinGetProcess
Die UDF _MemoryPointerRead

Und MemoryClose kannst getrost weglassen.
04/07/2010 23:12 ShowUrSkillz#3
Quote:
Originally Posted by huberhans View Post
Ich würd mir folgendes mal anschauen:
Die AutoIt-Funktion WinGetProcess
Die UDF _MemoryPointerRead

Und MemoryClose kannst getrost weglassen.
Aber rein vom Code her müsste es doch gehen oder?
04/07/2010 23:13 KDeluxe#4
Nein, da Tab nur gedrückt wird, wenn die HP < (kleiner) als 0 sind, diese Bedingung wird aber nie erfüllt.
04/07/2010 23:15 huberhans#5
Quote:
Originally Posted by ShowUrSkillz View Post
Aber rein vom Code her müsste es doch gehen oder?
Vom Prinzip her ja. Da ich aber vermute, daß du nicht nur die Mob-HP auslesen möchtest, solltest du die MemoryOpen usw. nicht unbedingt in ner Funktion sondern Global machen.
Mit den aus der Memory gelesenen Werten kannst du ja nachher jederzeit in Funktionen arbeiten.

Edit:
Quote:
Originally Posted by KillerDeluxe View Post
Nein, da Tab nur gedrückt wird, wenn die HP < (kleiner) als 0 sind, diese Bedingung wird aber nie erfüllt.
Hab ich übersehen... Hast recht
04/07/2010 23:16 ShowUrSkillz#6
Quote:
Originally Posted by KillerDeluxe View Post
Nein, da Tab nur gedrückt wird, wenn die HP < (kleiner) als 0 sind, diese Bedingung wird aber nie erfüllt.
wie kann ich des dann machen?^^
04/07/2010 23:18 huberhans#7
Quote:
Originally Posted by ShowUrSkillz View Post
wie kann ich des dann machen?^^
Benutze doch einfach <=
Du kannst Operatoren jederzeit kombinieren. So geht zum Beispiel auch <> als Bedingung, wenn sich der gelesene Wert ändert...
04/07/2010 23:29 ShowUrSkillz#8
Quote:
Originally Posted by huberhans View Post
Vom Prinzip her ja. Da ich aber vermute, daß du nicht nur die Mob-HP auslesen möchtest, solltest du die MemoryOpen usw. nicht unbedingt in ner Funktion sondern Global machen.
Mit den aus der Memory gelesenen Werten kannst du ja nachher jederzeit in Funktionen arbeiten.
Wie meinst du das mit Memory Global auslesen, kannst du vllt. ein kleines Beispiel geben. (bin noch nicht so lang mit AutoIt zugange^^)