Здравствуйте, гость ( Вход | Регистрация )

2 страниц V  1 2 >  
Ответить в эту темуОткрыть новую тему
> Нужна помощь с findimage, выделите минуту пжлст
Чекист
сообщение 1.6.2013, 15:31
Сообщение #1


***

Novice
Сообщений: 76
Регистрация: 2.12.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.534



Уважаемые пользователи сети интернет! Прошу помочь с одной проблемой , которая возникла у меня.

есть скрипт , пример:
Код
   
set $zoloto findimage (#StartX #StartY #EndX #endY (C:\Images\****\золото.bmp) %crds16 2 100 -1)
set $glavnaya findimage (#StartX #StartY #EndX #endY (C:\Images\*****\главная.bmp) %crds1 2 100 -1)
   if $zoloto > 0 and $glavnaya > 0
      set #x16 %crds16[1 1] + 10 + random(8)
      set #y16 %crds16[1 2] + 10 + random(7)
      kleft #x16, #y16
       wait 1000 + random(200)
   end_if


Вот например нашло оно золото.bmp , но проблема в том что на экране золото.bmp больше 3 штук ....и тут постает вопрос , как заставить бота кляцать сначало по нижнему золото.bmp , а потом по остальным.

Пример

1) Нашли золото.bmp - третий клик
2) Нашли золото.bmp - второй клик
3) Нашли золото.bmp - первый клик

А если просто запускать оно тыкает на угад с этих 3х золото.bmp , в большинстве случаев по верхнем , а нужно наоборот кликать сначало по нижнем.


Заранее очень благодарен!Извените за орфографические ошибки!
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Чекист
сообщение 1.6.2013, 15:47
Сообщение #2


***

Novice
Сообщений: 76
Регистрация: 2.12.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.534



Уважаемые пользователи сети интернет! Прошу помочь с одной проблемой , которая возникла у меня.

есть скрипт , пример:
Код

set $zoloto findimage (#StartX #StartY #EndX #endY (C:\Images\****\золото.bmp) %crds16 2 100 -1)
set $glavnaya findimage (#StartX #StartY #EndX #endY (C:\Images\*****\главная.bmp) %crds1 2 100 -1)
   if $zoloto > 0 and $glavnaya > 0
      set #x16 %crds16[1 1] + 10 + random(8)
      set #y16 %crds16[1 2] + 10 + random(7)
      kleft #x16, #y16
       wait 1000 + random(200)
   end_if


Вот например нашло оно золото.bmp , но проблема в том что на экране золото.bmp больше 3 штук ....и тут постает вопрос , как заставить бота кляцать сначало по нижнему золото.bmp , а потом по остальным.

Пример

1) Нашли золото.bmp - третий клик
2) Нашли золото.bmp - второй клик
3) Нашли золото.bmp - первый клик

А если просто запускать оно тыкает на угад с этих 3х золото.bmp , в большинстве случаев по верхнем , а нужно наоборот кликать сначало по нижнем.


Заранее очень благодарен!Извените за орфографические ошибки!
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
esqado
сообщение 1.6.2013, 16:25
Сообщение #3


*****

Journeyman
Сообщений: 357
Регистрация: 5.11.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 14.217



Для каждого золото.bmp свои координаты. Собери координаты каждого золото.bmp и клацай по очереди.


--------------------
В обычном программировании: любое значение может быть преобразовано в тип string
В программировании Pilot: любое значение должно быть типа имейдж.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Чекист
сообщение 1.6.2013, 16:32
Сообщение #4


***

Novice
Сообщений: 76
Регистрация: 2.12.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.534



Цитата(zavas @ 1.6.2013, 16:25) *

Для каждого золото.bmp свои координаты. Собери координаты каждого золото.bmp и клацай по очереди.


Проблема в том что эти координаты постоянно меняются .... то ниже то выше... по одной кляцаешь следущаяперемещается...был бы очень благодарен , Если бы в скриптах все показывали как и что!
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
esqado
сообщение 1.6.2013, 16:36
Сообщение #5


*****

Journeyman
Сообщений: 357
Регистрация: 5.11.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 14.217



