Nefakt
Новичок
- Сообщения
- 74
- Репутация
- 3
Всем привет.
Есть код
Работает нормально, но при выборе функции в CheckBox`е выполняет только функцию start() если она находиться в верхней части кода, а если поставить star() в нижнюю как в данный момент в коде который я выложил, то код будет выполнять любой CheckBox кроме неё. Проблема в том что start() основная функция а параметры которые находятся в checkBox`ах дополнительные.
Они по координатам проверяют ХП и если пиксель меняется то юзает бинт или аптеку.
Или если выбрано несколько checkbox`ов они выполняются но функция start() в действия не вступает.
И если как то можно сократить код от предложений не откажусь. Заранее спасибо.
Есть код
Код:
#include <ImageSearch.au3>
#include <GUIConstantsEx.au3>
HotKeySet("{F1}", "Start")
HotKeySet("{F2}", "Exitt")
$fYes = False
Global $X=0
Global $Y=0
$Form1 = GUICreate("Бот", 174, 116, 192, 124)
$Checkbox1 = GUICtrlCreateCheckbox("Бинты", 8, 8, 73, 33)
$Checkbox2 = GUICtrlCreateCheckbox("Аптечки", 8, 40, 65, 25)
$Checkbox3 = GUICtrlCreateCheckbox("Гранаты", 8, 64, 65, 25)
$Checkbox4 = GUICtrlCreateCheckbox("Чинить оружие", 8, 88, 57, 25)
$Button1 = GUICtrlCreateButton("Начать", 88, 32, 73, 33)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then
$fYes = True
bint()
EndIf
If GUICtrlRead($Checkbox2) = $GUI_CHECKED Then
$fYes = True
apteka()
EndIf
If GUICtrlRead($Checkbox3) = $GUI_CHECKED Then
$fYes = True
gren()
EndIf
If GUICtrlRead($Checkbox4) = $GUI_CHECKED Then
$fYes = True
weapons()
EndIf
start()
If Not $fYes Then
MsgBox(16, 'Error', 'Вы ничего не выбрали')
EndIf
EndSwitch
WEnd
Func bint() ; Использовать бинты
While 1
$var = PixelGetColor(91, 84) ; цвет пикселя на данный момент времени
$cvet =0x434B43 ;цвет, который нужен мне
if $var =$cvet Then
; MsgBox(0,"","Пиксель найден!")
Sleep(1000)
Send("{4}")
Sleep(1000)
EndIf
Sleep(1000)
WEnd
EndFunc
Func apteka() ; Использовать аптеки
While 1
$var = PixelGetColor(91, 84) ; цвет пикселя на данный момент времени
$cvet =0x434B43 ;цвет, который нужен мне
if $var =$cvet Then
; MsgBox(0,"","Пиксель найден!")
Sleep(1000)
Send("{5}")
EndIf
Sleep(1000)
WEnd
EndFunc
Func gren() ; Использовать гранаты
While 1
$Search = start()
If $Search = 1 Then
MouseClick('left', $X, $Y, 1)
Sleep (10000)
EndIf
WEnd
EndFunc
Func Weapons() ; Чинить оружие
While 1
$Search = _ImageSearch('img/Smart.bmp', 0, $X, $Y, 0)
If $Search = 1 Then
MouseClick('left', $X, $Y, 1)
EndIf
WEnd
EndFunc
Func Start() ;Старт
$Color1 = 0x981510
$Dip_Col = 1
While 1
$Search = _ImageSearch('img/Smart.bmp', 0, $X, $Y, 0)
If $Search = 1 Then
MouseClick('left', $X, $Y, 1, 1)
EndIf
Sleep(1000)
$Search = _ImageSearch('img/Lupoglaz.bmp', 0, $X, $Y, 0)
If $Search = 1 Then
MouseClick('left', $X, $Y, 1)
EndIf
Sleep(1000)
$Rezult1 = PixelSearch( 1, 2, 1920, 1080, $Color1, $Dip_Col) ; ищет пиксель
If Not @error Then
MouseClick("left", $Rezult1[0], $Rezult1[1], 10, 1)
EndIf
Sleep(1000)
$Search = _ImageSearch('img/846516.bmp', 0, $X, $Y, 0)
If $Search = 1 Then
MouseClick('left', $X, $Y, 1)
EndIf
WEnd
EndFunc
While 1
sleep(100)
WEnd
Func Exitt() ; Выход F2
Exit
EndFunc
Они по координатам проверяют ХП и если пиксель меняется то юзает бинт или аптеку.
Или если выбрано несколько checkbox`ов они выполняются но функция start() в действия не вступает.
И если как то можно сократить код от предложений не откажусь. Заранее спасибо.