|
|
|
Научить пилот логике в игре Небеса |
|
|
xolost |
5.1.2013, 20:07
|
Expert
Сообщений: 517
Регистрация: 17.6.2012 Группа: Пользователи Наличность: 0
Пользователь №: 15.035
|
Цитата(veiron @ 5.1.2013, 20:38) Если это мне про салфетку, то я так и не понял. Я поменял в ифе 1 на 0, и куда бы я не вставлял этот иф, везде ошибка.
Вы говорите пилоту - кликай в по координатам из массива, которых в нём нету. Поэтому, нужно всегда ставить условие: Код if $a > 0 set #x %crds тра-та-та тра-та-та end_if таким образом, попытаемся присвоить значения и кликнем только если найдем картинку. Цитата(Санчес @ 5.1.2013, 19:17) xolost твой первоначальный вариант тоже работает норм,видимо дело было только в этом
Конечно мой скрипт работает. Мои скрипты всегда работают. (IMG: style_emoticons/default/smile.gif))))
|
|
|
|
veiron |
5.1.2013, 20:59
|
Master
Сообщений: 1.264
Регистрация: 22.5.2012 Группа: Пользователи Наличность: 0 Из: Белоруссии
Пользователь №: 14.972
|
Цитата(Zeleax @ 5.1.2013, 20:39) проверять нужно После findimage, а не До Ну вот же Санчес уже сделал: https://forum.uokit.com/index.php?s=&sh...st&p=183165Код
Код set $path C:\logs\ set %cash[1] 3 // будем искать картинку из файла C:\Program Files\UOPilot\images\картинка.bmp set $a findimage (180, 75 689, 416 ($path%cash[1].bmp) %crds 2) if $a > 0 msg Изображение найдено. wait 1s left %crds[1 1] %crds[1 2] // кликнули wait 3s else msg Изображение не найдено end_if end_script
первым кодом все картинки находятся всегда. а вторым вообще ни куда ни кликает, просто по фор прогнал 3 раза и стоп. код полность скопирован по вашей ссылке. Код
Код set $path C:\logs\
set %loko[1] 1.bmp set %loko[2] 2.bmp set %loko[3] 3.bmp
set $a 0 for #i 1 3 set $name $path%loko[#i] log $name //set $a findimage (94, 35 701, 445 ($path%loko[3]) %crds 2 80 3 10) if $a > 0 left %crds[1 1],%crds[1 2] left %crds[2 1],%crds[2 2] left %crds[3 1],%crds[3 2] end_if end_for end_script
Лог пишет вот это: 20:57:31 0 (, 13): C:\logs\1.bmp 20:57:31 0 (, 13): C:\logs\2.bmp 20:57:31 0 (, 13): C:\logs\3.bmp
|
|
|
|
Санчес |
5.1.2013, 22:35
|
Apprentice
Сообщений: 131
Регистрация: 18.12.2012 Группа: Пользователи Наличность: 0
Пользователь №: 15.578
Возраст: 31
|
Цитата set %loko[1] 1.bmp set %loko[2] 2.bmp set %loko[3] 3.bmp
set $a 0 for #i 1 3 set $name $path%loko[#i] log $name set $a findimage (94, 35 701, 445 ($path%loko[3]) %crds 2 80 1 10) if $a > 0 left %crds[1 1],%crds[1 2] end_if end_for end_script попробуй так искать будет одну картинку а не три одинаковых,и тыкать по ней,потом вторую и тоже тыкать и теде в зависимости от ФОРа. Цитата ....%crds 2 80 1 10) в данном случае параметры поиска 2-быстрый,80-точность,1-количество ОДИНАКОВЫХ картинок,10-погрешность.В том что я написал раньше было искать в области 3 картинки 1.бмп,3 картинки 2.бмп,и 3 3.бмп. Если не находит не одной то в массив 11 12 нечего записывать и выдает ошибку. Цитата искать в области 3 картинки 1.бмп,3 картинки 2.бмп,и 3 3.бмп. то есть в области поиска они были,всего девять и по три каждой,я просто в папку кинул картинки и включил отображение эскизов страниц.он нашел как и ожидалось сначала первую в трех экземплярах и тыкнул по очереди по каждой из них,потом вторую и теде,но если написать еще массив 41 42 то на этой строке выдаст ошибку,потому как четвертой картинки там нет.
|
|
|
|
veiron |
5.1.2013, 22:36
|
Master
Сообщений: 1.264
Регистрация: 22.5.2012 Группа: Пользователи Наличность: 0 Из: Белоруссии
Пользователь №: 14.972
|
Цитата(Санчес @ 5.1.2013, 23:31) попробуй так искать будет одну картинку а не три одинаковых,и тыкать по ней,потом вторую и тоже тыкать и теде в зависимости от ФОРа. в данном случае параметры поиска 2-быстрый,80-точность,1-количество ОДИНАКОВЫХ картинок,10-погрешность.В том что я написал раньше было искать в области 3 картинки 1.бмп,3 картинки 2.бмп,и 3 3.бмп. Если не находит не одной то в массив 11 12 нечего записывать и выдает ошибку.
Спасибо,так получается, кликнуть в ту которую надо. А можно как то фор заменить на while, фор не удобен тем, что в нем определенное количество циклов, а я не знаю сколько раз кликнуть надо, иногда 2, а может и 15.
|
|
|
|
Санчес |
5.1.2013, 22:41
|
Apprentice
Сообщений: 131
Регистрация: 18.12.2012 Группа: Пользователи Наличность: 0
Пользователь №: 15.578
Возраст: 31
|
Цитата что бы пилот посмотрел 3 картинки, по 2 нужным кликнул, потом закрыл окно и завершил цикл. лефт массив 11 12 первая нужная картинка лефт массив 21 22 вторая...третью он не запишет так как она не нужна лефт на кнопку закрытия енд фор
|
|
|
|
xolost |
5.1.2013, 22:44
|
Expert
Сообщений: 517
Регистрация: 17.6.2012 Группа: Пользователи Наличность: 0
Пользователь №: 15.035
|
Цитата(veiron @ 5.1.2013, 23:26) Как можно сделать проверку их существования ?
А вот это я для кого писал? Цитата Вы говорите пилоту - кликай в по координатам из массива, которых в нём нету. Поэтому, нужно всегда ставить условие: Код Код if $a > 0 set #x %crds тра-та-та тра-та-та end_if таким образом, попытаемся присвоить значения и кликнем только если найдем картинку.
|
|
|
|
Санчес |
5.1.2013, 22:45
|
Apprentice
Сообщений: 131
Регистрация: 18.12.2012 Группа: Пользователи Наличность: 0
Пользователь №: 15.578
Возраст: 31
|
Цитата А можно как то фор заменить на while, фор не удобен тем, что в нем определенное количество циклов, а я не знаю сколько раз кликнуть надо, иногда 2, а может и 15. Можно и while и if они в принципе выполнят функцию одинаково,и там и там идет сначала проверка например: иф картинка нужна лефт по ней енд иф
|
|
|
|
Санчес |
5.1.2013, 22:56
|
Apprentice
Сообщений: 131
Регистрация: 18.12.2012 Группа: Пользователи Наличность: 0
Пользователь №: 15.578
Возраст: 31
|
Цитата тоесть видит картинку и кликает, пока они не закончатся,как закончились переходим дальше. тогда так: Цитата :старт иф картинка нужна лефт по ней гото старт енд иф
будет тыкать пока не кончатся
|
|
|
|
veiron |
5.1.2013, 23:08
|
Master
Сообщений: 1.264
Регистрация: 22.5.2012 Группа: Пользователи Наличность: 0 Из: Белоруссии
Пользователь №: 14.972
|
Цитата(Санчес @ 5.1.2013, 23:56) тогда так: будет тыкать пока не кончатся
В принципе так и делал, только через gosub, а не гото. Просто думал, можно 6 findimage, заменить на 1. Не знаешь как составить скрипт, что бы пилот ждал, пока загрузится игра, мне надо выполнить крутить барабан, но из за тормозов, он может появится первым, или вместо него может появится другая вкладка событий, или если собирал бонусы, то вообще ни чего не будет, тогда надо самому открывать. и время загрузки игры разное. Я сделал, если открывается первый барабан, тогда все четко, но только если что то другое, тогда все завис.
|
|
|
|
Санчес |
5.1.2013, 23:17
|
Apprentice
Сообщений: 131
Регистрация: 18.12.2012 Группа: Пользователи Наличность: 0
Пользователь №: 15.578
Возраст: 31
|
Цитата что бы пилот ждал, пока загрузится игра, найди объект который меняет цвет или размер только после загрузки и на него поставь иф Цитата Не по очереди, а какая появится в данный момент Появляются каждая на своем месте или все в одном или все в разных местах?
|
|
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|