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

2 страниц V  1 2 >  
Ответить в эту темуОткрыть новую тему
> Несколько вопросов, Если вопросы уже обсуждались, можно меня тыкнуть в эту тему ))
maxximum3000
сообщение 18.12.2014, 21:38
Сообщение #1


**

Neophyte
Сообщений: 18
Регистрация: 18.12.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 17.189
Возраст: 24



Здравствуйте! Пишу кликер для замечательной игры EVE Online и у меня возникли некоторые трудности:

1. Иногда (крайне редко, но все же) программа перестает воспринимать команды клика.
Перед кликами естественно идет команда Move с теми же координатами, что и клик. Скорость скрипта 30 мс. Сам клиент воспринимает, что на указанную точку была подведена мышка (кнопка на которую нужно нажать как и положено подсвечивается), но вот при команде left или right ничего не происходит...

2. При работе двух скриптов запущенных в одной программе и взаимодействующих с разными клиентами в моменты одновременного перемещения и нажатия кнопок в одном из клиентов нажатия не происходит. Это можно как то исправить?

3. Можно как то отвязать мышку, которую использует программа от реальной? Натыкался на программы которые делают 2 курсора на 2 мышки, но ничего хорошего из этого не вышло (программа пытается схватить первичную несуществующую мышку).
П.с. Стоит Windows 10 x64 (можно тыкать в программы для win 8)

4. Если пункт 3 выполнить нереально, то возникает следующая проблема. Во время работы скрипта смотрю видео из ВК в полноэкранном режиме и в этот момент программа вообще не видит клиент игры (она передвигается по нужным координатам, но все нажатия уходят вникуда). Как это можно исправить?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 19.12.2014, 0:16
Сообщение #2


***********

Модератор UOPilot
Сообщений: 9.462
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27674
Пользователь №: 11.279



Цитата
Пишу кликер для замечательной игры EVE Online

Кликер пишет разраб - WKnight, вы пишите скрипты =)
Цитата
1. Иногда (крайне редко, но все же) программа перестает воспринимать команды клика.
Перед кликами естественно идет команда Move с теми же координатами, что и клик. Скорость скрипта 30 мс. Сам клиент воспринимает, что на указанную точку была подведена мышка (кнопка на которую нужно нажать как и положено подсвечивается), но вот при команде left или right ничего не происходит...

kleft kright
left воспринимают далеко не все приложения. Во время этой невосприимчивости, если сделать клик мышкой, то он произойдет?
Цитата
2. При работе двух скриптов запущенных в одной программе и взаимодействующих с разными клиентами в моменты одновременного перемещения и нажатия кнопок в одном из клиентов нажатия не происходит. Это можно как то исправить?

Либо продумывать логику так, чтобы этих одновременных перемещений не было, либо ставить астер/виртуалки.
Если работает без move, то убрать move.
Цитата
3. Можно как то отвязать мышку, которую использует программа от реальной? Натыкался на программы которые делают 2 курсора на 2 мышки, но ничего хорошего из этого не вышло (программа пытается схватить первичную несуществующую мышку).

Из читанного мною о подобных программах и их реализациях ничего хорошего сказать не могу. По сути в винде все так же одна мышь, просто два курсора отображется. При работе со второй в моменты кликов происходит обыкновенное перемещение и нажатие первой мыши.
Цитата
4. Если пункт 3 выполнить нереально, то возникает следующая проблема. Во время работы скрипта смотрю видео из ВК в полноэкранном режиме и в этот момент программа вообще не видит клиент игры (она передвигается по нужным координатам, но все нажатия уходят вникуда). Как это можно исправить?

Астер/виртуалки/убрать за пределы видимой области экрана.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
maxximum3000
сообщение 19.12.2014, 12:37
Сообщение #3


**

Neophyte
Сообщений: 18
Регистрация: 18.12.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 17.189
Возраст: 24



Не так выразился. Скрипт на кликер ))

1. Если сделать реальный клик мышкой, то он произойдет. Для дальнейшей нормальной работы приходится перезапускать программу (UOPilot). Никакие другие действия не помогают. А так команды left клиент воспринимает очень даже хорошо.

2. На данный момент продумать реально, дальше при расширении скрипта этого
сделать будет невозможно (слишком много будет случайных промежутков времени между кликами).

3. Ну... жаль.

4. Астер? Виртуалки не катят. Ставил VirtualBox, но на нем так и не смог запустить клиент (требует шейдер 3), обмануть ничем не получилось.


