so ich hab einen neuen bot programmmiert (Spiel archlord, is aber eig egal) und das problem ist, dass controlsend() meistens nicht funktioniert, ganz selten aber iwie dann doch. Der Rest des Codes funktioniert soweit(HWND, keys, auch winsettitle) Außerdem funktioniert controlsend() noch, wenn man es als kontrollfunktion direkt nach der variablendeklaration ausführt. Hier mal der Code, vllt hat jemand ne Idee
PHP Code:
#RequireAdmin
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_UseX64=n
#AutoIt3Wrapper_Add_Constants=n
#AutoIt3Wrapper_Run_Tidy=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
Opt("WinTitleMatchMode", 3)
HotKeySet("{F5}", "_attach")
HotKeySet("{F6}", "_start")
HotKeySet("{F7}", "_pause")
HotKeySet("{F8}", "_exit")
Dim $inidatei
Dim $Dll = DllOpen("ACEGGMemReader.dll")
Dim $pause = True
Dim $HWND
Dim $PID
Dim $process
Dim $targethp
Dim $skills[9][4]; 9skills mit 1.key u. 2. cooldown 3.timerstop 4.duration
Dim $title = "botting"
Dim $attached = False
Dim $result
Dim $i
While 1
If Not $pause Then
_buffcheck()
_attack()
Else ; Or wait
Sleep(1000)
ControlSend("Archlord", "", "", "{F1}")
EndIf
WEnd
Func _attach()
If Not $attached Then
$HWND = WinGetHandle("[Active]")
$result = DllCall($Dll, "DWORD", "ACEGetPIDFromHWND", "DWORD", $HWND)
$PID = String($result[0])
$result = DllCall($Dll, "DWORD", "ACEOpenProcess", "DWORD", $PID)
$process = String($result[0])
_loadIni()
$attached = True
EndIf
EndFunc ;==>_attach
Func _start()
WinSetTitle($HWND, "", $title)
$pause = False
EndFunc ;==>_start
Func _attack()
ControlSend($HWND, "", "", "{TAB}")
Sleep(100)
ControlSend($HWND, "", "", "{3}")
_gettargethp()
While $targethp > 0
_gettargethp()
Sleep(100)
WEnd
EndFunc ;==>_attack
Func _gettargethp()
Dim $BaseAdr = "92DF18"
Dim $Path = "CA0,5C,24,74,72C"
$result = DllCall($Dll, "int", "ACEReadIntFromPointer", "DWORD", $process, "str", $BaseAdr, "str", $Path)
$targethp = String($result[0])
EndFunc ;==>_gettargethp
Func _buffcheck()
For $i = 0 To 8 Step 1
if ($skills[$i][3] = 0 Or $skills[$i][3] > $skills[$i][1]) And $skills[$i][1] <> 0 Then
ControlSend($HWND, "", "", $skills[$i][0])
Sleep(3500)
$skills[$i][2] = TimerInit()
EndIf
$skills[$i][3] = TimerDiff($skills[$i][2]) / 1000
Next
EndFunc ;==>_buffcheck
Func _pause()
$pause = True
WinSetTitle($HWND, "", "Archlord")
EndFunc ;==>_pause
Func _exit()
Exit
EndFunc ;==>_exit
Func _loadIni()
$inidatei = FileOpenDialog("choose ini datei", @ScriptDir, "(*.ini)", 1)
$skills[0][0] = IniRead($inidatei, "skills", "key1", 0)
$skills[0][1] = IniRead($inidatei, "skills", "cooldown1", 0)
$skills[1][0] = IniRead($inidatei, "skills", "key2", 0)
$skills[1][1] = IniRead($inidatei, "skills", "cooldown2", 0)
$skills[2][0] = IniRead($inidatei, "skills", "key3", 0)
$skills[2][1] = IniRead($inidatei, "skills", "cooldown3", 0)
$skills[3][0] = IniRead($inidatei, "skills", "key4", 0)
$skills[3][1] = IniRead($inidatei, "skills", "cooldown4", 0)
$skills[4][0] = IniRead($inidatei, "skills", "key5", 0)
$skills[4][1] = IniRead($inidatei, "skills", "cooldown5", 0)
$skills[5][0] = IniRead($inidatei, "skills", "key6", 0)
$skills[5][1] = IniRead($inidatei, "skills", "cooldown6", 0)
$skills[6][0] = IniRead($inidatei, "skills", "key7", 0)
$skills[6][1] = IniRead($inidatei, "skills", "cooldown7", 0)
$skills[7][0] = IniRead($inidatei, "skills", "key8", 0)
$skills[7][1] = IniRead($inidatei, "skills", "cooldown8", 0)
$skills[8][0] = IniRead($inidatei, "skills", "key9", 0)
$skills[8][1] = IniRead($inidatei, "skills", "cooldown9", 0)
EndFunc ;==>_loadIni