Opt("PixelCoordMode", 0)
Opt("MouseCoordMode", 0)
Opt("MustDeclareVars", 1)
Dim $MyBotStatus, $WhoToKill
Func Kill($Case)
Select
Case $Case = "All"
SetKillStatus(1)
SaveResult($CurBelt, 0)
While 1
KillPreload()
Select
Case GetKillStatus() = 1
ToolTip("Ищу непись в белте. Белт №:"&$CurBelt,0,0)
SetKillStatus(NPCTest())
Case GetKillStatus() = 11
ToolTip("Беру непись на таргет. Белт №:"&$CurBelt,0,0)
SetKillStatus(TargetAll())
Case GetKillStatus() = 21
ToolTip("Проверяю есть ли иконка цели. Белт №:"&$CurBelt,0,0)
SetKillStatus(CheckIcon())
Case GetKillStatus() = 31
ToolTip("Дожидаюсь готовности к стрельбе. Белт №:"&$CurBelt,0,0)
SetKillStatus(PrepareToShot())
Case GetKillStatus() = 41
ToolTip("Запускаю оружие. Белт №:"&$CurBelt,0,0)
SetKillStatus(UseWeapon())
Case GetKillStatus() = 51
ToolTip("Дожидаюсь смерти неписи. Белт №:"&$CurBelt,0,0)
SetKillStatus(WaitKillEnd())
Case GetKillStatus() = 61
ToolTip("Дожидаюсь смерти неписи. Белт №:"&$CurBelt,0,0)
SetKillStatus(WaitKillEnd())
Case GetKillStatus() = 62
ToolTip("Проверяю есть ли иконка цели. Белт №:"&$CurBelt,0,0)
SetKillStatus(CheckIcon())
Case GetKillStatus() = 32
ToolTip("Иконки не обнаружено. Белт №:"&$CurBelt,0,0)
SetKillStatus(NPCTest())
Case GetKillStatus() = 42
ToolTip("Дожидаюсь готовности к стрельбе. Белт №:"&$CurBelt,0,0)
SetKillStatus(PrepareToShot())
Case GetKillStatus() = 12
ToolTip("В белте нету неписи. Белт №:"&$CurBelt,0,0)
Sleep(8000)
Send("^r")
Return 0
Case Else
MsgBox(0,"",GetKillStatus()&"-е условие не описано в распределительном цикле")
Exit
EndSelect
WEnd
Case $Case = "BS"
SetKillStatus("CheckResp")
While 1
KillPreload()
Select
Case GetKillStatus() = "CheckResp"
SetKillStatus(CheckBSResp())
Case GetKillStatus() = 1
ToolTip("Ищу непись в белте. Белт №:"&$CurBelt,0,0)
SetKillStatus(BSTest())
Case GetKillStatus() = 11
ToolTip("Беру непись на таргет. Белт №:"&$CurBelt,0,0)
SetKillStatus(TargetBS())
Case GetKillStatus() = 21
ToolTip("Проверяю есть ли иконка цели. Белт №:"&$CurBelt,0,0)
SetKillStatus(CheckIcon())
Case GetKillStatus() = 31
ToolTip("Дожидаюсь готовности к стрельбе. Белт №:"&$CurBelt,0,0)
SetKillStatus(PrepareToShot())
Case GetKillStatus() = 41
ToolTip("Запускаю оружие. Белт №:"&$CurBelt,0,0)
SetKillStatus(UseWeapon())
Case GetKillStatus() = 51
ToolTip("Дожидаюсь смерти неписи. Белт №:"&$CurBelt,0,0)
SetKillStatus(WaitKillEnd())
Case GetKillStatus() = 61
ToolTip("Дожидаюсь смерти неписи. Белт №:"&$CurBelt,0,0)
SetKillStatus(WaitKillEnd())
Case GetKillStatus() = 62
ToolTip("Проверяю есть ли иконка цели. Белт №:"&$CurBelt,0,0)
SetKillStatus(CheckIcon())
Case GetKillStatus() = 32
ToolTip("Иконки не обнаружено. Белт №:"&$CurBelt,0,0)
SetKillStatus(BSTest())
Case GetKillStatus() = 42
ToolTip("Дожидаюсь готовности к стрельбе. Белт №:"&$CurBelt,0,0)
SetKillStatus(PrepareToShot())
Case GetKillStatus() = 12
ToolTip("В белте нету кул БШ. Белт №:"&$CurBelt,0,0)
While 1
Local $ReloadOffset = CheckModule()
If $ReloadOffset[1][1] = 1 Then
ToolTip("Жду когда лаунчер выключится. Белт №:"&$CurBelt,0,0)
Sleep(500)
Else
ExitLoop
EndIf
WEnd
Send("^r")
Return 0
Case Else
MsgBox(0,"",GetKillStatus()&"-е условие не описано в распределительном цикле")
Exit
EndSelect
WEnd
EndSelect
EndFunc
Func SetKillStatus($status)
$MyBotStatus = $status
EndFunc
Func GetKillStatus()
Return ($MyBotStatus)
EndFunc
Func KillPreload()
If _WinGetLocalStatus() = 1 Then
Warp("POS")
Sleep(1000)
ToolTip("Палево",0,0)
While 1
Sleep(5000)
$sTestMsg = _WarpTest()
If $sTestMsg = 00 Or $sTestMsg = 01 Then ExitLoop
WEnd
While _WinGetLocalStatus() = 1
Sleep(10000)
WEnd
Warp("BACK")
While 1
Sleep(5000)
$sTestMsg = _WarpTest()
If $sTestMsg = 00 Or $sTestMsg = 01 Then ExitLoop
WEnd
EndIf
EndFunc
Func NPCTest()
PixelSearch(772, 189, 772, 189+150, 0xC61410, 5)
If @error Then Return 12
Return 11
EndFunc
Func BSTest()
$BSTest = _GetOverviewStatus()
If $BSTest[1] = 0 Then Return 12
Return 11
EndFunc
Func TargetAll()
$CellX1 = $Ov[0] - 4
$CellY1 = $Ov[1] + 52
$CellX2 = $CellX1 + 22
$CellY2 = $CellY1 + 17
For $i = 1 To 6 Step 1
Local $TargetAll = PixelSearch($CellX1 , $CellY1 , $CellX2, $CellY2, 0xC61410, 20)
If Not @error Then
MouseClick("left", $TargetAll[0], $TargetAll[1], 1, 10)
Sleep(1000)
Local $TestTarget = SIGetButtons()
If $TestTarget[5] = 1 And SIOp("Target", "Get Target Button Status") = 0 Then
Send("{CTRLDOWN}")
Sleep(Random(50, 100, 1))
MouseClick("left", Random($TargetAll[0], $TargetAll[0]+5, 1), Random($TargetAll[1], $TargetAll[1]+5, 1), 1, 10)
Send("{CTRLUP}")
ElseIf $TestTarget[3] = 0 And $TestTarget[4] = 0 And $TestTarget[5] = 0 And $TestTarget[6] = 0 Then
Warp("Belt", "Next")
While 1
ToolTip("В активном поиске. Белт №:"&$CurBelt,0,0)
Sleep(5000)
$sTestMsg = _WarpTest()
If $sTestMsg = 00 Or $sTestMsg = 01 Then ExitLoop
WEnd
EndIf
Else
ExitLoop
EndIf
$CellY1 = $CellY1 + 19
$CellY2 = $CellY2 + 19
If CheckIcon() = 31 Then ExitLoop
Next
Return 21
EndFunc
Func TargetBS()
EndFunc
Func CheckBSResp()
EndFunc
Func CheckIcon()
Local $Target = PixelSearch($1[1][0][1]+32, $1[1][0][2]+32, $1[1][0][1]+32, $1[1][0][2]+32, 0x000000)
If @error Then
Return 31
Else
Return 32
EndIf
EndFunc
Func WaitKillEnd()
Sleep(1000)
If SIOp("Target", "Get Target Button Status") = 1 Then
CheckModulesOnTarget()
If @error Then
If CheckReload() = 0 Then
Return 61
Else
Send("{F1}")
EndIf
EndIf
Return 61
Else
Return 62
EndIf
EndFunc
Func PrepareToShot()
Local $TestModule = CheckModule()
If $TestModule[1][1] = 0 And $TestModule[1][2] = 0 Then
Sleep(1000)
$TestModule = CheckModule()
If $TestModule[1][1] = 0 And $TestModule[1][2] = 0 Then
Return 41
EndIf
EndIf
Return 42
EndFunc
Func UseWeapon()
MouseClick("left", Random($1[1][0][1]+22, $1[1][0][1]+42, 1), Random($1[1][0][2]+22, $1[1][0][2]+42, 1), 1, 10)
Send("{F1}{F2}")
Return 51
EndFunc