Author Topic: Нужна помощь  (Read 2078 times)

0 Members and 1 Guest are viewing this topic.

DAVEN

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Нужна помощь
« on: November 11, 2017, 11:13:55 PM »
нужно написать такую программу

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


У меня  получилось следующее
Code: [Select]
getscreen
IF_PICTURE_IN (462,182, 1451, 523, "troll.bmp")
   lclick($_return1,$_return2)
   getscreen
   IF_PICTURE_IN (462,182, 1451, 523, "attack.bmp")
      lclick($_return1,$_return2)
   else
      getscreen
      IF_PICTURE_IN (462,182, 1451, 523, "troll.bmp")
         lclick($_return1,$_return2)
      end_if
   end_if
end_if
//wait(4)
//lclick(960,413)
wait(5)
lclick(1081,355)
Wait(5)
lclick(1022,375)
wait(5)
lclick(1081,355)
Wait(5)
lclick(1022,375)
wait(5)
lclick(1081,355)
Wait(5)
lclick(1022,375)
wait(5)
lclick(946,475)
wait(5)
lclick(74,42)
wait(5)


работает скрипт только после комментария
все картинки рабочие, в 24 битной форме

DAVEN

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Re: Нужна помощь
« Reply #1 on: November 12, 2017, 02:02:27 AM »
Не уверен, но чисто теоретически
Разве не должен быть второй гетскрин после второго иф пикче ин?
В обратном случае, программа будет брать из буфера старый скрин, не так ли?

DAVEN

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Re: Нужна помощь
« Reply #2 on: November 12, 2017, 02:32:53 AM »
Я, по всей видимости, неправильно описал задачу)
У меня экран как раз обновляется.
После клика на тролля должно появиться новое окно атаки, куда и нужно нажать.
Проблема лишь в том, что тролли часто двигаются, и скрипт не успевает кликать на них.
Соответственно код идет дальше с ошибками.
Моя задача научить код определять появилось ли то самое окошко атаки, если да,
то кликать на него, если нет,
то продолжать кликать на тролля.

DAVEN

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Re: Нужна помощь
« Reply #3 on: November 12, 2017, 03:17:32 AM »
Огромное Вам  спасибо)
Только у меня один вопрос.
Code: [Select]
$time = $_time_t + 2 // таймер на 2 секуны  появилось ли то самое окошко атаки
   WHILE($time > $_time_t)
Вот здесь, мы создали переменную и увеличили ее,
затем поставили в цикл уравнение, которое всегда верно.
Это было сделано, что бы вайл всегда повторялся за счет истинности условия?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Нужна помощь
« Reply #4 on: November 12, 2017, 07:59:21 AM »
Огромное Вам  спасибо)
Только у меня один вопрос.
Code: [Select]
$time = $_time_t + 2 // таймер на 2 секуны  появилось ли то самое окошко атаки
   WHILE($time > $_time_t)
Вот здесь, мы создали переменную и увеличили ее,
затем поставили в цикл уравнение, которое всегда верно.
Это было сделано, что бы вайл всегда повторялся за счет истинности условия?

$time - обычная переменная, может иметь любое имя
$_time_t - системная переменная, возвращает текущее время Unix в секундах
$time = $_time_t + 2 - здесь мы записываем значение времени Unix + 2 секунды в переменную $time
WHILE($time > $_time_t) - Цикл выполняется пока текущее время в $_time_t не нагонит статичное значение в переменной $time. То есть цикл проработает максимум 2 секунды.