Так же добавлю еще пару пунктов:

5. UOPilot может проверять по цвету в определенной точке, но с данной игрой это не прокатывает. Следующий скрипт не срабатывает:

move координаты1
If координаты1 цвет1
left координаты1
wait 1s
end_if

При проверке, он находит нужный цвет и делает нажатие мышкой в эти координаты. НО, если цвет он не находит, то он все равно делает нажатие в эти координаты (переменная цвет1 игнорируется, тем самым игнорируется команда "if" и выполняется все команды вписанные во внутрь).

Или же это я криворукий и не так что то пишу?

6. Можно ли сделать проверку не по цвету, а по картинке? К примеру у меня есть картинка 32х32 пикселя и если UOPilot находит точное совпадение этой картинки в фрагменте окна клиента 100х100 пикселей то делает/не делает определенные клики (обычная привязка к команде "if")?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 19.12.2014, 16:20
Сообщение #4


***********

Модератор UOPilot
Сообщений: 9.462
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27674
Пользователь №: 11.279



Цитата
Или же это я криворукий и не так что то пишу?

давайте код.
Цитата
Можно ли сделать проверку не по цвету, а по картинке?

findimage


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
maxximum3000
сообщение 19.12.2014, 17:10
Сообщение #5


**

Neophyte
Сообщений: 18
Регистрация: 18.12.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 17.189
Возраст: 24



Цитата(maxximum3000 @ 19.12.2014, 12:37) *



move координаты1
If координаты1 цвет1
left координаты1
wait 1s
end_if





Вот именно этот фрагмент кода. Даже если пишу только его (на банальную проверку) то он игнорирует условия "if"

Вот такой скрипт:
Цитата


move 1243, 416
If 1243, 416 10213092
left 1243, 416
wait 1s
end_if
wait 5s


В идеале, если по координатам 1243, 416 UOPilot не находит цвета 10213092 то по скрипту просто идет пауза и он начинается заново. У меня же даже если указанного цвета НЕТ по координатам 1243, 416, то все равно происходит клик в эти координаты.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 19.12.2014, 19:30
Сообщение #6


***********

Модератор UOPilot
Сообщений: 9.462
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27674
Пользователь №: 11.279



Цитата
У меня же даже если указанного цвета НЕТ по координатам 1243, 416, то все равно происходит клик в эти координаты.

Это фантастика. Добавьте внутрь ифа:
get color #color 1243, 416
log #color


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
maxximum3000
сообщение 19.12.2014, 22:17
Сообщение #7


**

Neophyte
Сообщений: 18
Регистрация: 18.12.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 17.189
Возраст: 24



Цитата(DarkMaster @ 19.12.2014, 19:30) *

Это фантастика. Добавьте внутрь ифа:
get color #color 1243, 416
log #color



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


Вот такая проблема возникла с поиском изображения:

Цитата
set $a findimage (1550 55 1600 120 (veld.bmp) %crds 2 40 -1 10)
if $a > 0

msg найден Велдспар

else

msg Велдспара нет
end_if




Вот искомая картинка Прикрепленный файл  veld.bmp ( 2,75 килобайт ) Кол-во скачиваний: 509

Она находится в координатах от 1560 65 до 1590 95


В данном примере скрипт ее распознает: Прикрепленный файл  Screenshot_2.bmp ( 34,99 килобайт ) Кол-во скачиваний: 540



Но вот в этом примере он ее не видит: Прикрепленный файл  Screenshot_1.bmp ( 35,65 килобайт ) Кол-во скачиваний: 518
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 19.12.2014, 22:26
Сообщение #8


***********

Модератор UOPilot
Сообщений: 9.462
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27674
Пользователь №: 11.279



А вас не смущает, что камни разные? Присмотритесь внимательнее. Veld.bmp можно сделать гораздо меньше 5*5 пикселей будет достаточно.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
maxximum3000
сообщение 19.12.2014, 22:45
Сообщение #9


**

Neophyte
Сообщений: 18
Регистрация: 18.12.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 17.189
Возраст: 24



Цитата(DarkMaster @ 19.12.2014, 22:26) *

А вас не смущает, что камни разные? Присмотритесь внимательнее. Veld.bmp можно сделать гораздо меньше 5*5 пикселей будет достаточно.



По началу я тоже думал, что они разные, но оказалось обман зрения...

