Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 17:19

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Pointer + Offsets in AutoIt beschreiben

Discussion on Pointer + Offsets in AutoIt beschreiben within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
Chillex's Avatar
 
elite*gold: 15
Join Date: Apr 2010
Posts: 987
Received Thanks: 2,101
Pointer + Offsets in AutoIt beschreiben

Also ein HI an alle AutoIt'ler,
Erstmal ich bin AutoIt Anfänger. (nur so zur Info)

Jetzt auch schon sofort zur Frage:

Ich hab im Spiel "4story"(online Game) den Pointer + 2 Offsets für die Adresse gefunden ,die mich durch Beeinflussen
entweder sichtbar oder unsichtbar erscheinen lässt.

Dazu ein Screen aus Moonlight Engine
Pointeradresse ist "0069D8F0"
Offset 1 : A20
Offset 2 : 42c
..bringen mich zu der Adresse mit der ich im Spiel "visible" bzw "invisible" bin.

So nun meine Frage ist wie ich Pointer + die Offsets im AutoIt script so verbaue ,dass sie durch einen Buttonklick aktiviert werden.

Bis dahin komme ich zuzeit aber weiter weiß ich nicht mehr.
der Anfang müsste doch so richtig sein oder?

Nur ich weiß wirklich nicht wie ich nun die Pointer mit den Offsets benutzen soll.
Wenn ich Button1 anklicke soll ich unsichtbar werden.
(ahso value die einen unsichtbar macht 16842753)
so hätte ich es mir vorgestellt aber es klappt nicht ^^
Hab schon im 4story bereich gefragt hab auch Antworten bekommen
bei denen ich anfangs dachte sie würden mir weiterhelfen
aber dem ist nicht so.

Nun hoffe ich hier auf Hilfe, dass mir jemand erklären kann wie man Pointer+ Offsets ins AutoItscript einbaut
und wie ich sie ,wie Adressen beschreiben(im Sinne verändern) kann
(Habe hier schon einige threads dazu gefunden (9stück) aber keiner hat mir wirklich weitergeholfen.
In Google hab ich auch schon lange Zeit gesucht aber nirgends gibts ein Beispiel an dem ich sehen könnte wies geht)
Chillex is offline  
Old 05/16/2010, 02:03   #2
 
elite*gold: 0
Join Date: Nov 2009
Posts: 927
Received Thanks: 1,317
Du mußt erstmal nachsehen, ob deine NomadMemory.au3 die Funktionen _MemoryPointerRead und _MemoryPointerWrite hat.

Falls ja ist es ganz einfach:

PHP Code:
#include <NomadMemory.au3>

Hier sollte irgendwo die GUI definiert werden <

GUISetState(@SW_SHOW$GUI)

Global 
$Pointer 0x0069D8F0
Global $Open _MemoryOpen(ProcessExists("TClient.exe"))
Global 
$Offset[3] = [00xA200x42c]

While 
1
   $NMG 
GUIGetMsg()
      Switch 
$NMG
         
Case $GUI_EVENT_CLOSE
            
Exit
         Case 
$Button1
            _MemoryPointerWrite
($Pointer$Open$Offset16842753)
      EndSwitch
WEnd 
Wichtig hierbei: Bei den Offsets musst du die "0x" mit angeben, damit die Werte als Hex-Zahlen erkannt werden!

Wenn du nur die Funktion _MemoryWrite zur Verfügung hast, mußt du meines Wissens die Offsets auf den Pointer addieren, hab ich persönlich aber nie so gemacht, da die MemoryPointer-Geschichte einfacher in der Handhabung ist.

Gruß
huberhans is offline  
Thanks
4 Users
Old 05/16/2010, 13:41   #3
 
Chillex's Avatar
 
elite*gold: 15
Join Date: Apr 2010
Posts: 987
Received Thanks: 2,101
Meine Nomadmemory.au3 hat zwar MemoryPointerWrite und MemoryPointerRead nicht dafür hab ich die Pointer.au3 genommen.
Deine Antwort war mir eine wirklich groooße Hilfe
Es funktioniert, so mein Problem wäre damit gelöst
Chillex is offline  
Old 05/18/2010, 17:55   #4
 
elite*gold: -186
Join Date: Jul 2009
Posts: 94
Received Thanks: 109
wo kann ich die Pointer.au3 runterladen
eexerasann is offline  
Thanks
1 User
Old 05/18/2010, 18:29   #5
 
elite*gold: 0
Join Date: Nov 2009
Posts: 927
Received Thanks: 1,317
Einfach mal googlen
huberhans is offline  
Thanks
1 User
Old 05/22/2010, 19:38   #6
 
Chillex's Avatar
 
elite*gold: 15
Join Date: Apr 2010
Posts: 987
Received Thanks: 2,101
so hab jetzt noch eine Frage ..
das mit pointern beschreiben hab ich verstanden danke nochmal

