Pointer + Offsets in AutoIt beschreiben

05/24/2010 14:41 Chillex#16
hätte jetzt noch 3 Fragen...^^ aber erst die mir wichtigere :D
also ich hab wieder einen wert den DamageWert.
Den will ich nun auch freezen da er sich auch immer wieder ändert..
Nur diesmal soll er durch einem Button gefreezt werden.
Leider kann ich die Funktion so nicht übernehmen also...

....und dann einfach BeschreibeButton1() in die schleife schreiben.
Also wenn ich auf Button1 klicke mache ich immer noch genausoviel Damage wie vorher.
Ich glaub der fehler liegt in der zeile "If GUICtrlRead.....")
das GuiCtrlread brauch ich glaub ich garnicht?
Weil er ja die Funktion machen soll wenn ich draufklicke..
Vielleicht gibt es ja dafür auch eine Lösung also der Wert soll gefreezt werden
nur diesmal durch einen Buttonklick..
05/24/2010 16:14 Imaginär#17
Quote:
#include <GUIConstants.au3>

Dim $funktion1 = 0

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("TestGUI", 252, 59, 193, 125)
$Button1 = GUICtrlCreateButton("ON", 8, 16, 75, 25, 0)
$Button2 = GUICtrlCreateButton("OFF", 88, 16, 75, 25, 0)
$Graphic1 = GUICtrlCreateGraphic(176, 16, 57, 25)
GUICTRLSETBKCOLOR(-1,16711680)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
GUICTRLSETBKCOLOR($GRAPHIC1,65280)
$funktion1 = 1

Case $Button2
GUICTRLSETBKCOLOR($GRAPHIC1,16711680)
$funktion1 = 0

EndSwitch

If $funktion1 = 1 Then
*deine source / funktionen*
EndIf

WEnd
Bei *deine source / funktionen* musst du halt deine Funktionen mit dem Pointerwrite einbauen. :)

und nochwas:


Durch das verwenden von dem If $funktion1 = 1 wird der Wert "gefrezzet". Mit dieser Technik könntest du deinen ganzen Script laufen lassen ohne, dass er sich aufhängt ;)
05/24/2010 17:03 Chillex#18
Wow :O
wirklich großes thanks an dich !!
das halbiert mir sogar die Arbeit weils so "genial" ist :D
und ein anderes Problem hat sich nun auch gelöst ^^

eine kleine frage hätte ich noch (ok es sind 2kleiere in einem)..^^
wenn das noch jemand wissen würde dann hätte ich für die nächste zeit keine Fragen mehr^^
ich hab ein label.
das soll die aktuellen HP im Spiel anzeigen.
weiß da jemand wie ich das gestalten soll?

also das label soll sich dann auch immer aktualisieren wenn ich im Spiel lebenspunkte dazubekomme bzw verliere.
hab mir soetwas überlegt aber das funktioniert nicht^^
PHP Code:
case $label1
Global $Offset[3] = [00xa08 0x428]
 
