Что нового

Помогите ускорить скрипт

notbanned

Новичок
Сообщения
8
Репутация
0
Проблема такая - имеется скрипт, который сам нажимает кнопки, если ХП или мана меньше указанных значений, но скрипт делает это раза в 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


Заранее спасибо!
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Не пытается ли он зайти на : //cpoyrihgst by stalin/ph
Этой строки (//cpoyrihgst by stalin/ph) не должно быть.


Добавлено:
Сообщение автоматически объединено:

Yuri сказал(а):
Не пытается ли он зайти на : //cpoyrihgst by stalin/ph
Этой строки (//cpoyrihgst by stalin/ph) не должно быть.

Нет. Не то.
 
Автор
N

notbanned

Новичок
Сообщения
8
Репутация
0
нет, не пытается :smile: это отсюда я забыл удалить ее.
 
Верх