Author Topic: Помогите разобраться! Последовательный анализ наличия пикселя + анализ картинки.  (Read 13747 times)

0 Members and 1 Guest are viewing this topic.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
помню что где поднимался этот вопрос а решение не помню
Вместо GOTO нужно сделать, чтобы условие цикла перестало быть верным. В данном случае, например, $index =100


aden

  • Оплот сообщества
  • ****
  • Posts: 363
    • View Profile
помню что где поднимался этот вопрос а решение не помню
Вместо GOTO нужно сделать, чтобы условие цикла перестало быть верным. В данном случае, например, $index =100

запомним костыль думал есть команда досрочного завершения цикла

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
запомним костыль думал есть команда досрочного завершения цикла
Просили давно continue и break с параметром.


GetHigh

  • Зашел в гости
  • *
  • Posts: 19
    • View Profile
Тэйкинг фор! Нид асистэнс!
Не могу заставить работать цикличность выполнения поиска по пикселю в определенной области.
Т.е. все что после end_if должно воспроизводится, если найден пиксель. Если не найден, ищем следующую цель. Затем снова ищем пиксель в заданной области.

Че только не пробовал...пол дня потратил

Code: (clickermann) [Select]
GETSCREEN
COLORMODE(6)
WAIT(4)
IF_PIXEL_IN(88,171, 93,201, 16777215)  //Нашел пиксель в области ресурсов - это хорошо
WAIT(10)
ELSE
LCLICK(1278,212)      // Выбираем другого противника
WAIT(2)
GETSCREEN
COLORMODE(6)
END_IF                   
WAIT(1)
SOUND("DeskBell.wav")
WAIT(1)
WHEELDOWN       // начало нападения
WAITMS(300)
WHEELDOWN
WAITMS(300)
WHEELDOWN
WAITMS(300)
WHEELDOWN
WAITMS(300)
WHEELDOWN
WAITMS(300)
WHEELDOWN
WAITMS(300)
WHEELDOWN
WAITMS(300)
WHEELDOWN
WAITMS(300)
KEYPRESS(#3)
WAIT(1)
LDOWN(1314,336)
LUP(1308,497)
LDOWN(1314,336)
LUP(1308,497)
WAIT(5)
KEYPRESS(#3)
LDOWN(685,108)
WAIT(45)
LUP(685,108)     // конец нападения
WAIT(60)
LCLICK(1273,138)  // сдаться
wait(4)
LCLICK(628,499)  // вы действительно хотите сдаться
wait(3)
LCLICK(995,243)  // домой
Продолжение кода
Code: (clickermann) [Select]
WAIT(1)
WHEELDOWN
WAITMS(300)
WHEELDOWN
WAITMS(300)
WHEELDOWN
WAITMS(300)
WHEELDOWN
WAITMS(300)
WHEELDOWN
WAITMS(300)
WHEELDOWN
WAITMS(300)
WHEELDOWN
WAITMS(300)
WHEELDOWN
WAITMS(300)
WHEELDOWN
WAITMS(300)
LDOWN(758,274)
LUP(745,560)
WAIT(2)
LCLICK(719,280)  // 1     собираем ресурсы
WAITMS(300)
LCLICK(607,315)  // 2     собираем ресурсы
WAITMS(300)               
LCLICK(569,341)  // 3     собираем ресурсы
WAITMS(300)
LCLICK(521,379)  // 4     собираем ресурсы
WAITMS(300)
LCLICK(496,547)  // 5     собираем ресурсы
WAITMS(300)
LCLICK(531,578)  // 6     собираем ресурсы
WAITMS(300)
LCLICK(573,605)  // 7     собираем ресурсы
WAITMS(300)
LCLICK(608,633)  // 8     собираем ресурсы
WAITMS(300)
LCLICK(774,619)  // 9     собираем ресурсы
WAITMS(300)
LCLICK(807,590)  // 10    собираем ресурсы
WAITMS(300)
LCLICK(897,526)  // 11    собираем ресурсы
WAITMS(300)
LCLICK(908,423)  // 12    собираем ресурсы
WAITMS(2000)
LCLICK(759,315)  // Выбор казармы 1
WAITMS(2000)
LCLICK(891,710)  // создание войск
WAITMS(1000)
LDOWN(535,329)  // метатели
WAITMS(7500)
LUP(535,329)    // отпускаем кнопку
WAITMS(1000)
LCLICK(1020,239)  // Выход из казармы 1
WAITMS(1000)
LCLICK(796,343)  // Выбор казармы 2
WAITMS(1000)
LCLICK(834,703)  // создание войск
WAITMS(1000)
LDOWN(535,329)  // метатели
WAITMS(10000)
LUP(535,329)    // отпускаем кнопку
WAITMS(1000)
LCLICK(1020,239)  // Выход из казармы 2
WAITMS(1000)
LCLICK(833,373)  // Выбор казармы 3
WAITMS(1000)
LCLICK(891,710)  // создание войск
WAITMS(1000)
LDOWN(535,329)  // метатели
WAITMS(7500)
LUP(535,329)    // отпускаем кнопку
WAITMS(1000)
LCLICK(1020,239)  // Выход из казармы 3
WAITMS(1000)
LCLICK(874,396)  // Выбор казармы 4
WAITMS(1000)
LCLICK(891,710)  // создание войск
WAITMS(1000)
LDOWN(535,329)  // метатели
WAITMS(7500)
LUP(535,329)    // отпускаем кнопку
LUP(535,329)
WAITMS(1000)
LCLICK(1020,239)  // Выход из казармы 4
WAIT(1)
LCLICK(936,271)  // Снятие ошибки двойного клика
WAIT(500)  //wait    1320  (ожидаем пока посторятся войска)
LCLICK(62,701)  // Атака
WAITMS(2000)
LCLICK(814,523)  // начать атаку
WAITMS(4000)

aden

  • Оплот сообщества
  • ****
  • Posts: 363
    • View Profile
ну он выполняет
Code: (clickermann) [Select]
ELSE
LCLICK(1278,212)      // Выбираем другого противника
WAIT(2)
GETSCREEN
COLORMODE(6)
END_IF
и идет дальше
если тебе надо при выполнении этого куска снова проверить
Code: (clickermann) [Select]
IF_PIXEL_IN(88,171, 93,201, 16777215)  //Нашел пиксель в области ресурсов - это хорошосделай goto примерно так

Code: (clickermann) [Select]
GETSCREEN
COLORMODE(6)
WAIT(4)
search_pxl: // возврат после выбора другого противника
IF_PIXEL_IN(88,171, 93,201, 16777215)  //Нашел пиксель в области ресурсов - это хорошо
WAIT(10)
ELSE
LCLICK(1278,212)      // Выбираем другого противника
WAIT(2)
GETSCREEN
COLORMODE(6)
goto(search_pxl)    // снова проверяем ресурсы
END_IF                 

GetHigh

  • Зашел в гости
  • *
  • Posts: 19
    • View Profile
ну он выполняет
Code: (clickermann) [Select]
ELSE
LCLICK(1278,212)      // Выбираем другого противника
WAIT(2)
GETSCREEN
COLORMODE(6)
END_IF
и идет дальше
если тебе надо при выполнении этого куска снова проверить
Code: (clickermann) [Select]
IF_PIXEL_IN(88,171, 93,201, 16777215)  //Нашел пиксель в области ресурсов - это хорошосделай goto примерно так

Code: (clickermann) [Select]
GETSCREEN
COLORMODE(6)
WAIT(4)
search_pxl: // возврат после выбора другого противника
IF_PIXEL_IN(88,171, 93,201, 16777215)  //Нашел пиксель в области ресурсов - это хорошо
WAIT(10)
ELSE
LCLICK(1278,212)      // Выбираем другого противника
WAIT(2)
GETSCREEN
COLORMODE(6)
goto(search_pxl)    // снова проверяем ресурсы
END_IF                 

 :o Работает! Спасибо)

aden

  • Оплот сообщества
  • ****
  • Posts: 363
    • View Profile
прежде чем братся писать скрипт вы блин осмыслите что он должен делать составьте блок-схему или алгоритм работы.
надо же осознавать что вы там строчите