Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: Пытливый on September 10, 2017, 10:27:27 PM

Title: Что не так в коде?
Post by: Пытливый on September 10, 2017, 10:27:27 PM
Code: [Select]
ArrPush($AItem, "1")
ArrPush($AItem, "2")
ArrPush($AItem, "3")

LogClear
GetScreen
for ($n=0, $n<3)
   if_picture_in(452, 317, 1451, 986, StrConcat("\Pictures\",$AItem[$n],".bmp"))
      ArrPush($AItems, $AItem[$n])
      ArrPush($AItems, $_return1)
      ArrPush($AItems, $_return2)
      print($AItems[$n*3+0]," ",$AItems[$n*3+1]," ",$AItems[$n*3+2])
   end_if
end_cyc   
Пока писал это код, брал размеры для if_picture_in() всего экрана, что подтормаживало, но работало нормально.
Задал меньше координаты и стала вываливаться ошибка интерпретации на print(...)
В чем засада?
Title: Re: Что не так в коде?
Post by: Vint on September 11, 2017, 09:19:32 AM
Обращаешься к несуществующим элементам массива.
Сама логика порочна. Дописываешь в массив только при нахождении, а вывод принтом жёстко по $n. $n ведь бежит вперёд.

Если "\Pictures\0.bmp" или "\Pictures\1.bmp" не найдёт, а следующую найдёт - индексы в
($AItems[$n*3+0]," ",$AItems[$n*3+1]," ",$AItems[$n*3+2])
будет вне массива.
Title: Re: Что не так в коде?
Post by: Пытливый on September 11, 2017, 08:19:36 PM
Плин. Ну конечно-же... такую глупую ошибку давненько не совершал.
Спасибо.