Mail.ruПочта0Мой Мир0ОдноклассникиВКонтактеИгры0ЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Доработка скрипта на Clickermann

Мануил Павлов Ученик (95), на голосовании 1 неделю назад
имеется код на Clickermann его нужно доработать. скрипт должен искать на странице картинку из списка и как найдет (любую) делать по ней правый клик и выходить из цикла , если не найдет переходить на следующюю страницу и искать там.скрипт работает картинки ищет по страницам переходит если не нашел картинку на этой , но проблема в том что после клтка он не выходит из цикла , а продолжает перебирать и искать все картинки из списка

 // Начальные координаты для перехода на первую страницу 
$page_start_x = 100 // Начальная координата X для первой страницы
$page_start_y = 200 // Координата Y для перехода на страницу

// Флаг для отслеживания, найдена ли картинка
$picture_found = 0

// Цикл по страницам (всего 8 страниц)
FOR($page = 1, $page <= 8)
// Если картинка уже найдена, выходим из цикла
IF ($picture_found == 1)
BREAK // Выходим из цикла
ELSE
LOG("Поиск на странице " + $page)

// Цикл по картинкам (от 001.bmp до 040.bmp)
FOR($count = 1, $count <= 40)
LOG("Поиск картинки " + STRCONCAT(STRCUT("00", 0, 3 - STRLEN($count)), $count, ".bmp"))

// Обновляем экран в заданной области
GETSCREEN (1020,530, 1400,760)
// Устанавливаем цветовой режим
COLORMODE(6, 1020,530, 1400,760)
// Поиск картинки с точностью 80%
IF_PICTURE_IN (1020,530, 1400,760, STRCONCAT(STRCUT("00", 0, 3 - STRLEN($count)), $count, ".bmp"), 80, 80)
LOG("Картинка найдена! Координаты: " + $_return1 + ", " + $_return2)
// Если картинка найдена, правый клик по её координатам + смещение (15,15)
RCLICK($_return1 + 15, $_return2 + 15)
// Устанавливаем флаг, что картинка найдена
$picture_found = 1
// Выходим из цикла по картинкам
BREAK
END_IF
END_CYC

// Если картинка не найдена, переход на следующую страницу
IF ($picture_found == 0)
// Координата X увеличивается на 30 для каждой следующей страницы
$page_current_x = $page_start_x + (($page - 1) * 30)
LOG("Переход на следующую страницу. Координаты: " + $page_current_x + ", " + $page_start_y)
LCLICK($page_current_x, $page_start_y)
WAITMS(500) // Ожидание для загрузки следующей страницы
END_IF
END_IF
END_CYC
Голосование за лучший ответ
Твой Профессор Гуру (2542) 1 месяц назад
Правильно. У тебя же флаг $picture_found устанавливается в 1, но внешний цикл по страницам FOR($page = 1, $page <= 8) не проверяет этот флаг сразу после завершения внутреннего цикла. Надеюсь, понял.
В общем, добавь проверку флага $picture_found сразу после завершения внутреннего цикла по картинкам. У тебя это будет вот так:
 // Начальные координаты для перехода на первую страницу  
$page_start_x = 100 // Начальная координата X для первой страницы
$page_start_y = 200 // Координата Y для перехода на страницу

// Флаг для отслеживания, найдена ли картинка
$picture_found = 0

// Цикл по страницам (всего 8 страниц)
FOR($page = 1, $page <= 8)
// Если картинка уже найдена, выходим из цикла
IF ($picture_found == 1)
BREAK // Выходим из цикла
ELSE
LOG("Поиск на странице " + $page)

// Цикл по картинкам (от 001.bmp до 040.bmp)
FOR($count = 1, $count <= 40)
LOG("Поиск картинки " + STRCONCAT(STRCUT("00", 0, 3 - STRLEN($count)), $count, ".bmp"))

// Обновляем экран в заданной области
GETSCREEN (1020,530, 1400,760)

// Устанавливаем цветовой режим
COLORMODE(6, 1020,530, 1400,760)

// Поиск картинки с точностью 80%
IF_PICTURE_IN (1020,530, 1400,760, STRCONCAT(STRCUT("00", 0, 3 - STRLEN($count)), $count, ".bmp"), 80, 80)
LOG("Картинка найдена! Координаты: " + $_return1 + ", " + $_return2)

// Если картинка найдена, правый клик по её координатам + смещение (15,15)
RCLICK($_return1 + 15, $_return2 + 15)

// Устанавливаем флаг, что картинка найдена
$picture_found = 1

// Выходим из цикла по картинкам
BREAK
END_IF
END_CYC

IF ($picture_found == 1)
BREAK
END_IF

// Если картинка не найдена, переход на следующую страницу
IF ($picture_found == 0)
// Координата X увеличивается на 30 для каждой следующей страницы
$page_current_x = $page_start_x + (($page - 1) * 30)
LOG("Переход на следующую страницу. Координаты: " + $page_current_x + ", " + $page_start_y)
LCLICK($page_current_x, $page_start_y)
WAITMS(500) // Ожидание для загрузки следующей страницы
END_IF
END_IF
END_CYC
Похожие вопросы