Эти же 2 картинки, вырезал все лишнее (оставил сами камни). Если открыть фото вивером и приблизить до максимума, то можно увидеть, что сами камни одинаковые, но в них не находится и 40% совпадения при 10% погрешности... Или я что то не так понял?

Прикрепленный файл  Screenshot_2.bmp ( 3,57 килобайт ) Кол-во скачиваний: 488

Прикрепленный файл  Screenshot_1.bmp ( 3,57 килобайт ) Кол-во скачиваний: 482
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 20.12.2014, 1:10
Сообщение #10


***********

Модератор UOPilot
Сообщений: 9.462
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27674
Пользователь №: 11.279



края разные. при вашем изображении фон тоже ищется. вырезайте центр камня.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
maxximum3000
сообщение 26.12.2014, 15:45
Сообщение #11


**

Neophyte
Сообщений: 18
Регистрация: 18.12.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 17.189
Возраст: 24



Еще один вопрос появился.
Есть 2 скрипта использующие клики мышки. Можно ли сделать так, что бы в момент клика первого скрипта, второй вставал на паузу, пока мышь занята?

К примеру:
Первый скрипт выполняет команды:
move x y
left x y

В этот момент второй выполняет аналогичные команды, только с другим окном. Нужно, что бы он ждал, пока первый не выполнит эти команды (ну или нное количество милисекунд после задействования курсора другим скриптом).
Это вообще реализуемо?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 26.12.2014, 16:15
Сообщение #12


********

Master
Сообщений: 1.395
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 21043
Пользователь №: 16.156



да


команды:

start_script <номер вкладки>
stop_script
pause_script

параметры такие же как и в первой комманде

пример.

pause_script 2 // останавливаем 2 скрипт
.
.
.move 0, 0
.
.
start_script 2 // продолжаем работу второго скрипта
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 26.12.2014, 17:02
Сообщение #13


***********

Модератор UOPilot
Сообщений: 9.462
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27674
Пользователь №: 11.279



Цитата
start_script 2 // продолжаем работу второго скрипта

в данном случае resume_script, т.к. мы не с начала стартуем, а продолжаем работу с текущей позиции, хотя насколько помню старт поведет себя аналогично, если скрипт на паузе. Тем не менее более корректно будет именно resume_script.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
maxximum3000
сообщение 26.12.2014, 18:29
Сообщение #14


**

Neophyte
Сообщений: 18
Регистрация: 18.12.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 17.189
Возраст: 24



Цитата(Cockney @ 26.12.2014, 16:15) *

да
команды:

start_script <номер вкладки>
stop_script
pause_script

параметры такие же как и в первой комманде

пример.

pause_script 2 // останавливаем 2 скрипт
.
.
.move 0, 0
.
.
start_script 2 // продолжаем работу второго скрипта




Сделал таким образом. (в конце resume_script). Скорость скрипта стояла 50. В итоге закончилось все тем, что скрипт 0 поставил на паузу скрипт 1, а скрипт 1 успел поставить скрипт 0 на паузу. Пришел и увидел скрипт 1 и скрипт 0 на паузе (работают только они)... Косяк...


Фрагмент скрипта 0:

Цитата
send {F1}
wait 1s
pause_script 1
move 612, 53
left 612, 53
move 612, 53
resume_script 1
wait 750
send {F2}



Фрагмент скрипта 1:
Цитата
wait 1s
pause_script 0
move 730, 12
left 730, 12
resume_script 0



Пауза сработала одновременно. Поставить скорость скрипта ниже 50 не представляется возможным, т.к. на скорости 30 только 90% кликов срабатывают, на скорости 20 около 70%, на скорости 15 только 20%, на скорости 0 не срабатывает ни один клик мышкой.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 26.12.2014, 19:53
Сообщение #15


***********

Модератор UOPilot
Сообщений: 9.462
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27674
Пользователь №: 11.279



Цитата
Пауза сработала одновременно. Поставить скорость скрипта ниже 50 не представляется возможным, т.к. на скорости 30 только 90% кликов срабатывают, на скорости 20 около 70%, на скорости 15 только 20%, на скорости 0 не срабатывает ни один клик мышкой.

делайте ручные wait.
Так же можно завести третий скрипт, который будет управлять двумя другими.
В скрипте 1 делаем:
Код

