Проблема такая - имеется скрипт, который сам нажимает кнопки, если ХП или мана меньше указанных значений, но скрипт делает это раза в 2-3 медленней чем хотелось бы =(
Помогите решить проблему?
Заранее спасибо!
Помогите решить проблему?
Код:
#include <kernel.au3>
#include <GuiConstantsEx.au3>
#include <WinAPI.au3>
GuiCreate("Автожор", 180, 140)
$l1 = GUICtrlCreateLabel("Процесс: ", 10, 10, 100, 30)
$refresh = GUICtrlCreateButton("Обновить",110,10)
$l2 = GUICtrlCreateLabel("HP: ", 10, 40, 100, 25)
$input = GuiCtrlCreateInput("5000",10,60,60,25)
$Combo = GUICtrlCreateCombo("{F9}", 10, 85, 60, 30)
$input2 = GuiCtrlCreateInput("300",110,60,60,25)
$Combo2 = GUICtrlCreateCombo("{F8}", 110, 85, 60, 30)
$onoff = GUICtrlCreateCheckbox("Вкл",10,110);
GUICtrlCreateLabel("ver. 0.3 by ph1047", 85, 120, 100, 30)
Global $multptr = 0x82C99A
Global $mult = 0x0
Global $hpptr = 0x0
Global $hp = 0x0
Global $on = 0
Global $buf = 0
Global $pid = wingetprocess("FleeRO")
Global $hCombo = 0
If Not IsHWnd($Combo) Then $hCombo = GUICtrlGetHandle($Combo)
_SendMessage($hCombo, 0x000B)
_SendMessage($hCombo, 0x143, 0, "{F1}", 0, "wparam", "str")
_SendMessage($hCombo, 0x143, 0, "{F2}", 0, "wparam", "str")
_SendMessage($hCombo, 0x143, 0, "{F3}", 0, "wparam", "str")
_SendMessage($hCombo, 0x143, 0, "{F4}", 0, "wparam", "str")
_SendMessage($hCombo, 0x143, 0, "{F5}", 0, "wparam", "str")
_SendMessage($hCombo, 0x143, 0, "{F6}", 0, "wparam", "str")
_SendMessage($hCombo, 0x143, 0, "{F7}", 0, "wparam", "str")
_SendMessage($hCombo, 0x143, 0, "{F8}", 0, "wparam", "str")
_SendMessage($hCombo, 0x143, 0, "{F9}", 0, "wparam", "str")
_SendMessage($hCombo, 0x000B, 1)
If Not IsHWnd($Combo2) Then $hCombo = GUICtrlGetHandle($Combo2)
_SendMessage($hCombo, 0x000B)
_SendMessage($hCombo, 0x143, 0, "{F1}", 0, "wparam", "str")
_SendMessage($hCombo, 0x143, 0, "{F2}", 0, "wparam", "str")
_SendMessage($hCombo, 0x143, 0, "{F3}", 0, "wparam", "str")
_SendMessage($hCombo, 0x143, 0, "{F4}", 0, "wparam", "str")
_SendMessage($hCombo, 0x143, 0, "{F5}", 0, "wparam", "str")
_SendMessage($hCombo, 0x143, 0, "{F6}", 0, "wparam", "str")
_SendMessage($hCombo, 0x143, 0, "{F7}", 0, "wparam", "str")
_SendMessage($hCombo, 0x143, 0, "{F8}", 0, "wparam", "str")
_SendMessage($hCombo, 0x143, 0, "{F9}", 0, "wparam", "str")
_SendMessage($hCombo, 0x000B, 1)
If $pid == -1 Then
GUICtrlSetData($l1,"Процесс: не найден")
Else
GUICtrlSetData($l1,"Процесс: " & $pid)
EndIf
Global $h = _memopen($pid)
If ($h == 0x00000000) And ($pid > 0) Then
GUICtrlSetData($l1,"Процесс: " & $pid & "; Не удается OpenProcess()")
ElseIf ($pid > 0) Then
GUICtrlSetData($l1,"Процесс: " & $pid & "; Успешно открыт.")
$on = 1
EndIf
; GUI MESSAGE LOOP
GuiSetState()
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $refresh
$pid = wingetprocess("FleeRO")
If $pid == -1 Then
GUICtrlSetData($l1,"Процесс: не найден")
$on = 0
Else
GUICtrlSetData($l1,"Процесс: " & $pid)
EndIf
$h = _memopen($pid)
If ($h == 0x00000000) And ($pid > 0) Then
GUICtrlSetData($l1,"Процесс: " & $pid & "; Не удается OpenProcess()")
$on = 0
ElseIf ($pid > 0) Then
GUICtrlSetData($l1,"Процесс: " & $pid & "; Успешно открыт.")
$on = 1
EndIf
EndSelect
If $on == 1 Then
$mult = _MemReadDw($h, $multptr, "dword")
$hpptr = $mult*4 + 0x7BDD3E;
$hp = _MemReadDw($h, $hpptr, "int")
If $hp <> $buf Then
GUICtrlSetData($l2,"HP: " & $hp)
EndIf
$buf = $hp
EndIf
If WinActive("FleeRO") And ($on == 1) And (GUICtrlRead($onoff) == 1) Then
If $hp < Int(GUICtrlRead($input)) And $hp > Int(GUICtrlRead($input2)) Then
Send(GUICtrlRead($Combo))
EndIf
If $hp < Int(GUICtrlRead($input2)) Then
Send(GUICtrlRead($Combo2))
EndIf
EndIf
;Sleep(1)
WEnd
Заранее спасибо!