Author Topic: Ребята помогите скрипт составить.  (Read 2109 times)

0 Members and 1 Guest are viewing this topic.

Zimon

  • Зашел в гости
  • *
  • Posts: 17
    • View Profile
Ребята помогите скрипт составить.
« on: September 02, 2017, 10:25:56 PM »
Помогите написать, так замудренно у меня не получается.


Суть такова, есть 5 кнопок старт в разных координатах, напротив одной из них появляются звезды.

код должен работать так...

Первый этап:
Если одна из звед появилась напротив кнопки s1.bmp, то нажимать на s1.bmp и перейти ко второму этапу.
Если одна из звед появилась напротив кнопки s2.bmp, то нажимать на s2.bmp и перейти ко второму этапу.
Если одна из звед появилась напротив кнопки s3.bmp, то нажимать на s3.bmp и перейти ко второму этапу.
Если одна из звед появилась напротив кнопки s4.bmp, то нажимать на s4.bmp и перейти ко второму этапу.
Если одна из звед появилась напротив кнопки s5.bmp, то нажимать на s5.bmp и перейти ко второму этапу.



Второй этап:
Есть кнопки LEFT.bmp и RIGHT.bmp, вот под которой одна из звезд появилась, на ту и нажимать, а после на кнопку krug.bmp


Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Ребята помогите скрипт составить.
« Reply #1 on: September 02, 2017, 11:00:45 PM »
Появляется только одна звезда?
На одном расстоянии от кнопки или свой цвет на разном как нарисовано?
Какой фон на месте где звёзды?
Кнопки старт в разных местах?


Zimon

  • Зашел в гости
  • *
  • Posts: 17
    • View Profile
Re: Ребята помогите скрипт составить.
« Reply #2 on: September 02, 2017, 11:20:58 PM »
Появляется одна звезда из 5-ти.
На одном растоянии от кнопки, один из 5-ти цветов.
Фон всегда белый.
Да кнопки старт в разных местах, приблизительно как на изображении.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Ребята помогите скрипт составить.
« Reply #3 on: September 03, 2017, 12:34:41 AM »
ищешь все картинки 'старт' через scanpicture.
Получаешь массив координат найденных. Пробегаешь по массиву, где для каждой кнопки проверяешь область справа. Или контрольную сумму или количество белых пикселов. Как только сумма не совпала или пикселов меньше нужного значения, то там что-то есть, кликаем по этой кнопке и прерываем перебор.
В коде это с телефона не дам. Или в понедельник или жди других.


Zimon

  • Зашел в гости
  • *
  • Posts: 17
    • View Profile
Re: Ребята помогите скрипт составить.
« Reply #4 on: September 03, 2017, 12:40:43 AM »
Подожду... :)

Zimon

  • Зашел в гости
  • *
  • Posts: 17
    • View Profile
Re: Ребята помогите скрипт составить.
« Reply #5 on: September 05, 2017, 12:23:48 AM »
up!

Zimon

  • Зашел в гости
  • *
  • Posts: 17
    • View Profile
Re: Ребята помогите скрипт составить.
« Reply #6 on: September 19, 2017, 02:52:10 AM »
Помогите доработать.
У меня ищет одну звезду(b1) в строке, и кликает на START в той же строке.
А нужно что бы искал одну из пяти звезд в строке, и если нашел, то  кликал на START, после выход из цыкла.
Если не нашел, то обновить, и опять искать звезду.
Все это в один цыкл.

Code: [Select]
$zvezdy=0
WHILE($zvezdy=0)
   GETSCREEN
   IF_PICTURE_IN (239,273, 1079,306, "b1.bmp", -1, 95)   // - тут что бы искал одну из b1, b2, b3, b4, b5
      $zvezdy=1
   ELSE
      GETSCREEN    // кнопка "Обновить"
      IF_PICTURE_IN (1803,151, 1915,201, "Obnovit.bmp", -1, 95)
         LCLICK($_return1, $_return2)
         WAITMS(RND(5000,8000))
      END_IF
   END_IF
END_CYC

WAITMS(RND(900,1000))

GETSCREEN
IF_PICTURE_IN (16,286, 35,304, "START.bmp", -1, 95)
   LCLICK($_return1, $_return2)
   WAITMS(RND(500,1500))
END_IF

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Ребята помогите скрипт составить.
« Reply #7 on: September 19, 2017, 09:35:44 AM »
Code: (clickermann) [Select]
GETSCREEN
FOR($i=1, $i < 6)
    IF_PICTURE_IN(239,273, 1079,306, STRCONCAT("b", $i, ".bmp"), -1, 95)
        WAITMS(RND(900, 1000))
        IF_PICTURE_IN(16,286, 35,304, "START.bmp", -1, 95)
            LCLICK($_return1, $_return2)
            WAITMS(RND(500, 1500))
        END_IF
        $i = 100
    ELSE
        WAITMS(20)
    END_IF
END_CYC

IF($i < 100)
    IF_PICTURE_IN(1803,151, 1915,201, "Obnovit.bmp", -1, 95)
        LCLICK($_return1, $_return2)
        WAITMS(RND(5000,8000))
    END_IF
END_IF

Если там ещё код идёт и тебе нужно обновлять до потери пульса пока не появится, то можно так
Code: (clickermann) [Select]
$zvezdy = 0
WHILE($zvezdy = 0)
    GETSCREEN
    FOR($i=1, $i < 6)
        IF_PICTURE_IN(239,273, 1079,306, STRCONCAT("b", $i, ".bmp"), -1, 95)
            $i = 100
            $zvezdy = 1
        ELSE
            WAITMS(20)
        END_IF
    END_CYC
   
    IF($i < 100)
        IF_PICTURE_IN(1803,151, 1915,201, "Obnovit.bmp", -1, 95)
            LCLICK($_return1, $_return2)
            WAITMS(RND(5000,8000))
        END_IF
    END_IF
END_CYC

WAITMS(RND(900, 1000))

GETSCREEN
IF_PICTURE_IN(16,286, 35,304, "START.bmp", -1, 95)
    LCLICK($_return1, $_return2)
    WAITMS(RND(500, 1500))
END_IF

Но поиск и клик по START можно оставить прямо внутри условия, как в первом варианте. Тогда всё будет в одном месте.
« Last Edit: September 19, 2017, 09:40:39 AM by Vint »