wäre praktisch zu wissen welches programm es ist. dann könnte jeder selber bisschen testen.
Controlsettext gäbs da auch noch, aber ich bezweifle das das funktioniert
wäre praktisch zu wissen welches programm es ist. dann könnte jeder selber bisschen testen.
Controlsettext gäbs da auch noch, aber ich bezweifle das das funktioniert
gut dass du teil 1 weggelassen hast. das ist nämlich der teil der ihm am meisten helfen würde ![]()
[Tut 1]
Hallo Leute!
Dies ist eine Tutorial-Serie, anfangend bei einfachem Werte-cheaten bis hin zum erstellen von Trainern.
Die folgende Teile werde ich nach und nach erstellen und hier posten.
Tutorial 1 - Grundlagen
Programme benötigt: Cheat Engine 5.4
1) Allgemeines
Alle Werte eines Spieles (Geld, Leben, Munition, ...), die wir gerne ändern würden sind in Speicheradressen abgelegt.
Im Grunde müssen diese Speicheradressen nur gefunden und mit unserem eigenen Wert überschrieben werden.
Man unterscheidet 2 verschiedene Arten von Speicheradressen:
Statische und DMA's (Dynamic Memory Allocation), also dynamische
Wenn ein Spiel einen Wert immer in die gleiche Speicheradresse schreibt dann spricht man von einer statischen Adresse, falls immer in eine andere von einer dynamischen.
Dynamische haben natürlich den Nachteil (für uns Cheater) das bei jedem Programmstart eine andere Speicheradresse mit dem von uns zu abändern gewünschten Wert belegt wird und wir nicht wissen welche...
Dies wird in einem späteren Tutorial wichtig wenn wir einen Trainer bauen wollen der aine dynamische Adresse finden und abändern soll.
Genug der Theorie, auf zur Praxis!
2) Speicheradresse finden und ändern
Als Spiel nehmen wir Minesweeper, bei dem wir uns einen neuen Zeitrecord ercheaten wollen!
Dieses Spiel sollte zumindest auf jedem Windows-Rechner vorhanden sein, falls nicht tut es jedes andere kleine Klick Spiel auch.
Wir wollen nun die Zeit bei Minesweeper einfrieren!
Startet Minesweeper
Startet Cheat Engine (CE)
Bei CE klickt auf den Knopf links oben und wählt den Prozess von Minesweeper aus. (Sollte winmine.exe heißen)
Der Counter von Minesweeper startet sobald man den ersten Klick macht (keine Bombe treffen bitte Confused )
Minimiert Minesweeper dann wenn er z.B. bei 5 sec ist (Pause für Minesweeper)
Stellt bei CE Exact Value und 4 bytes ein und gebt bei Value 5 (eure verbrauchten sekunden) ein und sucht danach (Klick auf first scan)
CE durchsucht nun alle von Minesweeper belegten Speicheradressen nach den Wert 5
Ihr solltet einige Treffer erhalten, um von diesen jetzt unsere Zeit zu finden lässt Minesweeper den Zeitwert ändern und z.B auf 10 sec weiterlaufen.
Wieder minimieren
10 eingeben und auf NEXT SCAN klicken.
Nun durchsucht CE nur mehr die vorher gefundenen Speicheradressen nach den Wert 10.
Ihr solltet jetzt nur mehr eine Speicheradresse übrig haben.
Falls nicht, Zeit nochmal steigen lassen und nochmal suchen bis nur mehr eine Speicheradresse übrig ist.
Diese befördert ihr mit einem Doppelklick in unsere Liste unten.
Ihr könnt hier z.B jetzt die Zeit ändern (Doppelklick in der Value-Spalte und neuen Wert eingeben) oder auch die Zeit einfrieren. (mit klick auf das Kästchen am Anfang der Spalte.
Jetzt steht einem neuen Zeitrecord nichts mehr im Wege....
4) Erklärung Suchfunktion
Value Types:
"1 byte" sucht nach Werten zwischen 0-255.
"2 bytes" sucht nach Werten zwischen 0-65535.
"4 bytes" sucht nach Werten zwischen 0-4294967295.
"8 bytes" sucht nach Werten zwischen 0-18446744073709551615.
"float" sucht nach Komma-Werten wie z.B. 5,4845
Scan Types:
"Exact Value" sucht nach Werten die exakt übereinstimmen sollen
"Bigger Than" sucht nach Werten die grösser sind als der Suchwert
"Smaller Than" ...die kleiner sind....
"Value Between" ... die zwischen dem wert x und y liegen
"Unknown Initial Value" wählt man aus wenn man den Wert nicht kennt...
Sucht man zB nach einer Lebensenergie aber man hat nur einen Balken im Spiel und kann nicht erkennen was der Wert ist, kann in der ersten Suche "Unknown Initial Value" auswählen. Nun zurück ins Spiel, etwas Leben verlieren und per next scan nach "Smaller Than" suchen. Dies wiederholt man so lange bis nur mehr ein Wert übrig ist.
Werte werden oft auch als Float abgespeichert. Oft ist dies der Fall bei zB Schildenergien eines Raumschiffes, Mana, Zeitmessungen, ...
In diesem Fall sucht man mit "Float" wobei wenn man zB nach 5 mit "Exact Value" sucht, alle werte gesucht werden die zwischen 5 und 5,9999999... liegen
Bei allen Spielen geht es also nach dem gleichen Prinzip:
Wert im Spiel merken, danach suchen, Wert im Spiel ändern, erneut danach suchen, solange bis nur mehr eine Adresse übrig ist.
Jedoch werdet ihr merken das diese Adressen oft bei neu-laden eines Levels oder bei Spielneustart nicht mehr gelten.
Auch können einige Werte mit den hier erklärten Methoden nicht gefunden werden
Mit diesen Problemen beschäftigt sich Tutorial 2 welches ich bald schreiben werde.
Bitte eröffnet für Fragen zu dem Tutorial eigene Threads, damit andere diese leichter finden!
lg, Phy
nicht dass ich wüsste. ich meine irgendwie unter umständen schon aber das ist doch sehr kompliziert.
verwende bei browsern doch lieber die ie.au3 oder die ff.au3
puuh dazu wäre mehr beschreibung nicht schlecht.
dateien hineinziehen klappt nicht im hintergrund. aber evtl kann man es anders ansteuern.
welches programm ist es denn. weißt du evtl wie die hineingezogene datei verarbeitet wird?
soviel?! wie hast du das geschafft... büdde gib mir mal n paar tipps
da weißt du was er seit gestern abend gemacht hat ![]()
nur gezockt ![]()
![]()
![]()
Mir würde es schon reichen, wenn ich mir Matrix-Like ein Kabel in den Nacken stecke, und so programmieren könnte.
*g* aber wenndann ganz stylisch nur mit nullen und einsen
01000100011000010111001100100000011101111110010001110010001000000110011101100101011010010110110000100001
damn danke ich hab gar nich dran gedacht dass man das ja in ID's umdenken muss... da haste natürlich recht ich dachte er springt da nur auf die variablen an xD
ne der compiler hat leider keine künstliche intellegenz. ![]()
wär schon geil, aber dann würden sich alle programme ja von selber schreiben ![]()
ohne mich jetzt groß mit deinem script zu beschäftigen.
du gehst anscheinend so vor:
1. Treeviewitem
1.1. Treeviewunteritem
2. Treeviewitem
2.1 Treeviewunteritem
3. Treeviewitem
3.1 Treeviewunteritem
von den id's sieht das dann zum Beispiel so aus
1. ID 5
1.1. ID 6
2. ID 7
2.1. ID 8
3. ID 9
3.1. ID 10
und wenn du schreibst 6 to 10, dann macht er natürlich 6,7,8 ,9 ,10
du muss also erst alle Treeviewitems erstellen und dann die unteritems dazu, dann hast du fortlaufende ID's
Aufwendigere Lösung:
OnEventModus, ich mag ihn sehr gerne, is aber wahrscheinlich bisschen arbeit das umzuschreiben
hatte vorhin noch etwas zeit, hab's mal weitergemacht anhand von Word. (dürfte vom handling her Visual Studio sehr ähnlich sein)
das ganze startet word und klickt auf das "Neues Dokument" icon direkt unter "Datei"
ShellExecute(@ProgramFilesDir & "\Microsoft Office\OFFICE11\WINWORD.EXE")
; kann sein dass der pfad bei dir etwas anders ist, insbesondere das OFFICE11
WinWait("Dokument1 - Microsoft Word")
; warten bis das fenster existiert; winwait ist oft besser als winwaitactive
Sleep(400)
; diese pause habe ich eingebaut da bei word anscheinend die MsoCommandBar nicht schnell genug geladen wird, und der controlclick sonst ins leere geht
; ist selten kommt aber vor
ControlClick("Dokument1 - Microsoft Word", "", "[CLASS:MsoCommandBar; INSTANCE:3]", "", 20, 10)
; die ersten beiden parameter sind wiedermal Title und Text
; die restlichen parameter bekommst du am einfachsten indem du das window info tool benutzt
; stelle es am besten unter Options auf Freeze und ziehe dann das fadenkreuz auf das control das du clicken möchtest
; parameter 3 steht unter Control advanced class
; parameter 4 ist die maustaste bei "" nimmt er die linke
; parameter 5 und 6 braucht man zu 90% nicht. hier aber wiedermal schon ![]()
; man gibt damit die position des icons innerhalb des controls an, siehe ControlClick Coords
ich schätze mal mit dem hier klickst du auf ein desktop icon um Visual Studio zu starten oder?
WinWait("Program Manager","")
If Not WinActive("Program Manager","") Then WinActivate("Program Manager","")
WinWaitActive("Program Manager","")
MouseMove(212,878)
MouseDown("left")
MouseUp("left")
das wäre sehr viel leichter mit:
[autoit]Shellexecute(@ProgramFilesDir & "\Visual Studio\studio.exe") ; <--der pfad is 100%ig falsch, dient nur als beispiel wie es aussehen könnte ![]()
; @ProgramFilesDir steht für den Programme-Ordner standardmäßig also für: C:\Programme
und um in visual studio buttons anzuklicken usw ist wie nuts schon gesagt hat controlclick und die anderen controlfunktionen das beste ![]()
Nunja muss ich dir wiedersprechen, hab das selber mal eine Monat lang aus spaß getestet und immerhin mit einem Gewinn von 150€ raus gekommen :).
ja kann sein. aber langfristig funktioniert es nicht. also wenn du dir schon relativ sicher bist dass es immer funktionieren wird und wenn du schon einiges gewonnen hast, genau dann verlierst du auf einmal alles.
und genau das ist das problem. wenn du was verlierst dann alles.
da muss ich dir sogar recht geben.
bots sind glaube ich echt nicht schlecht um autoit zu lernen. zumindest anfangs mit mousemove, send usw.
nur sprechen hier die forenregeln dagegen.
Such dir was das nicht gegen die Regeln verstößt dann helfen wir dir gerne ![]()
So standardprojekte wären zum beispiel automatische installationen
*g* das mit bot war ja auch spaß ![]()
und als ehemaliger Gamer bin ich die maus sehr gut so gewohnt wie sie ist. umstellen glaub ich ist bei mir eher kontraproduktiv ![]()
PS: Falls du auf youtube oder so videos gesehn hast die sagen "342 euro an einem wochenende" oder "4323 euro im monat"
also mit diesem 100% sicherem system geld zu gewinnen indem man immer auf rot oder schwarz setzt.
Das ganze is beschiss. Das system funktioniert auf dauer nicht.
Es ist wie es immer heißt: Die Bank gewinnt immer!
ich muss schnitzel toppen xD
na dann auf gehts, fehlen ja nur 2 sek ![]()
[ironie:on]
wenn du mich schlägst mach ich gleich nen thread auf und frag ob mir jemand nen bot schreibt
[ironie:off]
oder noch besser: melden wir das spiel in der esl an. mit ner schönen liga ![]()
etwas schwer, aber sehr schön umgesetzt.
16 sek mehr is nich drin ![]()
wow doch 18 ![]()
du suchst höchstwahrscheinlich guictrlsetstate
wie wärs mit bild in temp verzeichnis runterladen und einbinden.
sehr einfach und sauber.
Ungetestet, bin grade an nem pc ohne autoit.
dass es sowas nocht gibt....
traurig traurig ![]()
es ging erst nachdem ich es mit paint geöffnet und unter test.jpg gespeichert hab.
er hat mir angezeigt dass es eigentlich ein png ist...