1
Общие вопросы / Re: Не находит изображение, IF_PICTURE_IN, SCANPICTURE
« on: April 26, 2018, 04:06:07 PM »
Спасибо большое, буду знать, не знаю почему потупил и не заметил свою ошибку. Хорошего дня.
Добавлена тема оформления "Clickermann" для кода с подсветкой синтаксиса. Выбирается из выпадающего списка "Код" (рядом с "цвет", "размер" и "шрифт") в режиме редактирования поста. Либо просто BB-тегом "code=clickermann"
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
GETSCREEN
COLORMODE(5)
IF_PICTURE_IN (536,323,1082,737,"inimaaa.bmp",-1,70)
print("нашёл:",$_return1, $_return2)
ELSE
print("не нашёл")
END_IF
STRSEPARATE("first,second,third,fourth,fith,sixth",",",$ph)
GETSCREEN
COLORMODE(6)
FOR($a1=0,$a1<6)
print("test")
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax,STRCONCAT($ph[$a1],".bmp"), -1, 70)
print("test2")
$ARR_NUM = 0
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
print("test3")
$X = $ARR_SCAN [$ARR_NUM]
INC($ARR_NUM,1)
$Y = $ARR_SCAN [$ARR_NUM]
INC($ARR_NUM,1)
MOVE($X+20, $Y+50)
WAITMS(150)
END_CYC
UNDEFINE($ARR_SCAN)
END_CYC
HALT
не корректное утверждение, наиболее вероятно, что " распознание цвета" вы решили определять по воспроизведению звукового файла, а связи между ними нет ни какой.
проблемы могут быть следующие:
1. не воспроизводится звуковой файл.
2. не верно указан цвет
3. не совпадают координаты проверки ( важны не только максимальные, но и минимальные) Возможно масштаб вашего рабочего стола не 100%
Vintсказал. Хорошего дня.
Расходимся, ты ищешь не тот цвет.
Берёшь его в COLORMODE(1), а ищешь по умолчанию в (0).
Может случайно нажал. Под окном лупы проставляется режим.
GETSCREEN
IF_PIXEL_IN(1430,135,1875,204,10088711)
SOUND("win.wav")
END_IF
Прыгать на метку по гото из цикла категорически запрещено.Поставил в цикл весь код, иногда всё таки нажимает на те же координаты. Не знаю почему.Прошу еще раз посмотреть.
Можно было бы поправить твой скрипт, но лучше взять готовый. Вот тема с идентичной задачей http://crapware.aidf.org/forum/index.php?topic=3535.0
А вот отредактированный вариант для тебя:Code: (clickermann) [Select]STRSEPARATE ("700,500,850,1050,1222,1400", ",", $arr) //массив из чисел
$n = 4 //указать число выполняемых действий
FOR($a=0,$a<$n) // повторяем $n раз
print($a)
$i = rnd(0,ARRSIZE($arr)-1) //рандомный элемент массива.
LCLICK(int($arr[$i]),630)
print("Нажал ",int($arr[$i]))
$arr[$i] = $arr[ARRSIZE($arr)-1] //удаляем использованный элемент
$del = ARRPOP($arr)
WAITMS(300)
END_CYC
HALT // выход
Прыгать на метку по гото из цикла категорически запрещено.
Можно было бы поправить твой скрипт, но лучше взять готовый. Вот тема с идентичной задачей http://crapware.aidf.org/forum/index.php?topic=3535.0
А вот отредактированный вариант для тебя:Code: (clickermann) [Select]STRSEPARATE ("700,500,850,1050,1222,1400", ",", $arr) //массив из чисел
$n = 4 //указать число выполняемых действий
FOR($a=0,$a<$n) // повторяем $n раз
print($a)
$i = rnd(0,ARRSIZE($arr)-1) //рандомный элемент массива.
LCLICK(int($arr[$i]),630)
print("Нажал ",int($arr[$i]))
$arr[$i] = $arr[ARRSIZE($arr)-1] //удаляем использованный элемент
$del = ARRPOP($arr)
WAITMS(300)
END_CYC
HALT // выход
$curent[0]=0
$curent[1]=0
$curent[2]=0
$curent[3]=0
$a=0
FOR($a,$a<4)
LOGWRITE ($a)
skip:
$ran = RNDFROM(700,500,850,1050,1222,1400)
LOGWRITE("Получил"+$ran)
FOR($i=0,$i<4)
IF($curent[$i]=$ran)
LOGWRITE("Совпадение"+$ran)
GOTO(skip)
END_IF
END_CYC
$curent[$a]=$ran
LCLICK($ran,630)
LOGWRITE("Нажал"+$ran)
WAITMS(300)
END_CYC
WAITMS(100)
21:43:11 0
21:43:11 Получил+850
21:43:11 Нажал+850
21:43:11 1
21:43:11 Получил+850
21:43:11 Совпадение+850
21:43:11 Получил+1050
21:43:11 Нажал+1050
21:43:12 Нажал+1050
21:43:12 3
21:43:12 Получил+500
21:43:12 Нажал+500
21:43:11 0
21:43:11 Получил+850
21:43:11 Нажал+850
21:43:11 1
21:43:11 Получил+850
21:43:11 Совпадение+850
21:43:11 Получил+1050
21:43:11 Нажал+1050
2
Получил+"рандом"
Нажал+"рандом"
21:43:12 3
21:43:12 Получил+500
21:43:12 Нажал+500