При использовании массива выдаёт ошибку:
Line 76
$fail[$1Fail][$2Fail] = $a
^ERROR
Error: Array variable has incorrect nuber of subscripts or subscript dimension range exceeded.
Вот фрагмент кода (на который ругается), 76 строчка это:
Вот весь код:
Line 76
$fail[$1Fail][$2Fail] = $a
^ERROR
Error: Array variable has incorrect nuber of subscripts or subscript dimension range exceeded.
Вот фрагмент кода (на который ругается), 76 строчка это:
Код:
$fail[$1Fail][$2Fail] = $a
Код:
If Not @error Then
$2Fail = 0
$fail[$1Fail][$2Fail] = $a
$2Fail = 1
$fail[$1Fail][$2Fail] = $b
$1Fail = $1Fail + 1
EndIf
Вот весь код:
Код:
Run("C:\Users\acer\AppData\Local\Mail.Ru\DwarChrome\dwarclient") ;запуск клиента
Sleep(9000)
MouseClick("primary", 667, 477) ;отмена загрузки обновлений
Sleep (10000)
MouseClick("primary", 485, 355) ;клик по полю с ником
Send('{ENTER}') ;Нажатие Enter, заход в игру
Sleep (5000)
MouseClick("primary", 597, 137) ;открытие окна сбора ресурсов
Sleep(2000)
Send('{F7}') ;закрытие чата
Sleep(2000)
Send('{F11}') ;выход в полноэкранный режим
Sleep(1000)
Dim $x, $y, $x15, $y15, $x20, $y20, $coord, $d, $15coord, $res, $zan, $a, $b, $time, $time1, $time2, $fail[100][2],$1Fail, $2Fail, $FatalError
;*************************************************************************************
;*************************|НЕОБХОДИМО ЗАДАТЬ ПЕРЕМЕННЫЕ: |****************************
;*************************************************************************************
$res=0xD0DFDB ;Один из пикселей ресурса который нужен (необходимо выбрать уникальный по цвету пиксель,
;чтобы пиксель такого цвета был только один в локации (иначе просто будет тыкать в этот пиксель без смысла)
$time = 18 ;Время в секундах, которе занимает сбор ресурса (засекается с таймером)
;*************************************************************************************
;*************************| Дальше всё автоматическое |*******************************
;*************************************************************************************
$1Fail = 0 ; ]
; }Отвечают за координаты X,Y забракованного пикселя
$2Fail = 0 ; ]
$FatalError = 0 ;Отвечает за отсутствие неверных координат
$d = 2 ;данная переменная отвечает за окно сбора ресурсов (их 4)
$time1 = $time * 1000 + 1000 ;Минимальная задержка при начале сбора ресурса
$time2 = $time * 1000 + 3000 ;Максимальная задержка при начале сбора ресурса
While (PixelGetColor(654,368)<>0xED1C24)
$coord = PixelSearch ( 301, 153, 1048, 734, $res) ;Поиск пикселя заданного ресурса
If Not @error Then
$a = $coord[0]
$b = $coord[1]
;Задаётся квадрат, в котором проводится проверка чтобы ресурс не был занят
$x15 = $a - 25
$y15 = $b - 25
$x20 = $a + 25
$y20 = $b + 25
$15coord = PixelSearch ( $x15, $y15, $x20, $y20, 0xFFD500,15) ;Поиск вокруг найденной точки пикселей жёлтого цвета,
;то есть проверка чтобы ресурс не был занят
If @error Then
For $1Fail=0 To 99
For $2Fail = 0 To 1
If (($a=$fail[$1Fail][$2Fail]) Or ($b=$fail[$1Fail][$2Fail])) Then
$FatalError = $FatalError + 1
EndIf
Next
Next
Proverka ()
If $FatalError = 0 Then
;Жмем на $res
Sleep(100)
MouseClick("left", $a, $b,2)
Sleep(1000)
Else
Search()
;Ожидание сбора ресурса
Sleep(Random($time1, $time2))
Proverka ()
EndIf
EndIf
If Not @error Then
$2Fail = 0
$fail[$1Fail][$2Fail] = $a
$2Fail = 1
$fail[$1Fail][$2Fail] = $b
$1Fail = $1Fail + 1
EndIf
;Смена квадрата для сбора ресурсов, если ресурс не обнаружен
While @error
Search()
WEnd
;Ошибочный скрипт, при получении занозы - теоретически идёт ожидание 3 часа, пока сама пройдёт,
;потом заход в рюкзак, одевание инструмента, выход в окно сбора ресурсов "Охоты"
If PixelGetColor(71, 180) = 0x459105 Then
While PixelGetColor(71, 180) = 0x459105
Sleep(5000)
WEnd
EndIf
If PixelGetColor(786, 432) = 0xFE9359 Then
MouseClick("primary", 679, 465)
Sleep(100)
MouseClick("primary", 481, 25)
Sleep(100)
MouseClick("primary", 720, 130)
Sleep(100)
MouseClick("primary", 479, 213)
Sleep(100)
MouseClick("primary", 596, 36)
Sleep(100)
EndIf
;Конец скрипта для занозы
;При нападении - ошибочный скрипт (удары вообще не работают в том виде в котором должны, удары проходят из-за зацикленного
;нажатия в определённую точку, чтобы можно было воевать с помощью "Горячих клавиш", кроме того эти самые "Горячие клавиши"
;обязательно нужно включить в "Анкете" персонажа.
If PixelGetColor(716, 305)=0xF8DEA4 Then ;Проверка что напали
Sleep(3000)
MouseClick("primary", 482, 319) ;То самое нажатие в определённую точку, которое интерпретируется как удар
While (PixelGetColor(516, 385)<>((0x639500) Or (0xA90000))) ; Выполнение до тех пор, пока не будет окна "Победа" или "Поражние"
Sleep(500)
Send('{right}') ;Удар "вправо" с помощью "Горячих клавиш"
Sleep(Random(2000,3500))
Send('{right}') ;Удар "вправо" с помощью "Горячих клавиш"
Sleep(Random(2000,3500))
Send('{right}') ;Удар "вправо" с помощью "Горячих клавиш"
Sleep(Random(2000,3500))
Send('{down}') ;Удар "вниз" с помощью "Горячих клавиш"
Sleep(Random(2000,3500))
WEnd
Sleep(1000)
;Теоретически - завершение боя, опять же не работает - должно в случа если ты умер воскрешаться на Центральной Площади,
;если жив - возвращаться в режим "Охоты".
If PixelGetColor(516, 385) = 0xA90000 Then
MouseClick("primary", 537, 134)
Sleep(Random(500,1000))
MouseClick("primary", 679, 243)
Sleep(Random(500,1000))
MouseClick("primary", 678, 261)
Sleep(Random(500,1000))
MouseClick("primary", 682, 496)
Sleep(Random(500,1000))
MouseClick("primary", 1137, 156)
Sleep(Random(500,1000))
MouseClick("primary", 596, 35)
EndIf
If PixelGetColor(516, 481) = 0x639500 Then
MouseClick("primary", 594, 33)
EndIf
;Конец завершения боя
EndIf
EndIf
WEnd
Func Proverka ()
;Проверка чтобы не выскакивали ошибки
If PixelGetColor(756, 432) = 0xFF0000 Then
MouseClick("primary", 671, 465)
Sleep(100)
EndIf
If PixelGetColor(725, 250) = 0xB70000 Then
MouseClick("primary", 683, 497)
Sleep(100)
EndIf
If PixelGetColor(729, 434) = 0xFF0000 Then
MouseClick("primary", 675, 462)
Sleep(100)
EndIf
If PixelGetColor(774, 433) = 0xFF0000 Then
MouseClick("primary", 674, 464)
Sleep(100)
EndIf
EndFunc
Func Obnulenie ()
$FatalError = 0
For $1Fail=0 To 99
For $2Fail = 0 To 1
$fail[$1Fail][$2Fail]=0
Next
Next
EndFunc
Func Search()
If $d=1 Then
MouseClick("primary", 689, 108)
Sleep(Random(500, 750))
Obnulenie ()
EndIf
If $d=2 Then
MouseClick("primary", 696, 129)
Sleep(Random(500, 750))
Obnulenie ()
EndIf
If $d=3 Then
MouseClick("primary", 632, 130)
Sleep(Random(500, 750))
Obnulenie ()
EndIf
If $d=4 Then
MouseClick("primary", 635, 107)
Sleep(Random(1500, 2500))
Obnulenie ()
EndIf
if $d < 4 then
$d = $d + 1
else
$d = 1
Proverka ()
EndIf
EndFunc