Т.е. золото не статично...
Я не помню синтаксис пилота. И боюсь тебя обмануть, но можно попробовать так:

set $glavnaya findimage (#StartX #StartY #EndX #endY (C:\Images\*****\главная.bmp) %crds1 2 100 -1)
if $glavnaya > 0
set $zoloto findimage (#StartX #StartY #EndX #endY (C:\Images\****\золото.bmp) %crds16 2 100 -1)
set #x16 %crds16[1 1] + 10 + random(8)
set #y16 %crds16[1 2] + 10 + random(7)
kleft #x16, #y16
wait 1000 + random(200)
end_if

PS Забыл спросить: главная без золота может быть?


--------------------
В обычном программировании: любое значение может быть преобразовано в тип string
В программировании Pilot: любое значение должно быть типа имейдж.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Чекист
сообщение 1.6.2013, 16:47
Сообщение #6


***

Novice
Сообщений: 76
Регистрация: 2.12.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.534



Цитата(zavas @ 1.6.2013, 16:36) *

Т.е. золото не статично...
Я не помню синтаксис пилота. И боюсь тебя обмануть, но можно попробовать так:

set $glavnaya findimage (#StartX #StartY #EndX #endY (C:\Images\*****\главная.bmp) %crds1 2 100 -1)
if $glavnaya > 0
set $zoloto findimage (#StartX #StartY #EndX #endY (C:\Images\****\золото.bmp) %crds16 2 100 -1)
set #x16 %crds16[1 1] + 10 + random(8)
set #y16 %crds16[1 2] + 10 + random(7)
kleft #x16, #y16
wait 1000 + random(200)
end_if

PS Забыл спросить: главная без золота может быть?


Быть то может , но когда главной нету , нажимать на золото не надо! И ты что-то не то написал, скрип тостался тем же ) кроме перемежения if $glavnaya > 0)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
esqado
сообщение 1.6.2013, 16:53
Сообщение #7


*****

Journeyman
Сообщений: 357
Регистрация: 5.11.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 14.217



Действительно, не дописал.
set $zoloto findimage (#StartX #StartY #EndX #endY (C:\Images\****\золото.bmp) %crds16 2 100 -1)
set $glavnaya findimage (#StartX #StartY #EndX #endY (C:\Images\*****\главная.bmp) %crds1 2 100 -1)
if $zoloto > 0 and $glavnaya > 0
for // количество найденного золота из массива %crds16
set $zoloto findimage (#StartX #StartY #EndX #endY (C:\Images\****\золото.bmp) %crds16 2 100 -1)
set #x16 %crds16[1 1] + 10 + random(8)
set #y16 %crds16[1 2] + 10 + random(7)
kleft #x16, #y16
end_for
wait 1000 + random(200)
end_if


--------------------
В обычном программировании: любое значение может быть преобразовано в тип string
В программировании Pilot: любое значение должно быть типа имейдж.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Чекист
сообщение 1.6.2013, 18:18
Сообщение #8


***

Novice
Сообщений: 76
Регистрация: 2.12.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.534



Цитата(zavas @ 1.6.2013, 16:53) *

Действительно, не дописал.
set $zoloto findimage (#StartX #StartY #EndX #endY (C:\Images\****\золото.bmp) %crds16 2 100 -1)
set $glavnaya findimage (#StartX #StartY #EndX #endY (C:\Images\*****\главная.bmp) %crds1 2 100 -1)
if $zoloto > 0 and $glavnaya > 0
for // количество найденного золота из массива %crds16
set $zoloto findimage (#StartX #StartY #EndX #endY (C:\Images\****\золото.bmp) %crds16 2 100 -1)
set #x16 %crds16[1 1] + 10 + random(8)
set #y16 %crds16[1 2] + 10 + random(7)
kleft #x16, #y16
end_for
wait 1000 + random(200)
end_if


ничего не понел...причем тут for , и как его правильно применить тут
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Kanibal
сообщение 1.6.2013, 18:44
Сообщение #9


********

Master
Сообщений: 1.337
Регистрация: 19.9.2009
Группа: Пользователи
Наличность: 0
Пользователь №: 12.115
Возраст: 7



Цитата(Чекист @ 1.6.2013, 15:31) *

Вот например нашло оно золото.bmp , но проблема в том что на экране золото.bmp больше 3 штук ....и тут постает вопрос , как заставить бота кляцать сначало по нижнему золото.bmp , а потом по остальным.

#StartX #StartY #EndX #endY
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Чекист
сообщение 1.6.2013, 20:21
Сообщение #10


***

Novice
Сообщений: 76
Регистрация: 2.12.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.534



Цитата(Kanibal @ 1.6.2013, 18:44) *

#StartX #StartY #EndX #endY

Можно полностью написать как что ?

Сейчас у меня так:

Код

// Разрешение экра
set #StartX 0
set #StartY 0
set #endX screenwidth
set #endY screenheight

///// Ищем сбор золота
   set $zoloto findimage (#StartX #StartY #EndX #endY (C:\Images\Небоскребы\золото.bmp) %crds16 2 100 -1)
   set $glavnaya findimage (#StartX #StartY #EndX #endY (C:\Images\Небоскребы\главная.bmp) %crds1 2 100 -1)
   if $zoloto > 0 and $glavnaya > 0
      set #x16 %crds16[1 1] + 10 + random(8)
      set #y16 %crds16[1 2] + 10 + random(7)
      kleft #x16, #y16
       wait 500 + random(200)
   end_if
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
esqado
сообщение 1.6.2013, 20:29
Сообщение #11


*****

Journeyman
Сообщений: 357
Регистрация: 5.11.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 14.217



Наверно стоит упростить задачу...
Выкладывай все скрины с детальным описанием что, когда и куда должно нажиматься.


--------------------
В обычном программировании: любое значение может быть преобразовано в тип string
В программировании Pilot: любое значение должно быть типа имейдж.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Чекист
сообщение 1.6.2013, 21:22
Сообщение #12


***

Novice
Сообщений: 76
Регистрация: 2.12.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.534



Цитата(zavas @ 1.6.2013, 20:29) *

Наверно стоит упростить задачу...
Выкладывай все скрины с детальным описанием что, когда и куда должно нажиматься.


Прикрепленный файл  1.bmp ( 480,99 килобайт ) Кол-во скачиваний: 503


золото - это маленькие коричневые ящики, я их ищю , И при нахождении нажимаю Выложить товар , но как видно самый верхний запрос предлогает за купюру Выложить все за 1 , это не нужно жать.....но когда несколько раз нажать Выложить товар , эта табличка пропадает...так как воплотить нажатие с нижних найденых?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Kanibal
сообщение 2.6.2013, 9:27
Сообщение #13


********

Master
Сообщений: 1.337
Регистрация: 19.9.2009
Группа: Пользователи
Наличность: 0
Пользователь №: 12.115
Возраст: 7



Цитата(Чекист @ 1.6.2013, 20:21) *

Можно полностью написать как что ?


#StartX #StartY #EndX #EndY - в каких координатах искать картинку
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
esqado
сообщение 2.6.2013, 11:14
Сообщение #14


*****

Journeyman
Сообщений: 357
Регистрация: 5.11.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 14.217



Это очень похоже на вопрос про сценарий поиска изображений.

set $a FindImage (#StartX #StartY #EndX #EndY ($filename) %ResultArray [#type [#accuracy [#count [#deviation]]]] [abs])

<$a> - переменная, в которую записывается процент точности найденного изображения или количество найденных изображений.
<%ResultArray> - результирующий массив, в который записываются координаты изображения. Координатами изображения считается пиксель левого верхнего угла изображения. Если найдено несколько изображений, то координаты всех найденных изображений. Первая разрядность массива - найденное изображение, вторая - координата по оси X, для значения 1, по оси Y - для значения 2.

В твоем случае <%ResultArray> (равно) %crds16. Отсюда следует, что Первая разрядность массива - найденное изображение (%crds16[1]), вторая - координата по оси X, для значения 1(%crds16[1 1]), по оси Y - для значения 2(%crds16[1 2]).
Т.к. тебе не нужно первое найденное совпадение (%crds16[1]), а интересует второе с местоположением по оси Y (%crds16[2 2]), тогда можно взять координаты отсюда (%crds16[2 1] и %crds16[2 2]).
Если, после нажатия на выложить нижние подтягиваются вверх, а нажатое скрывается, то стоит посмотреть код, который я писал выше.


--------------------
В обычном программировании: любое значение может быть преобразовано в тип string
В программировании Pilot: любое значение должно быть типа имейдж.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Чекист
сообщение 2.6.2013, 13:14
Сообщение #15


***

Novice
Сообщений: 76
Регистрация: 2.12.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.534



Цитата(zavas @ 2.6.2013, 11:14) *

Это очень похоже на вопрос про сценарий поиска изображений.

set $a FindImage (#StartX #StartY #EndX #EndY ($filename) %ResultArray [#type [#accuracy [#count [#deviation]]]] [abs])

<$a> - переменная, в которую записывается процент точности найденного изображения или количество найденных изображений.
<%ResultArray> - результирующий массив, в который записываются координаты изображения. Координатами изображения считается пиксель левого верхнего угла изображения. Если найдено несколько изображений, то координаты всех найденных изображений. Первая разрядность массива - найденное изображение, вторая - координата по оси X, для значения 1, по оси Y - для значения 2.

В твоем случае <%ResultArray> (равно) %crds16. Отсюда следует, что Первая разрядность массива - найденное изображение (%crds16[1]), вторая - координата по оси X, для значения 1(%crds16[1 1]), по оси Y - для значения 2(%crds16[1 2]).
Т.к. тебе не нужно первое найденное совпадение (%crds16[1]), а интересует второе с местоположением по оси Y (%crds16[2 2]), тогда можно взять координаты отсюда (%crds16[2 1] и %crds16[2 2]).
Если, после нажатия на выложить нижние подтягиваются вверх, а нажатое скрывается, то стоит посмотреть код, который я писал выше.


Спасибо
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
OGOGO
сообщение 28.6.2013, 23:07
Сообщение #16


**

Группа: Пользователи
Наличность: 0
Пользователь №: 16.177
Возраст: 15



Здравствуйте, нужен теперь мне хелп.
Написал самый простейший из всех возможных скриптов, с использованием findimage:


set $a findimage ( 0 0 1300 600 (D:\Mafia\Mafia\omg.bmp ) %crds 2 100 1)
left %crds[1 1] %crds[1 2]
end_script

это весь скрипт. Когда запускаю - Выдается вот такая вещь:
Картинка, то есть, как я понял, такого на экране не обнаруживается и uopilot пытается кликнуть по координате undefined undefined. Будем ждать помощи. Спасибо!
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 28.6.2013, 23:10
Сообщение #17


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



http://uopilot.tati.pro/index.php?title=Findimage


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
OGOGO
сообщение 28.6.2013, 23:26
Сообщение #18


**

Группа: Пользователи
Наличность: 0
Пользователь №: 16.177
Возраст: 15



Цитата(Zeleax @ 28.6.2013, 22:10) *

Спасибо большое, но руководствуясь именно этим я и писал скрипт. Можете точнее указать, где ошибка?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 28.6.2013, 23:36
Сообщение #19


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



Цитата(OGOGO @ 28.6.2013, 23:26) *

Спасибо большое, но руководствуясь именно этим я и писал скрипт. Можете точнее указать, где ошибка?

нет проверки, что что-то найдено.
Первый пример посмотрите по ссылке...

Сообщение отредактировал Zeleax - 28.6.2013, 23:38


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
OGOGO
сообщение 28.6.2013, 23:49
Сообщение #20


**

Группа: Пользователи
Наличность: 0
Пользователь №: 16.177
Возраст: 15



Цитата(Zeleax @ 28.6.2013, 22:36) *

нет проверки, что что-то найдено.
Первый пример посмотрите по ссылке...

Да, спасибо, вы правы. Ничего не нашлось. Почему так?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

2 страниц V  1 2 >
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 19.4.2024, 4:51
Designed by Nickostyle