Автор: Vik_777 14.10.2018, 16:23
Для начала автохилл. если полоска здоровья исчезла то прожимаем хилл.
клавиша F6
set $a 0
set #time timer +300 // ВРЕМЯ ПОИСКА
while $a < 1
set $a findcolor (217, 41 224, 49 1 1 2502707 %K 2)
if #time > timer
end_while
if $a > 10 // чтоб не было ложных сработок найденных точек не меньше 10 д.б.
send217 F6
hint (22 clRed 335 50 (ХИЛЛ))
end_if
end_if
Автор: cirus 14.10.2018, 17:10
Неправильно расставлены end_if и end_while.
Цитата
set $a 0
set #time timer +300 // ВРЕМЯ ПОИСКА
while $a < 1
set $a findcolor (217, 41 224, 49 1 1 2502707 %K 2)
if #time > timer
end_while
if $a > 10 // чтоб не было ложных сработок найденных точек не меньше 10 д.б.
send217 F6
hint (22 clRed 335 50 (ХИЛЛ))
end_if
end_if
if должен закрываться end_if, while end_while.
Цитата
if #time > timer
В условии ничего нет, т. е. можно убрать ничего не изменится.
Автор: Vik_777 14.10.2018, 21:37
Цитата(cirus @ 14.10.2018, 17:10)
Неправильно расставлены end_if и end_while.
if должен закрываться end_if, while end_while.
В условии ничего нет, т. е. можно убрать ничего не изменится.
Наверно вы правы но по мне и так работает.
если ничего не нашло то пропуск всего .
если время вышло тоже норм ошибки не выдает
хотя можно попробовать вообще без while_not и end_while
Цитата(Vik_777 @ 14.10.2018, 21:29)
Наверно вы правы но по мне и так работает.
если ничего не нашло то пропуск всего .
если время вышло тоже норм ошибки не выдает
хотя можно попробовать вообще без while_not и end_while
хотя нет нельзя
Цитата(Vik_777 @ 14.10.2018, 21:31)
Наверно вы правы но по мне и так работает.
если ничего не нашло то пропуск всего .
если время вышло тоже норм ошибки не выдает
хотя можно попробовать вообще без while_not и end_while
хотя нет нельзя
Но к слову если можно то прокомментируйте двойное вложение
первый if и его end_if очень далеки друг от друга
set #t 0
:поиск_лу
set #a 0
set #time timer + 600 // ВРЕМЯ ПОИСКА ЛУ ВУ
while_not #a > 80 // ИШЕМ НИПА ОФИЦЕР ЛУ ВУ И ТЫКАЕМ
set #a FindImage(300 120 1600 820(C:\1\ЛУ_ВУ.bmp)%Y #h 70 1 10)
if #time > timer
end_while
if #a > 0 // вижу тыкаю
mouse disable
move %Y [1 1] %Y [1 2] #h
left %Y [1 1] %Y [1 2] #h // ОФИЦЕР ЛУ ВУ тык
wait 600
mouse enable
***********************************************
set #a 0 // если далеко стоит то начнет бежать и еше раз ткнет
set #time timer + 600 // ВРЕМЯ ПОИСКА ЛУ ВУ
while_not #a > 80 // ИШЕМ НИПА ОФИЦЕР ЛУ ВУ И ТЫКАЕМ
set #a FindImage(300 120 1600 820(C:\1\ЛУ_ВУ.bmp)%Y #h 70 1 10)
if #time > timer
end_while
if #a > 0 // вижу тыкаю
mouse disable
move %Y [1 1] %Y [1 2] #h
left %Y [1 1] %Y [1 2] #h // ОФИЦЕР ЛУ ВУ тык
hint (22 clRed 720 210 (ТЫК ЛУ ВУ ТЫК))
wait 600
mouse enable
end_if
end_if
***********************************************
hint (22 clRed 720 210 (ТЫК ЛУ ВУ ТЫК))
set #a 0 // ЖДЕМ ОТКРЫТИЯ ОКНА ДИАЛОГА
set #time timer + 3000
while_not #a > 70
set #a FindImage(400 10 1350 350(C:\1\ОФИЦЕР.bmp)%M #h 70 1 10)
if #time > timer
end_while
mouse disable
move %M [1 1] %M [1 2] #h
kleft_down %M [1 1] %M [1 2] #h
kleft_up 792 16 // ОФИЦЕР ОТЦЕНТРОВАЛИ
wait 500
left 800,324 // ОБМЕН СОКРОВИЩА ПРИНЦА
wait 200
left 800,294 // ХОРОШО
wait 200
mouse enable
end_if // время вышло
goto выход_лу // и перход к след зад.
end_if // вижу тыкаю
end_if
set #t #t + 1
if #t < 3 // если 2 раза не находим то дальше
hint (22 clRed 700 250 (не вижу))
wait 1000 // ждем
hint (22 clRed 950 250 (2.5сек))
wait 2500
goto поиск_лу // в начало
end_script
end_if
:выход_лу // дальше
Автор: cirus 14.10.2018, 21:59
Цитата
Но к слову если можно то прокомментируйте двойное вложение
Код
while 0 = 0 // цикл
if 1 = 1 // условие 1
if 2 = 2 // условие 2
end_if // конец условия 2
if 3 = 3 // условие 3
end_if // конец условия 3
end_if // конец условия 1
end_while // конец цикла
Таймер зачем нужен?
Автор: Vik_777 15.10.2018, 8:41
Цитата(cirus @ 14.10.2018, 21:59)
Таймер зачем нужен?
таймер чтоб не зацикливался в поиске того что может не появиться.
лучше пусть пропустит и передаст задание следующему персу (игроку).
А время поиска задается чтоб больше шансов был найти требуемое
бывает задержи интернета (время отклика ). Но как говориться без фанатизма.
Спасибо за коммент.
Автор: cirus 15.10.2018, 11:05
Код
set #time timer + 600 // искать картинку в течении 600 мсек
while #time > timer // пока не вышло время
set #a FindImage(400 10 1350 350 (C:\1\ОФИЦЕР.bmp) %M 2 70 1 10)
if #a > 0 // если картинка найдена
log Картинка найдена
// нужные действия
break // выход из цикла
end_if
wait 10
end_while
end_script
Автор: Vik_777 16.10.2018, 10:29
чтож, так более элегантно надо опробовать
Автор: Vik_777 16.10.2018, 22:16
Цитата(Vik_777 @ 16.10.2018, 10:29)
чтож, так более элегантно надо опробовать
Спасибо работает
Автор: Vik_777 26.10.2018, 10:08
Ошибка.bmp ( 237,04 килобайт )
Кол-во скачиваний: 361
Вопросик. Когда запускаю макрос с быстрой клавиши почти всегда идет такое сообщение
см рис. макрос тем не менее запускается все норм.Иногда ошибка не выскакивает.
Автор: DarkMaster 26.10.2018, 10:25
попробуйте в настройках во вкладке ультимы онлайн снять все три галки "при ошибке чтения параметров чара" и во вкладке скритпа "при закрытии клиента останавливать скрипт".
Автор: cirus 26.10.2018, 11:17
Это сообщение появляется если не указано рабочее окно.
Вначале скрипта:
Код
set #h findwindow ("Perfect World")
set workwindow #h
// если окно будет найдено сообщения не будет
Автор: DarkMaster 26.10.2018, 11:23
Из описанного выше - привязка тут как раз не нужна. Так же лично у меня есть некоторые сомнения, что это приведет к нужному результату, т.к. все эти попытки чтения статов чара и контроля состояния приложения никуда не денутся, а вызваны, скорее всего, будут еще до выполнения скрипта. В лучшем случае будут наперегонки бегать с привязкой окна. Ну 2+ запуск при условии, что окно с привязкой не перезапускалось, не должен вызывать сообщения. Тем не менее остается сам непосредственный функционал контроля ошибок и состояния клиента. Он нужен? Судя по тому, что скрипты не требуют привязки - никоем образом. Зачем прикручивать костылики, чтобы функционал который не нужен продолжал работать, жрать ресурсы? Не логичнее ли его отключить?
Автор: WKnight 26.10.2018, 12:39
Сообщение выводится только при запуске скрипта и только если не указано рабочее окно. Не отключается никакими галочками.
Автор: Vik_777 3.11.2018, 8:10
Спасибо надо осмыслить все сказанное
Автор: Vik_777 3.11.2018, 8:21
Цитата(WKnight @ 26.10.2018, 12:39)
Сообщение выводится только при запуске скрипта и только если не указано рабочее окно. Не отключается никакими галочками.
Да так подтверждаю.
Причем если см файл
Эскизы прикрепленных изображений
Автор: DarkMaster 3.11.2018, 15:20
скорее всего в части этих скриптов есть поиск окна. Привязка по идее сохраняется после окончания работы и при следующем запуске этой таблички уже не должно быть.