also:
ich hab einen Radio(-button?)
so ich weiß wie ich nun auslese
und beschreibe:
das "$check" müsste eigentlich nichtmal in den PointerWrite teil.
naja egal.
Es geht mir nur darum dass ich die Adresse nicht "freezen" kann wie bei CE zum bespiel.
Sobald ich im SPiel eine Aktion ausführe sezt sich der Wert "424" einfach zurück.
Und ich weiß nicht warum.
Bei anderen Adressen wie z.B bei "Invisible"(der Unsichtbarkeit) freezt sich der Wert und bei der nicht.
Hab es mal mit einer while Schleife probiert da "freezt" sich der Wert zwar dann aber ich kann in dem Fenster keine weiteren Sachen mehr anklicken.
Also habs mal so probiert nur so kann ich nichts mehr im Fenster machen^^
hoffentlich kann mir jemand sagen wie man denn nun den einen Wert in AutoIt freezen kann.
(ahja der Wert ,um den es hier geht ist in CE freezbar nur in AutoIt schaff ich's nicht)

(edit. obwohl die adressen freezen sich bei mir nie so richtig nur ne zeit lang oder garnicht^^
also meine Frage lautet nun eher wie man jeden Wert in AutoIt freezt )
Chillex is offline  
Old 05/22/2010, 20:18   #7
 
elite*gold: 0
Join Date: Nov 2009
Posts: 927
Received Thanks: 1,317
Freezen an sich kannst mit AutoIt nicht. Was du machen kannst, ist folgendes.
Du kannst die _MemoryPointerWrite()-Zeile in ner Schleife laufen lassen, dann wird dein Wert immer wieder neu gesetzt.
So, nun gibt's aber auf dem ersten Blick das Problem, daß das Script ja dann in dieser Schleife hängen bleibt. Dazu ist die Lösung eigentlich ganz simpel.

Eine Haupt-Schleife hast ja sowieso. Nun kannst du ja aus dieser Funktionien aufrufen.
Setz für den Wert, den du gefreezt haben willst einfach ne Checkbox als Bedingung, dann siehts folgendermaßen aus:
PHP Code:
While 1
.
.
.

   
Setze_Wert() ; Hier wird die Funktion zur Abarbeitung aufgerufen
Wend

Func Setze_Wert
()
   If 
GUICtrlRead($CheckBox) = $GUI_CHECKED THEN
       _MemoryPointerWrite
()
   EndIf
Endfunc 
Kurz zur Erklärung:
Dein Script durchläuft ja immer die HauptSchleife von oben nach unten und springt von dort aus immer zu den aufgerufenen Funktionen und wieder zurück in die Schleife. Ist nun in der GUI die Bedingung erfüllt (Checkbox angehakt) dann setzt dein Script in der Funktion Setze_Wert() eben die Memory-Adresse jedes mal, wenn es an der Reihe ist (im Millisekunden-Takt) den Wert neu.
Fertig

Gruß

P.S.: Die Checkbox war nur zur Erklärung, die Bedingung kannst natürlich auch über 'n Radion-Button oder sonstiges festlegen.
huberhans is offline  
Thanks
1 User
Old 05/22/2010, 21:07   #8
 
Chillex's Avatar
 
elite*gold: 15
Join Date: Apr 2010
Posts: 987
Received Thanks: 2,101
Danke für deine Antwort
...Mh also verstanden hab ichs aber der Wert setzt sich leider immer noch zurück.

Mein Code:
Mach ich irgendetwas falsch?
Ich sehe in Cheat Engine dass sich der Wert in 424 ändert aber wenn ich im Spiel was mache ändert sich die Value wieder in eine ganz andere.
Das "$GUI_CHECKED" muss ich das vielleicht noch deffinieren in mein Script,
weil das ja eine variable ist?
Aber eigentlich ja nicht ,sonst hätte AutoIt ja schon gemekert dass es eine
nicht deffinierte variable ist und das hat es nicht.
Ich weiß nun wirklich nicht wie ich weitermachen soll
also wie ich adressen freezen soll.
Oder ist doch ein Fehler im dem Script von mir?

(sorry ,dass ich das ,von dir geschriebene nur doof kopiere und an meinem script leicht anpasse ,
aber hab leider nicht so viel Ahnung von AutoIt ^^)
Chillex is offline  
Old 05/22/2010, 21:29   #9
 
elite*gold: 0
Join Date: Nov 2009
Posts: 927
Received Thanks: 1,317
Schreib mal den funktionsaufruf in der schleife nach dein EndSwitch.
Da in der Funktion die Bedingung sowieso abgefragt wird, brauchst sie nicht per Case $Radio1 aufrufen sondern einfach dauerhaft mit laufen lassen

Edit: Weil ich's grad seh, den Offset kannst auch vor der Schleife definiern, das muß nicht in der Funktion stehen
huberhans is offline  
Thanks
1 User
Old 05/22/2010, 22:06   #10
 
Chillex's Avatar
 
elite*gold: 15
Join Date: Apr 2010
Posts: 987
Received Thanks: 2,101
hm.
(1)okay Funktion hinter das EndSwitch getan aber jetzt kommt einer Error
"While Statment has no matching WEnd statement"
also die while schleife hat kein richtiges Ende.
Und es gibt ein "Wend".
(2)Und was ich noch nicht versteh ist dass ich das "Case $Radio1 " nicht brauche.
Das Programm muss doch wissen auf welche/n Radiobutton, Button Checkbox etc. ich die Funktion grade anwenden will?
(3) wenn ich dass Offset nicht vor den _MemoryPointerWrite teil schreibe dann sagt er mir dass er die variable $Offset nicht fiinden kann.
es geht nur wenn die Variable $Offset vor dem PointerWrite Teil steht.
Also hab das jetzt nicht ganz verstanden^^
Chillex is offline  
Old 05/22/2010, 22:43   #11
 
elite*gold: 0
Join Date: May 2010
Posts: 6
Received Thanks: 1
Hier so sollte es gehen:
Code:
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Radio1
			BeschreibeAdresse()
	EndSwitch
WEnd

Func BeschreibeAdresse()
	If GUICtrlRead($Radio1) = $GUI_CHECKED Then
		Global $EOffset[3] = [0, Dec("A08"), Dec("474")]
		_MemoryPointerWrite($pointer1, $open, $EOffset, "424")
	EndIf
EndFunc   ;==>BeschreibeAdresse
Benhero92 is offline  
Old 05/22/2010, 22:54   #12
 
Chillex's Avatar
 
elite*gold: 15
Join Date: Apr 2010
Posts: 987
Received Thanks: 2,101
auch danke für die antwort nur das habe ich ja schon bereits gemacht.^^
leider wird die Adresse dadurch nicht gefreezt.
und ich weiß nicht wie ich das richtig anstellen soll.^^
Chillex is offline  
Old 05/22/2010, 23:03   #13
 
elite*gold: 0
Join Date: Nov 2009
Posts: 927
Received Thanks: 1,317
Quote:
Originally Posted by Chillex View Post
auch danke für die antwort nur das habe ich ja schon bereits gemacht.^^
leider wird die Adresse dadurch nicht gefreezt.
und ich weiß nicht wie ich das richtig anstellen soll.^^
PHP Code:
While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
        
Exit
EndSwitch

BeschreibeAdresse() 

WEnd








Func BeschreibeAdresse
()        
    If 
GUICtrlRead($Radio1) = $GUI_CHECKED THEN
        
Global $EOffset[3] = [00xA08 0x474]
     
_MemoryPointerWrite($pointer1,$open,$EOffset,"424")

   EndIf
Endfunc 
Probier's so
huberhans is offline  
Thanks
2 Users
Old 05/23/2010, 18:51   #14
 
Chillex's Avatar
 
elite*gold: 15
Join Date: Apr 2010
Posts: 987
Received Thanks: 2,101
asoo
okay danke ..so wird die funktion also immer wiederholt^^
Chillex is offline  
Old 05/23/2010, 20:28   #15
 
elite*gold: 0
Join Date: Nov 2009
Posts: 927
Received Thanks: 1,317
Quote:
Originally Posted by Chillex View Post
asoo
okay danke ..so wird die funktion also immer wiederholt^^
Richtig! Jede Funktion, die so in der Haupt-Schleife aufgerufen wird wird bei jedem Durchlauf derselben abgearbeitet. In den Funktionen einfach mit If eine Bedingung festlegen, die du dann per Button, Checkbox, Radio, TimerInit/TimerDiff oder auch über ausgelesene Values ansteuer kannst.

Gruß
huberhans is offline  
Thanks
2 Users
Reply


Similar Threads Similar Threads
Offsets/Pointer
04/14/2010 - World of Warcraft - 4 Replies
Huhu, hat wer die Offsets/Pointer für WoW 3.3.3a ? Wäre n1!
ECSRO Pointer / Offsets
06/16/2009 - SRO PServer Guides & Releases - 28 Replies
I'll release it here for all coders out there. Charname = A00340 Server name = A002C0 Max HP = A01624 Max MP = A01628 STR = A0162C INT = A0162E Dynamic things:
[Help] Pointer,Offsets,Etc.
05/29/2009 - Kal Online - 10 Replies
Heyjo, Aaalso... Ich hab mich vorher noch nie mit Artmoney befasst bzw. nur 1-2 mal für speedhack das wars aber auch schon. Mir geht es jetzt um den Pointer, Offsets kram. Wenn ich Pointer suchen möchte such ich erst mal die normale adresse...sagen wir jetzt von der X Coordinate in meinem Fall jetzt: 085EBDA8 jetzt mach ich nen rechtsklick drauf --> Mehr... --> Suche.. --> Pointer zu dieser Adresse suchen: 0 Ergebnisse Wenn ich Pointer ab Anfang des Speicherblocks suchen klicke, kriegt...
need help getting mob pointer and offsets
12/21/2008 - Silkroad Online - 1 Replies
well as the topic sais i wanna get the memory adresses to read mobdata like playerdata so far i found the adress for mobhp in the memory the adress changes with each mob so i've set a breakpoint in olly and got the offset 0x440 with that offset i got the pointer for that client u can c that here: http://silkroad-planet.de/Magic/mob_hp.jpg the mob was a movia(54hp) and the pointer was 0x9CE4E6C well now i'm able to get the data of that client for each mob i select...



All times are GMT +1. The time now is 17:19.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.