// Устанавливаем флаг, что вкладке требуется клик
set #needClick 1
// Ждем разрешения от управляющего скрипта
while_not  %clickAccept.3 [ 1 ] = 1
    wait 10
end_while
// Кликаем
move x y
left x y
// Устанавливаем флаг, что клик более не требуется.
set #needClick 0
// Ждем снятия разрешения на клик.
while_not %clickAccept.3 [ 1 ] = 0
    wait 10
end_while

В скрипте 2 делаем почти так же, только индекс в массиве 2, а не 1:
Код
set #needClick 1
while_not  %clickAccept.3 [ 2 ] = 1
    wait 10
end_while
move x y
left x y
set #needClick 0
while_not %clickAccept.3 [ 2 ] = 0
    wait 10
end_while

в скрипте 3:
Код
:start
// Перебираем вкладки 1 и 2
for #i 1 2 1
    // Если вкладке нужен клик
    if  #needClick.#i = 1
        // Получаем номер другой вкладки. Можно ифом, но мне так больше нравится.
        set #pausedScript 2 - #i /2
        // Ставим на паузу другую вкладку.
        pause_script #pausedScript
        // Даем разрешение на клик вкладке, запросившей этот клик.
        set %clickAccept [ #i ] 1
        // Ожидаем пока вкладке больше не понадобится клик.
        while #needClick.#i = 1
            wait 10
        end_while
        // Снимаем разрешение на клик.
        set %clickAccept [ #i ] 0
        // Продолжаем работу другого скрипта.
        resume_script #pausedScript
    end_if
end_for
goto start

Немного громоздко, но должно стабильно работать.

Сообщение отредактировал DarkMaster - 1.3.2015, 8:22


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
maxximum3000
сообщение 26.12.2014, 20:00
Сообщение #16


**

Neophyte
Сообщений: 18
Регистрация: 18.12.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 17.189
Возраст: 24



Благодарю, буду пробовать.


Вопрос в догонку. Какие шрифты русского языка стоят на UOPilot? У меня англоязычная win 10 и когда я ставлю русский язык в пилоте, то за место текста вижу вопросительные знаки... (IMG:style_emoticons/default/sad.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
maxximum3000
сообщение 26.12.2014, 20:21
Сообщение #17


**

Neophyte
Сообщений: 18
Регистрация: 18.12.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 17.189
Возраст: 24



Цитата
:start
// Перебираем вкладки 1 и 2
for #i 1 2 1
// Если вкладке нужен клик
if #needClick.#i = 1
// Получаем номер другой вкладки. Можно ифом, но мне так больше нравится.
set #pausedScript #a 2 - #i /2
// Ставим на паузу другую вкладку.
pause_script #tmp
// Даем разрешение на клик вкладке, запросившей этот клик.
set %clickAccept [ #i ] 1
// Ожидаем пока вкладке больше не понадобится клик.
while #needClick.#i = 1
wait 10
end_while
// Снимаем разрешение на клик.
set %clickAccept [ #i ] 0
// Продолжаем работу другого скрипта.
resume_script #pausedScript
end_if
end_for
goto start



В данном коде ругается на:
set #pausedScript #a 2 - #i /2


Пишет:
set - (6): Символ не распознан (pos:1 '#a 2 - 1 /2')
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
maxximum3000
сообщение 26.12.2014, 20:32
Сообщение #18


**

Neophyte
Сообщений: 18
Регистрация: 18.12.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 17.189
Возраст: 24



Разобрался сам.

В строчке
set #pausedScript #a 2 - #i /2
лишнее #a
Выглядеть должна так:
set #pausedScript 2 - #i /2

Строчка
pause_script #tmp
должна выглядеть так:
pause_script #pausedScript
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 26.12.2014, 20:40
Сообщение #19


***********

Модератор UOPilot
Сообщений: 9.462
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27674
Пользователь №: 11.279



Цитата
Вопрос в догонку. Какие шрифты русского языка стоят на UOPilot? У меня англоязычная win 10 и когда я ставлю русский язык в пилоте, то за место текста вижу вопросительные знаки... sad.gif

Там не со шрифтами, а с кодировкой хрень какая-то.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 26.12.2014, 21:17
Сообщение #20


***********

Модератор UOPilot
Сообщений: 9.462
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27674
Пользователь №: 11.279



Там в 3 скрипте еще косяк был с именем переменной и индексом в 1 скрипте. Поправил.

Сообщение отредактировал DarkMaster - 26.12.2014, 21:20


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

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