Автокликер Clickermann :: Форум
Основной раздел => Использование => Topic started by: abbatlus on January 30, 2017, 11:21:49 AM
-
Короч код для игры Небеса
поиск и бой с нужным монстром
собственно код работает но... очень долго
Просьба людей понимающих помочь поставить правильно условие что бы не запускать весь код
Итак алгоритм такой:
1. клик на новый остров
2. сканирование нужного монстраLCLICK(970,393) // новый остров
wait(3)
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "джига.bmp", -1, 100)
LCLICK($_return1, $_return2)
WAITMS(100)
END_IF
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "тузик.bmp", -1, 100)
LCLICK($_return1, $_return2)
WAITMS(100)
END_IF
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "кура.bmp", -1, 100)
LCLICK($_return1, $_return2)
WAITMS(100)
END_IF
Если монстры не найдены тогда на круг(заново) если найдены то включаем следующий код
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "кнопка напасть.bmp", -1, 100)
LCLICK($_return1, $_return2)
WAIT(1)
END_IF
GETSCREEN
IF_PICTURE_IN (373,606, $_xmax,$_ymax, "ZIP.bmp", -1, 100)
LCLICK($_return1, $_return2)
WAIT(2)
end_if
move(595,468) // 1798000
wait(5)
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "стрелка.bmp", -1, 100)
LCLICK($_return1, $_return2)
WAITMS(100)
END_IF
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "забрать.bmp", -1, 100)
LCLICK($_return1, $_return2)
WAIT(8)
END_IF
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "верн.bmp", -1, 100)
LCLICK($_return1, $_return2)
WAITMS(100)
END_IF
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "кнопка выйти.bmp", -1, 100)
LCLICK($_return1, $_return2)
WAIT(5)
END_IF
жду вашей помощи коморады
-
По размеру
[spoiler]SUB(attack) //=========================================================
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "кнопка напасть.bmp")
LCLICK($_return1, $_return2)
WAIT(1)
END_IF
GETSCREEN
IF_PICTURE_IN (373,606, $_xmax,$_ymax, "ZIP.bmp")
LCLICK($_return1, $_return2)
WAIT(2)
end_if
move(595,468) // 1798000
wait(5)
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "стрелка.bmp")
LCLICK($_return1, $_return2)
WAITMS(100)
END_IF
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "забрать.bmp")
LCLICK($_return1, $_return2)
WAIT(8)
END_IF
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "верн.bmp")
LCLICK($_return1, $_return2)
WAITMS(100)
END_IF
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "кнопка выйти.bmp")
LCLICK($_return1, $_return2)
WAIT(5)
END_IF
END_SUB
SUB(monstr, $name_m) //=========================================================
IF_PICTURE_IN (0,0, $_xmax,$_ymax, $name_m)
LCLICK($_return1, $_return2)
WAITMS(100)
attack()
GETSCREEN
END_IF
END_SUB
//==============================================================================
LCLICK(970,393) // новый остров
wait(3)
GETSCREEN
monstr("джига.bmp")
monstr("тузик.bmp")
monstr("кура.bmp")
[/spoiler]
А по скорости работы... Сейчас в коде боя только чистых задержек на 21.2 сек, + ещё время выполнения кода.
Нужно строить скрипт не просто на паузах, а на анализе результатов или анализе доступности действий. Не тупо, череда GETSCREEN - IF_PICTURE_IN.
Конкретней можно подсказать только зная, что точно нужно делать.
Например, вместо 5 секундного ожидания
wait(5)
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "стрелка.bmp")
LCLICK($_return1, $_return2)
WAITMS(100)
END_IF
использовать шаблон "ожидание картинки
WAITMS(100)
$check = 0
WHILE($check = 0)
GETSCREEN
IF_PICTURE_IN(0,0, $_xmax,$_ymax, "трелка.bmp")
$check = 1
LCLICK($_return1, $_return2)
WAITMS(100)
ELSE
WAITMS(50)
END_IF
END_CYC
Получается не ждём полные 5 сек для уверенного появления чего нужно, а ищем каждые 50-100 мс. Как только найдёт, выполнится действие сразу.
Ну и так везде. Что нужно обязательно дождаться - ждать. Если картинка может появится, а может нет - здесь тоже ожидание, но с ограничением по времени. Время подобрать в разумных пределах.
Ну конечно же везде, где можно указать область поиска. А то сейчас весь экран (0,0, $_xmax,$_ymax) слишком расточительно.
-
Я не стал "утрамбовывать" саму атаку, т.к. код там скорее всего нужно переделывать. В таком виде он у него и будет долго работать.
Пусть решит что там на лету можно искать, что ждать, а что проверять n секунд вдруг появилось. Потом уже трамбовать.
-
парни спс за ваши старания но... не много не то мне не надо сокращать атаку по времени меня все устраивает проблема в поиске. я хотел что бы он передвигался от острова к острову в поисках монстра минуя атаку пока не найдет нужного монстра... поэтому если можно просто связать условием два моих кода. алгоритм: если монстр найден включаем атаку если нет идем дальше сокращать не надо (не было бы класно но все ваши варианты не робят... сори
-
... проблема в поиске. я хотел что бы он передвигался от острова к острову в поисках монстра минуя атаку пока не найдет нужного монстра...
.. но все ваши варианты не робят... сори
Прям все не робят? А это?
Ну конечно же везде, где можно указать область поиска. А то сейчас весь экран (0,0, $_xmax,$_ymax) слишком расточительно.
Самый прямой путь к ускорению. Задать область для GETSCREEN и поиска.
И мой же вариант под спойлером из ответа #1, где не выполняются ненужные GETSCREEN.
У тебя случайно заготовки не 400х300?
-
И туда же описанное ожидание 3 сек. Что не так?
Кликнул "новый остров" и ждёшь(ищешь) по характерным признакам прогрузки и появления монстра.
Проверяешь своих нужных.
-
Это браузерная флеш игра к которой можно сделать привязку. Область сканирования уменьшиться значительно. Кнопка следующего острова и местонахождение мобов находятся на одном месте, так что достаточно кликать просто по координатам
-
Это браузерная флеш игра к которой можно сделать привязку. Область сканирования уменьшиться значительно. Кнопка следующего острова и местонахождение мобов находятся на одном месте, так что достаточно кликать просто по координатам
Поздравляю с получением очередного звания - КАПИТАН ОЧЕВИДНОСТЬ! ;D
А можно процедуре SUB(клик) использовать переменные не $par7,8,9 а $par1,2,3 ?
-
А можно процедуре SUB(клик) использовать переменные не $par7,8,9 а $par1,2,3 ?
Нет, так как это собъет данные в подпрограмме attack.
-
Здравствуйте....У вас в скрипте сперва осуществляется клик на остров, а потом поиск моба....как сделать наоборот...сперва поиск а потом клик на новый остров...заранее спасибо...