U won't found any tutorials about "how to make a s4 trainer / bot (in Autoit)",
but you'll find many other tutorials about "how to make a Autoit trainer / bot".
Was soll den immer der Mist mit "Starte den Hack vor dem Spiel" oder "Warte auf ..."?
ProcessExists() gibt die Prozess ID zurück. Wenn es den Prozess nicht gibt wird logischerweise 0 zurückgegeben. Ist der Wert über 0 existiert der Prozess. Ist er 0 braucht man auch nicht weiterarbeiten.
Nomad ist kein Idiot gewesen, er wusste, wie man "Return" und "SetError" benutzt. Folglich wird bei einem Fehlversuch den Prozess zu öffnen ein Fehler zurück gegeben. Diesen kann man mit @error abfragen. Ist kein Fehler aufgetreten gibt die Funktion ein gültiges Handle zurück, das man problemlos weiterverwenden kann, ohne dass die Anwendung abstürzt.
Die Prozess ID muss man nicht unbedingt überprüfen, das Handle sollte man aber schon überprüfen. Dafür bietet sich entweder eine simple If-Abfrage an, oder die Funktion IsHandle(). Ersteres würde ich vorziehen.
#RequireAdmin
#include <NomadMemory.au3>
GUICreate("Bla", 150, 35)
$C_Hack = GUICtrlCreateCheckbox("Blaahack", 5, 5, 85, 25)
$I_Value = GUICtrlCreateInput("123", 95, 7, 50, 21)
GUISetState()
$Base = 0x00400000
Dim $Offset[4] = [0, 123, 456, 789]
Do
If BitAND(GUICtrlRead($C_Hack), 1) Then
$ProcessId = ProcessExists("Blaaa.exe")
If $ProcessId > 0 Then
$Handle = _MemoryOpen($ProcessId)
If Not @error Then
$Value = GUICtrlRead($I_Value)
_MemoryPointerWrite($Base, $Handle, $Offset, $Value)
;eine Abfrage, ob sich etwas in der Inputbox befindet ist unnötig → (int)"" = 0
_MemoryClose($Handle)
EndIf
EndIf
EndIf
Sleep(25)
Until GUIGetMsg() == -3
Das Beispiel ist für eine direkte Kopie natürlich ungeeignet. Den Prozess immer zu öffnen und zu schließen ist auch nicht so performant. Das könnte man allerdings auch relativ einfach ändern.
Da ich nicht vorhabe den TE zu "helfen" und Applecode deutsch versteht habe ich auch in deutsch geschrieben.
Was soll den immer der Mist mit "Starte den Hack vor dem Spiel" oder "Warte auf ..."?
ProcessExists() gibt die Prozess ID zurück. Wenn es den Prozess nicht gibt wird logischerweise 0 zurückgegeben. Ist der Wert über 0 existiert der Prozess. Ist er 0 braucht man auch nicht weiterarbeiten.
Nomad ist kein Idiot gewesen, er wusste, wie man "Return" und "SetError" benutzt. Folglich wird bei einem Fehlversuch den Prozess zu öffnen ein Fehler zurück gegeben. Diesen kann man mit @error abfragen. Ist kein Fehler aufgetreten gibt die Funktion ein gültiges Handle zurück, das man problemlos weiterverwenden kann, ohne dass die Anwendung abstürzt.
Die Prozess ID muss man nicht unbedingt überprüfen, das Handle sollte man aber schon überprüfen. Dafür bietet sich entweder eine simple If-Abfrage an, oder die Funktion IsHandle(). Ersteres würde ich vorziehen.
#RequireAdmin
#include <NomadMemory.au3>
GUICreate("Bla", 150, 35)
$C_Hack = GUICtrlCreateCheckbox("Blaahack", 5, 5, 85, 25)
$I_Value = GUICtrlCreateInput("123", 95, 7, 50, 21)
GUISetState()
$Base = 0x00400000
Dim $Offset[4] = [0, 123, 456, 789]
Do
If BitAND(GUICtrlRead($C_Hack), 1) Then
$ProcessId = ProcessExists("Blaaa.exe")
If $ProcessId > 0 Then
$Handle = _MemoryOpen($ProcessId)
If Not @error Then
$Value = GUICtrlRead($I_Value)
_MemoryPointerWrite($Base, $Handle, $Offset, $Value)
;eine Abfrage, ob sich etwas in der Inputbox befindet ist unnötig → (int)"" = 0
_MemoryClose($Handle)
EndIf
EndIf
EndIf
Sleep(25)
Until GUIGetMsg() == -3
Das Beispiel ist für eine direkte Kopie natürlich ungeeignet. Den Prozess immer zu öffnen und zu schließen ist auch nicht so performant. Das könnte man allerdings auch relativ einfach ändern.
Da ich nicht vorhabe den TE zu "helfen" und Applecode deutsch versteht habe ich auch in deutsch geschrieben.
Viele Spiele besitzen Hackshields, und deren Schwachpunkt ist nunmal beim Starten des Spiels (vorallem wenn wir hier von einem XTrap Spiel wie S4 League redet ;>). Und ich frage eigentlich immer über die ProcessID ab, ob denn ein Prozess existiert oder nicht, da es sich bei mir so eingebürgert hat, aber es ist mal interessant zu sehen wie sich das auch noch anders lösen lässt.
Grundsätzlich unterscheidet sich in diesem Falle dein Source nicht sonderlich von meinem, Unterschied ist nur dass du eine Gui verwendest, Pointer einsetzt und das ganze in einer Do Schleife löst statt einem AdlibRegister ;o
How to make Trainer in C++ ? 01/16/2012 - C/C++ - 8 Replies Hi everyone I'm looking for a tutorial to teach me to create a Trainer in C + +, Thank you.
[ASK][HOW TO] Make Trainer 12/21/2011 - S4 League - 6 Replies “»Hello!«„
Can Any One Add Thread
How To Make Trainer Full Job+Video-Screen
“»Basic!«„
1.GodMod
InfiniteHP-SP-Ammo-Range]
2.SpeedWalk
How make a Trainer 09/15/2010 - AutoIt - 13 Replies Hello, learn to create a Trainer
#cs -------------------------------------------------- --------------------------
AutoIt Version: 3.3.6.1
Author: myName
Script Function:
Template AutoIt script.
can KD make a new trainer and bot? 08/04/2010 - Last Chaos - 2 Replies hello, sorry for my arrasment KD, but can you make a new trainer and bot for lc usa, last tipe of trainer and bot was fantastic, and that will be great if you make a new one, ty
Need That (HOW TO MAKE TRAINER) 12/04/2009 - S4 League - 5 Replies Please,how can i make a trainer,i can find how i can but i need a file of TRAINER MAKER KIT 1.5 and this need to be a new upload -.-