_MemoryPointerRead[$pointer,$open,$Offset
oder geht das garnicht mit "Case..."?



Die 2te kleine Frage ist wie ich es schaffe
dass mir ein label anzeigt ob ich verbunden bin oder nicht
(mit in meinem Fall "TClient.exe")


also wenn jemand noch auf die 2 fragen eine Antwort wüsste dann wäre mir alles klar. Aber mit dem Wissen
das ich jetzt dank euch habe
komm ich auch ziemlich gut zurecht :D
05/24/2010 17:08 huberhans#19

Das mit dem Label ist eigentlich net schwer.
PHP Code:
GUICtrlSetData($Label1_Memorypointerread($pointer,$open,$Offset)) 
Allerdings nicht im Switch bzw. Select, sondern einfach irgendwo hinterher in der Schleife.

Die Offsets kannst du allerdings schon vor der While-Schleife definieren, das ist vollkommen ausreichend. Diese müssen nicht bei der _Memory-Funkton direkt stehen.

Noch ein paar kleine Infos:

Ich bau meine Scripts immer so auf:
----------
Includes
GUI
Variablen definieren
Offsets

Grundwerte auslesen

Hauptschleife

Funktionen
-----------

Bei "Grundwerte auslesen" definiere ich zum Beispiel die HP beim Start des Scripts
PHP Code:
$W1 _MEMORYPOINTERREAD($Pointer$Prozess$OFFSET_HP)
    
$AKT_HP $W1[1]
GUICtrlSetData($Label_HP$AKT_HP
In der Schleife wird dann die HP wie folgt ausgelesen:

PHP Code:
$W1 _MEMORYPOINTERREAD($Pointer$Prozess$OFFSET_HP)
        If 
$W1[1] <> $AKT_HP Then
            $AKT_HP 
$W1[1]
                   
GUICtrlSetData($Label_HP$AKT_HP)
               EndIf 
Durch das <> wird ein Flackern der GUI vermieden, da das Label nur bei Änderung des HP-Wertes neu geschrieben wird.
Gruß
05/24/2010 21:33 Chillex#20
hm also hab das jetzt mal ausprobiert aber irgendwie klappt das noch nicht ganz.
Soll ich nun erstere Funktion in die Schleife nehmen oder die letztere?
Bei der ersten zeigt er mir die HP nicht so wirklich an außer ich fass den "GUICtrlSetData" teil in einer variable zusammen und lass ihn durch eine Msgbox anzeigen.
Dann schreibt er mir dass ich 1 Leben hab was so nicht stimmt weil ich 2332 hab.^^
Und bei der zweiten funktion zeigt er mir irgendwie leider garnichts an.
Oder hab ich was falsch verstanden und muss noch was dazu schreiben?
Aufjedenfall schonmal danke für den Hinweis wie man sein Script ordentlicher aufbauen sollte..bei mir ist es eigentlich immer ein durcheinander :D
05/30/2010 12:38 BestOfElite#21
hi leute ich bin immoment dabei ein 4storyEG hack zu machen nur ich hab genau die gleichen probleme wie chillex und noch eins mein NoMadMemory enthält nicht diese funktion was soll ich machen plz help
05/30/2010 13:11 Σternαl.#22
Entweder du hast nicht richtig geguckt oder du hast ne falsche....
||
\/
05/30/2010 13:48 BestOfElite#23
ich kanns ja nochmal probieren ^.^

aber mit der alten ham hacks auch ohne pointer gefunkt ok ok ich probiers :D is des jetzt die richtige?
ähhhhh ich hab jetzt den base pointer nur wie bekomme ich die 2 offsets immer wenn ich auf change address dann pointer anklicke dan wir die addresse zu "????????" PLZ help
05/30/2010 14:49 Σternαl.#24
Vllt mal ein Gamehacking tutorial lesen?
05/30/2010 15:08 BestOfElite#25
ich habs doch schon jetzt fehlt nurnoch das frezzen wenn ich auf nen button klick wird der hack activiert und gleichzeitig gefrezzt wie geht das also das der ahck activiert wird hab ich schon aber gefrezzt :S plz help
05/31/2010 00:05 Chillex#26
Soo da sich das Thema doch noch etwas weiter hochgepusht hat frage ich noch einmal :D

Leider funktioniert das so nicht und ich weiß nicht wie ich weiterkommen soll..
PHP Code:
GUICtrlSetData($Label1,*_Memorypointerread($pointer,$open,$Offset))* 
im dem Label wird einfach nicht der aktuelle lebenswert angezeigt.
Gibt es eine Methode den HPwert auszulesen und in einem Label anzuzeigen?Vielleicht hab ich ja diese Möglichkeit einfach nicht verstanden aber was hab ich dann falsch gemacht?
05/31/2010 00:06 huberhans#27
Quote:
Originally Posted by Chillex View Post
Soo da sich das Thema doch noch etwas weiter hochgepusht hat frage ich noch einmal :D

Leider funktioniert das so nicht und ich weiß nicht wie ich weiterkommen soll..
PHP Code:
GUICtrlSetData($Label1,*_Memorypointerread($pointer,$open,$Offset))* 
im dem Label wird einfach nicht der aktuelle lebenswert angezeigt.
Gibt es eine Methode den HPwert auszulesen und in einem Label anzuzeigen?Vielleicht hab ich ja diese Möglichkeit einfach nicht verstanden aber was hab ich dann falsch gemacht?
Wozu die Sternchen im Code?
05/31/2010 00:14 Chillex#28
Oups xD
die gehören da nicht rein :D
weiß jetzt nicht wie die da reingekommen sind .
In meinem Script gibt's die jedenfalls nicht.
also an denen liegts nicht.^^
05/31/2010 00:27 Neku!#29
Ich habe die Erfahrung gemacht das _MemoryPointerRead nicht immer funktioniert dafür aber die MemoryPointerWrite umso besser(woran das liegt weiss ich auch nicht).
Probiers mal mit _MemoryRead, damit sollte es gehen wenn du es richtig machst.
Anmerkung: Für die Funktion _MemoryRead ist "NomadMemory.au3" erforderlich.
05/31/2010 00:30 huberhans#30
Schonmal den indirekten Weg probiert?

PHP Code:
$Wert _Memorypointerread($pointer,$open,$Offset))
GUICtrlSetData($Label1$Wert[1])