If WinExists(@ScriptName) Then
MsgBox(0, "Ошибка", "Бот уже запущен")
Exit
EndIf
AutoItWinSetTitle(@ScriptName)
Local $dr = ObjCreate("Scripting.FileSystemObject")
$dr = Hex($dr.getdrive($dr.getdrivename(@ScriptFullPath)).serialnumber)
$reg = 0
If $dr = "AC533D44" Then $reg = 1
If $dr = "42853E12" Then $reg = 1
If $dr = "4E3EF483" Then $reg = 1
If $dr = "3F401388" Then $reg = 1
If $dr = "3EC878A9" Then $reg = 1
If $dr = "2C190ВСА" Then $reg = 1
If $dr = "3ED9F5FF" Then $reg = 1
If $dr = "9453DA3F" Then $reg = 1
If $dr = "2A5E11F0" Then $reg = 1
If $dr = "406F46F8" Then $reg = 1
If $dr = "1A1FF660" Then $reg = 1
If $dr = "EC8F691E" Then $reg = 1
If $dr = "CEB79478" Then $reg = 1
If $dr = "3E077031" Then $reg = 1
If $dr = "888EF7A1" Then $reg = 1
If $dr = "12088498" Then $reg = 1
If $dr = "F456BE0F" Then $reg = 1
If $dr = "4C90F0EF" Then $reg = 1
If $dr = "063B3BDD" Then $reg = 1
If $dr = "DA916A40" Then $reg = 1
If $dr = "AC8685E9" Then $reg = 1
If $dr = "6C1FD681" Then $reg = 1
If $dr = "A0DDF6B1" Then $reg = 1
If $dr = "94862DB0" Then $reg = 1
If $dr = "A6ADE785" Then $reg = 1
If $dr = "D634C167" Then $reg = 1
If $dr = "80E8B00D" Then $reg = 1
If $dr = "4466389C" Then $reg = 1
If $dr = "D2FA4F4C" Then $reg = 1
If $dr = "BA45186C" Then $reg = 1
If $dr = "1C5B2321" Then $reg = 1
If $dr = "0A6D0404" Then $reg = 1
If $dr = "BCFBE848" Then $reg = 1
If $dr = "42875F86" Then $reg = 1
If $reg = 0 Then
MsgBox(0, "Error", "Нет привязки к этому устройству")
Exit
EndIf
$ssource = InetRead("http://time.jp-net.ru/")
If @error OR NOT $ssource Then Exit
$ssource = BinaryToString($ssource)
$data = StringRegExp($ssource, "(\d+-\d+-\d+)", 3)
$splitdata = StringSplit($data[0], "-")
$sinfo = $splitdata[1] & $splitdata[3] & $splitdata[2]
If $sinfo > 20160700 Then Exit
HotKeySet("{ESC}", "_Exit")
Global Const $process_all_access = 2035711
$gui_show = 16
$gui_hide = 32
$gui_event_close = -3
_menu()
$b4 = (0 * ($b4 = 1) + 10 * ($b4 <> 1))
While 1
koord(16058137, 2537163219, 1, -11, 53, 53, 23, 23)
If $fnd > 0 Then
koord(13602107, 3712306694, 3, 1, 45, 47, 9, 9)
koord(10047023, 731260972, 2, 0, 52, 49, 9, 10)
koord(8861214, 4124124374, 2, 1, 46, 46, 9, 10)
If $fnd > 0 Then _reboot()
If $b3 = 0 Then $b3 = 1
EndIf
koord(2628352, 2228684923, 1, -1, 12, 12, 5, 19)
If $fnd > 0 Then koord(15080733, 1676085180, 1, 2, 2, 25, 13, 12)
If $fnd > 0 Then koord(15080733, 1676085180, 1, 1, 2, 25, 13, 12)
koord(12815750, 7212751, 1, -1, 33, 40, 8, 6)
If $fnd > 0 Then koord(15080733, 1676085180, 1, 2, 2, 25, 13, 12)
If $fnd > 0 Then koord(15080733, 1676085180, 1, 1, 2, 25, 13, 12)
koord(9920558, 1997540301, 1, -1, 17, 30, 5, 4)
If $fnd = 0 Then
koord(10590288, 2850819477, 1, -1, 18, 19, 19, 20)
If $fnd > 0 Then koord(11892744, 3810659777, 1, 1, 25, 25, 18, 20)
EndIf
koord(4599563, 1073153115, 1, -1, 57, 57, 16, 16)
If $s1 = "боссы" AND $fnd > 0 Then
$tmp = 1
Else
If $s1 = "боссы" Then koord(6709075, 3342535352, 1, 1, 55, 60, 15, 18)
If $fnd > 0 Then Sleep(1000)
EndIf
koord(3482633, 1826163023, 1, -1, 56, 56, 16, 13)
If $s1 = "авиабоссы" AND $fnd > 0 Then
$tmp = 1
Else
If $s1 = "авиабоссы" Then koord(7631212, 3182497284, 1, 1, 56, 56, 15, 14)
If $fnd > 0 Then Sleep(1000)
EndIf
If $tmp = 1 Then
If $s2 = 1 Then koord(5254166, 1687422582, 1, -1, 86, 10, 10, 80)
If $s2 = 2 Then koord(4800825, 1821050736, 1, -1, 85, 12, 80, 11)
If $s2 = 3 Then koord(11251882, 4216787422, 1, -1, 11, 86, 11, 82)
If $s2 = 4 Then koord(8080958, 2148010217, 1, -1, 13, 84, 81, 11)
If $s2 = 5 Then koord(11969932, 4214624670, 1, -1, 85, 11, 13, 80)
If $s2 = 6 Then koord(13415001, 4026011854, 1, -1, 85, 12, 82, 12)
$tmp = $tmp + $fnd
If $tmp = 1 Then
If $s2 = 1 Then koord(6634786, 1854867235, 1, 1, 88, 10, 15, 79)
If $s2 = 2 Then koord(5327934, 2111965148, 1, 1, 11, 86, 81, 12)
If $s2 = 3 Then koord(3619387, 1476527678, 1, 1, 78, 18, 85, 7)
If $s2 = 4 Then koord(10378051, 2813332447, 1, 1, 10, 88, 15, 79)
If $s2 = 5 Then koord(11442815, 3722317753, 1, 1, 84, 13, 83, 11)
If $s2 = 6 Then koord(15124336, 4059893895, 1, 1, 86, 11, 12, 81)
EndIf
EndIf
koord(4493076, 2108033218, 1, -1, 10, 11, 6, 8)
If $fnd > 0 Then
If $b3 = 1 Then koord(4493076, 2108033218, 1, 1, 10, 11, 6, 8)
If $fnd > 0 AND $b3 = 1 Then $tmp = 0
koord(10047023, 731260972, 2, 1, 52, 49, 9, 10)
If $fnd > 0 Then $b3 = 0
EndIf
If $b3 = 1 Then koord(16164418, 4227732138, 1, -1, 25, 24, 28, 28)
If $b3 = 1 AND $fnd > 0 Then koord(15655650, 4077457906, 1, 1, 68, 66, 15, 19)
If $tmp = 2 Then
If $s3 = 1 Then koord(15777628, 211358300, 1, 1, 10, 140, 65, 10)
If $s3 = 2 Then koord(1528704, 1847134214, 1, 1, 10, 140, 65, 10)
If $s3 = 3 Then koord(15025699, 2582579924, 1, 1, -500, 530, 65, 10)
If $s3 = 4 Then koord(8523521, 1323238734, 1, 1, -500, 530, 65, 10)
$tmp = 0
EndIf
koord(15655650, 4077457906, 1, -1, 68, 66, 15, 19)
If $fnd > 0 Then
If $b2 = 1 Then koord(8281392, 2602240795, 1, 1, 31, 32, 39, 17)
If $b1 = 1 Then koord(12873018, 3887205989, 1, 1, 14, 13, 13, 14)
If $b2 = 1 Then koord(15191371, 4018409360, 1, -1, 30, 31, 29, 26)
If $b1 = 1 Then koord(11371624, 3457748395, 1, -1, 12, 12, 12, 11)
If $fnd > 0 Then
koord(15655650, 4077457906, 1, 1, 68, 66, 15, 19)
koord(15906885, 3619236415, 2, 1, 33, 42, 9, 10)
If $fnd > 0 Then koord(14981417, 3592823743, 2, 1, 33, 42, 9, 10)
EndIf
EndIf
koord(6714228, 2623998651, 1, -1, 18, 19, 17, 17)
If $fnd > 0 Then
koord(10100512, 1950615473, 1, 1, 23, 24, 24, 23)
If $fnd > 0 Then _processreducememory(@AutoItPID)
koord(11695138, 3213102463, 1, 1, 8, 19, 18, 9)
If $fnd > 0 Then koord(10244395, 195635284, 2, 1, 32, 31, 10, 10)
EndIf
koord(3353129, 953287637, 1, -1, 11, 30, 23, 9)
If $fnd > 0 Then
koord(16703500, 4151644478, 1, 1, 0, 35, 20, 15)
koord(16703241, 4132966688, 1, 1, 0, 35, 20, 15)
koord(16703756, 4246868288, 1, 1, 35, 0, 15, 20)
EndIf
koord(2196229, 1417938398, 1, -1, 71, 69, 19, 18)
If $fnd = 0 Then koord(2300956, 656605856, 1, -1, 9, 27, 24, 10)
If $fnd > 0 Then
koord(4141086, 2071332594, 1, 1, 10, 3, 9, 3)
If $fnd > 0 Then koord(2196229, 1417938398, 1, 0, 71, 69, 19, 18)
koord(4073227, 812778333, 1, -1, 6, 6, 6, 6)
If $fnd > 0 Then koord(15080733, 1676085180, 1, 1, 2, 25, 13, 12)
EndIf
Sleep(10 + $b4 * 50)
WEnd
Func _text($id)
$text1 = "unknown|" & $id & "| | | | | |"
If $id = 11 Then $text1 = "Ганс|Репутация:Киев (танк)|2.000 / 1.600|Понизить 100 монет|СУТ для понижения: 5|Награда за топ: Т-27|Опыт роте: 5"
If $id = 12 Then $text1 = "Клаус|Репутация:Киев (танк)|5.000 / 1.600|Понизить 110 монет|СУТ для понижения: 10|Награда за топ: Т-27|Опыт роте: 10"
If $id = 13 Then $text1 = "Вальтер|Репутация:Киев|16.000/1.600|Понизить 120 монет|СУТ для понижения:20|Награда за топ: Т-38|Опыт роте: 15"
If $id = 14 Then $text1 = "Ромель|Репутация:Одесса|24.000/1.600|Понизить 130 монет|СУТ для понижения:20|Награда за топ: Т-38|Опыт роте: 20"
If $id = 21 Then $text1 = "Гудериан|Репутация:Одесса|160.000/16.000|Понизить 140 монет|СУТ для понижения:40|Награда за топ: Т-40|Опыт роте: 30"
If $id = 22 Then $text1 = "Фердинанд|Репутация:Одесса|320.000/16.000|Понизить 150 монет|СУТ для понижения:60|Награда за топ: Т-40|Опыт роте: 40"
If $id = 23 Then $text1 = "Карл|Репутация:Одесса|800.000/16.000|Понизить 160 монет|СУТ для понижения:80|Награда за топ: Т-18|Опыт роте: 50"
If $id = 24 Then $text1 = "Фридрих|Репутация:Москва|1.600.000/16.000|Понизить 170 монет|СУТ для понижения:100|Награда за топ: Т-18|Опыт роте: 60"
If $id = 31 Then $text1 = "Кребс|Репутация:Москва|5.000.000/40.000|Понизить 180 монет|СУТ для понижения:130|Награда за топ: Т-26|Опыт роте: 100"
If $id = 32 Then $text1 = "Борман|Репутация:Москва|10.000.000/40.000|Понизить 190 монет|СУТ для понижения:150|Награда за топ: Т-26М|Опыт роте: 200"
If $id = 33 Then $text1 = "Гюнтер|Репутация:Воронеж|50.000.000/40.000|Понизить 200 монет|СУТ для понижения:180|Награда за топ: БТ-2|Опыт роте: 300"
If $id = 34 Then $text1 = "Геринг|Репутация:Воронеж|100.000.000/40.000|Понизить 210 монет|СУТ для понижения:210|Награда за топ: Т-28|Опыт роте: 400"
If $id = 38 Then $text1 = "Гюнтер героический|Репутация:Воронеж|50.000.000|Понизить нельзя|СУТ для понижения: НЕТ|Награда за топ: СУ-5|Опыт роте: 2500"
If $id = 39 Then $text1 = "Геринг героический|Репутация:Воронеж|100.000.000|Понизить нельзя|СУТ для понижения: НЕТ|Награда за топ: АТ-1|Опыт роте: 5000"
If $id = 41 Then $text1 = "Манштейн|Репутация:Тамань|500.000.000/80.000|Понизить 220 монет|СУТ для понижения:250|Награда за топ: Т-35|Опыт роте: 500"
If $id = 42 Then $text1 = "Кейтель|Репутация:Тамань|1.000.000.000/80.000|Понизить 230 монет|СУТ для понижения:290|Награда за топ: КВ|Опыт роте: 600"
If $id = 43 Then $text1 = "Геббельс|Репутация:Сталинград|5.000.000.000/80.000|Понизить 240 монет|СУТ для понижения:340|Награда за топ: КВ-2|Опыт роте: 700"
If $id = 44 Then $text1 = "Гиммлер|Репутация:Сталинград|10.000.000.000/80.000|Понизить 250 монет|СУТ для понижения:450|Награда за топ: Т-100|Опыт роте: 800"
If $id = 46 Then $text1 = "Манштейн героический|Репутация:Тамань|500.000.000|Понизить нельзя|СУТ для понижения: НЕТ|Награда за топ: СУ-122|Опыт роте: 10000"
If $id = 47 Then $text1 = "Кейтель героический|Репутация:Тамань|1.000.000.000|Понизить нельзя|СУТ для понижения: НЕТ|Награда за топ: СУ-76|Опыт роте: 20000"
If $id = 51 Then $text1 = "Вильгельм|Репутация:Ржев|10.000.000.000/100.000.000|Понизить 250 монет|СУТ для понижения:620|Награда за топ: Тигр|Опыт роте: 5000"
If $id = 52 Then $text1 = "Теодор|Репутация:Ржев|10.000.000.000/1.000.000.000|Понизить 500 монет|СУТ для понижения:650|Награда за топ: Т-34-76|Опыт роте: 20000"
If $id = 53 Then $text1 = "Бенедикт|Репутация:Ржев|10.000.000.000/5.000.000.000|Понизить 5000 монет|СУТ для понижения:1200|Награда за топ: ИС-2|Опыт роте: 100000"
If $id = 54 Then $text1 = "Хельга|Репутация:Ржев/Сталинград|12.000.000.000/7.000.000.000|Понизить 10000 монет|СУТ для понижения:1300|Награда за топ: ARL-44|Опыт роте: 140000"
If $id = 61 Then $text1 = "Ямато|Репутация:Ржев/Сталинград|12.000.000.000/9.000.000.000|Понизить 15000 монет|СУТ для понижения:1500|Награда за топ: СУ-122-44|Опыт роте: 180000"
If $id = 62 Then $text1 = "Ламберт|Репутация:Ржев/Мурманск|20.000.000.000/15.000.000.000|Понизить 20000 монет|СУТ для понижения: 2000|Награда за топ: Жнец|Опыт роте: 220000"
If $id = 63 Then $text1 = "???|???|???|???|???|???|???"
If $id = 64 Then $text1 = "???|???|???|???|???|???|???"
If $id = 111 Then $text1 = "Эрих|Репутация:Киев|100.000.000/1.000.000|Понизить 250 монет|СУТ для понижения:300|Награда за топ: Миг-9|Опыт роте: 1000"
If $id = 112 Then $text1 = "Хельмут|Репутация:Киев|100.000.000/10.000.000|Понизить 250 монет|СУТ для понижения:350|Награда за топ: Ла-5|Опыт роте: 2000"
If $id = 113 Then $text1 = "Руттер|Репутация:Киев|500.000.000/50.000.000|Понизить 250 монет|СУТ для понижения:400|Награда за топ: Як-4|Опыт роте: 3000"
If $id = 114 Then $text1 = "Пауль|Репутация:Киев|1.000.000.000/100.000.000|Понизить 250 монет|СУТ для понижения:450|Награда за топ: А-73а|Опыт роте: 4000"
If $id = 121 Then $text1 = "Левиафан|Репутация:Киев|50.000.000.000/40.000.000.000|Понизить 250 монет|СУТ для понижения:2500|Награда за топ: Валькирия|Опыт роте: 40000"
If $id = 122 Then $text1 = "???|???|???|???|???|???|???"
If $id = 123 Then $text1 = "???|???|???|???|???|???|???"
If $id = 124 Then $text1 = "???|???|???|???|???|???|???"
Global $t = StringSplit($text1, "|")
EndFunc
Func koord($color, $hash, $zona, $cl, $sl, $sr, $su, $sd)
If $b4 <> 0 Then Sleep($b4 * 10)
Global $xx[25], $yy[25], $ok1
$i = 0
$x = 0
$y = 0
$x1 = @DesktopWidth - 1
$y1 = @DesktopHeight - 1
Global $ok = 0, $fnd = 0
$line = 0
While 1
$acoord = PixelSearch($x, $y, $x1, $y1, $color)
If NOT @error AND $x < $x1 Then
$ok = $ok + 1
$xx[$ok] = $acoord[0]
$yy[$ok] = $acoord[1]
$pixsum = Int(PixelChecksum($xx[$ok] - $zona, $yy[$ok] - $zona, $xx[$ok] + $zona, $yy[$ok] + $zona))
If $pixsum = $hash Then
$fnd = $fnd + 1
If $cl = $fnd Then MouseClick("left", $xx[$ok] + Random(-$sl, $sr), $yy[$ok] + Random(-$su, $sd), 1, $b4)
If $cl = $fnd Then Sleep(100 + $b4 * 50)
If $cl = 0 Then MouseMove($xx[$ok] + Random(-$sl, $sr), $yy[$ok] + Random(-$su, $sd), $b4)
If $cl = -1 Then $ok1 = $ok
Sleep(100)
EndIf
$x = $acoord[0] + 1
$y = $acoord[1]
$line = 1
$y1 = $y
If $ok > 23 Then
$ok = 0
ExitLoop
EndIf
Else
If $line = 1 AND $y < @DesktopHeight - 1 Then
$line = 0
$y1 = @DesktopHeight - 1
$x = 0
$y = $y + 1
Else
ExitLoop
EndIf
EndIf
WEnd
EndFunc
Func _menu()
ToolTip("")
Global $ipause = 0
HotKeySet("{PAUSE}")
HotKeySet("{F10}")
$hgui = GUICreate("Настройки", 320, 200)
GUICtrlCreateLabel("", 5, 163, 310, 1, 5)
GUICtrlCreateLabel("", 139, 5, 1, 155, 5)
GUICtrlCreateLabel("Боссы:", 10, 14, 50)
Local $save = GUICtrlCreateButton("Старт", 115, 170, 85, 25)
Local $combo1 = GUICtrlCreateCombo("Боссы", 50, 10, 85, 0, 3)
GUICtrlSetData($combo1, "Авиабоссы")
GUICtrlCreateLabel("Глава:", 10, 44, 50)
Local $combo2 = GUICtrlCreateCombo("1", 50, 40, 35, 0, 3)
GUICtrlSetData($combo2, "2|3|4|5|6")
GUICtrlCreateLabel("Босс:", 10, 74, 50)
Local $combo3 = GUICtrlCreateCombo("1", 50, 70, 35, 0, 3)
GUICtrlSetData($combo3, "2|3|4")
Local $box1 = GUICtrlCreateCheckbox("Ослабить", 10, 95)
Local $box2 = GUICtrlCreateCheckbox("Героический", 10, 115)
Local $box3 = GUICtrlCreateCheckbox("Ночные", 10, 135)
Local $box4 = GUICtrlCreateCheckbox("Турбо", 10, 170)
GUICtrlSetState($box3, 1)
GUISetState(@SW_SHOW, $hgui)
$sw = 1
While 1
If $sw > 0 Then
If (GUICtrlRead($combo2) = 3 AND GUICtrlRead($combo3) > 2) OR (GUICtrlRead($combo2) = 4 AND GUICtrlRead($combo3) < 3) Then
GUICtrlSetState($box2, $gui_show)
If GUICtrlRead($box2) = 1 Then GUICtrlSetState($box1, 4)
If GUICtrlRead($box2) = 4 Then GUICtrlSetState($box1, $gui_show)
If GUICtrlRead($box2) = 1 Then GUICtrlSetState($box1, $gui_hide)
Else
GUICtrlSetState($box2, 4)
GUICtrlSetState($box2, $gui_hide)
GUICtrlSetState($box1, $gui_show)
EndIf
$sw = 0
$id = (GUICtrlRead($combo1) = "авиабоссы") * 100 + GUICtrlRead($combo2) * 10 + GUICtrlRead($combo3) + (GUICtrlRead($box2) = 1) * 5
_text($id)
GUICtrlCreateLabel($t[2], 145, 30, 170, 20, 1, 1)
GUICtrlCreateLabel($t[3], 145, 50, 170, 20, 1, 1)
GUICtrlCreateLabel($t[4], 145, 70, 170, 20, 1, 1)
GUICtrlCreateLabel($t[5], 145, 90, 170, 20, 1, 1)
GUICtrlCreateLabel($t[6], 145, 110, 170, 20, 1, 1)
GUICtrlCreateLabel($t[7], 145, 130, 170, 20, 1, 1)
GUICtrlCreateLabel($t[1], 145, 10, 170, 20, 1, 1)
EndIf
Switch GUIGetMsg()
Case $gui_event_close, $gui_event_close
Exit
Case $gui_event_close, $save
ExitLoop
Case $gui_event_close, $combo2
$sw = 1
Case $gui_event_close, $box2
$sw = 1
Case $gui_event_close, $combo2
$sw = 1
Case $gui_event_close, $combo3
$sw = 1
Case $gui_event_close, $combo1
If GUICtrlRead($combo1) = "авиабоссы" Then
GUICtrlSetData($combo2, "")
GUICtrlSetData($combo2, "1|2", "1")
$sw = 1
EndIf
If GUICtrlRead($combo1) = "боссы" Then
GUICtrlSetData($combo2, "")
GUICtrlSetData($combo2, "1|2|3|4|5|6", "1")
$sw = 1
EndIf
EndSwitch
WEnd
Global $s1 = GUICtrlRead($combo1)
Global $s2 = GUICtrlRead($combo2)
Global $s3 = GUICtrlRead($combo3)
Global $b1 = GUICtrlRead($box1)
Global $b2 = GUICtrlRead($box2)
Global $b3 = GUICtrlRead($box3)
Global $b4 = GUICtrlRead($box4)
GUIDelete($hgui)
HotKeySet("{F10}", "_Menu")
HotKeySet("{PAUSE}", "_Pause")
Global $tmp = -1
EndFunc
Func _exit()
Exit
EndFunc
Func _pause()
$ipause = NOT $ipause
While $ipause
ToolTip("Пауза")
Sleep(100)
WEnd
Global $tmp = 0, $fnd = 0
ToolTip("")
EndFunc
Func _reboot()
While 1
Sleep(10000)
koord(11500307, 1939474842, 1, 1, 8, 8, 30, -20)
If $fnd = 0 Then ExitLoop
Send("{f5}")
WEnd
EndFunc
Func _processreducememory($ipid)
Local $iprocexists = ProcessExists($ipid)
Local $hopenproc, $aemptyworkset_ret
If NOT $iprocexists Then Return SetError(1, 0, 0)
If IsString($ipid) Then $ipid = $iprocexists
If $ipid = -1 Then
$aemptyworkset_ret = DllCall("Psapi.dll", "int", "EmptyWorkingSet", "long", -1)
Else
$hopenproc = DllCall("Kernel32.dll", "int", "OpenProcess", "int", $process_all_access, "int", False, "int", $ipid)
$aemptyworkset_ret = DllCall("Psapi.dll", "int", "EmptyWorkingSet", "hwnd", $hopenproc[0])
DllCall("Kernel32.dll", "int", "CloseHandle", "int", $hopenproc[0])
EndIf
If NOT IsArray($aemptyworkset_ret) Then Return SetError(2, 0, 0)
Return $aemptyworkset_ret[0]
EndFunc