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

2 страниц V  1 2 >  
Ответить в эту темуОткрыть новую тему
> Умеет ли pilot делать перетягивание?
optikum
сообщение 19.1.2014, 12:39
Сообщение #1


**

Neophyte
Сообщений: 20
Регистрация: 19.1.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 16.562



Умеет ли программа делать перетягивание, нашёл поиском несколько тем, везде писали что не умеет, но темы правда очень старые...

перепробовал много разных связок типо:
left_down
move
left_up

left
drag
и другие...
ничего что-то не получается, иногда вроде и цепляется, но вот отпускать предмет в конечной точке не отпускает, типо по завершению скрипта водишь мышкой, а оно типо прилипло к курсору....Спасибо заранее за подсказки!
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 19.1.2014, 13:10
Сообщение #2


***********

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



все перетягивается.
1) Добавьте задержки
2) попробуйте kleft
3) есть еще drag, но он вроде ультимовский.


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


**

Neophyte
Сообщений: 20
Регистрация: 19.1.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 16.562



что-то никак не получается, сами функции как я понял работают, типо нажатие клика-перемещение-отжатие клика, это проверил на рабочем столе перемещая ярлык, а вот в игре получается как будто предмет прилепает к курсору, тоесть когда скрипт заканчивается и я вожу уже сам мышку, то предмет какбудто прилипший....добавлял и паузы уже и несколько разного типо kleft up не помогает....залипший предмет на курсоре остаётся....
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 22.1.2014, 17:58
Сообщение #4


***********

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



kleft217 пробовали? Иногда помогает повторный down.


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


**

Neophyte
Сообщений: 20
Регистрация: 19.1.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 16.562



Цитата(DarkMaster @ 22.1.2014, 18:58) *

kleft217 пробовали? Иногда помогает повторный down.

именно kleft217 ? 217 это не ошибка\описка ? .....пробую дальше....
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 22.1.2014, 23:49
Сообщение #6


***********

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



ошибка. Но балбес не я, балбес у нас один человек, которому мы все обязаны.

Залазим в настройки, ищем галку "использовать kleft v.2.17".Ставим/снимаем, пробуем.

У нас способ эмуляции клавиш разный от разных команд send и send217, а мышь зачем-то галкой в настройках меням. Кнайт, завязывай с извращениями разными стандартами, давай лучше за гибкость и kleft217. Путаница уже пошла...


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


**

Neophyte
Сообщений: 20
Регистрация: 19.1.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 16.562



Цитата(DarkMaster @ 23.1.2014, 0:49) *

ошибка. Но балбес не я, балбес у нас один человек, которому мы все обязаны.

Залазим в настройки, ищем галку "использовать kleft v.2.17".Ставим/снимаем, пробуем.

У нас способ эмуляции клавиш разный от разных команд send и send217, а мышь зачем-то галкой в настройках меням. Кнайт, завязывай с извращениями разными стандартами, давай лучше за гибкость и kleft217. Путаница уже пошла...

ну хорошо хоть суть я понял про разную эмуляцию....остальное видимо сдешний специфический юмор для тех кто "в теме")))).....
.....видимо не судьба сделать перетаскивание, у меня немного старее версия (2,27), тут что-то не нахожу такого, видимо тут его ещё нету.....а в 2,34 пилоте мои самопальные скрипты не пашут(...
И ещё вопрос: Нельзя ли сделать чтобы курсор мыши двигался от точки А к точке Б типо как рукой ведёшь мышь, тоесь не мгновенный прыжок из одной точки в другую...

P\s попробовал на версии 2,34 и с и без "использовать kleft v.2.17" всё без разницы, разные повторные downы и апы и клики, не выходит(
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 23.1.2014, 1:00
Сообщение #8


***********

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



а что за приложение? Может на месте что-то получится.

Цитата
И ещё вопрос: Нельзя ли сделать чтобы курсор мыши двигался от точки А к точке Б типо как рукой ведёшь мышь, тоесь не мгновенный прыжок из одной точки в другую...

Можно. Прописывайте кучу move с координатами либо динамически их просчитывайте, например, прибавляя каждый раз по 1/10 от расстояния. Можно при этом добавлять некоторый random(число) пикселей для большей натуральности движения.

Главное забыл! Потыкайте галки "перемещать курсор в точку клика" и "возвращать курсор". Очень часто их положение становится причиной многих бед.


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


**

Neophyte
Сообщений: 20
Регистрация: 19.1.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 16.562



Цитата(DarkMaster @ 23.1.2014, 2:00) *

а что за приложение? Может на месте что-то получится.
Можно. Прописывайте кучу move с координатами либо динамически их просчитывайте, например, прибавляя каждый раз по 1/10 от расстояния. Можно при этом добавлять некоторый random(число) пикселей для большей натуральности движения.

Главное забыл! Потыкайте галки "перемещать курсор в точку клика" и "возвращать курсор". Очень часто их положение становится причиной многих бед.

да, "расписать кучу" с рандомными значениями это я тоже думал, а готового что-то типо указал начальные и конечные координаты - такого ничего нет?

всё, решил задачу, ура) строк move понадобилось пару десятков с координатами не чётко совпадающими с kleft_up, а приблизительными у этой точки отжатия, чтобы курсор какбы подвигался некое время у места отжатия kleft_up.....

типо так:
kleft_down 100, 100
.....
move 900, 898
move 900, 899
move 900, 900
kleft_up 900, 900
(ну и wait само собой между строк)

DarkMaster, спасибо, как никак, но помогли)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 23.1.2014, 1:54
Сообщение #10


***********

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



чтобы не писать кучу вейтов между каждой строкой можно использовать set linedelay, который глобально(для скрипта) изменит задержку между строк.

Цитата
готового что-то типо укачал начальные и конечные координаты - такого ничего нет?

готового нет, но ничего не мешает вам накидать небольшую подпрограмму и вызывать ее через gosub. Там будет десяток строк.


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


**

Neophyte
Сообщений: 20
Регистрация: 19.1.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 16.562



Цитата(DarkMaster @ 23.1.2014, 2:54) *

чтобы не писать кучу вейтов между каждой строкой можно использовать set linedelay, который глобально(для скрипта) изменит задержку между строк.


нет, так мне наверно не подходит, это только кусок у меня, а есть другие вейты с другими значениями в скрипте..... да и мне не трудно написать где надо wait )

Цитата(DarkMaster @ 23.1.2014, 2:54) *

готового нет, но ничего не мешает вам накидать небольшую подпрограмму и вызывать ее через gosub. Там будет десяток строк.


ага, понял, новая информация для размышлений) буду думать, сочинять.....
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 23.1.2014, 2:14
Сообщение #12


***********

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



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

Чуть поясню. Мы имеем блок:
Код
command
wait 100
command
wait 100
command
wait 100

Все очевидно, у нас доп задержка в 100 мс между строк. Именно дополнительная. Между строк всегда есть некторая задержка. Ее значение можно увидеть в самом низу под скриптом(значение по умолчанию меняется в закладке "Еще").
Код

set linedelay 100
command
wait 100
command
wait 100
command
wait 100

Теперь у нас задержка между строк уже равна 300 мс. Т.к. помимо wait 100 мы дважды поймаем задержку между строк сначала при переходе к wait, а потом непосредственно к команде.
Код

set #linedelayBack linedelay
set linedelay 100
command
command
command
set linedelay #linedelayBack

Данный код позволяет выполнить некторый блок с установленными задержками между строк. При этом после выполнения блока вернется прежнее значение задержки. Это может быть очень удобно в том числе для вашей подпрограммы.

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


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


**

Neophyte
Сообщений: 20
Регистрация: 19.1.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 16.562



хочу сказать сразу, я новичёк в этом деле....знаком только с основами так сказать и многих функций не знаю.......вот что пытаюсь придумать по поводу эмуляции "типо движение мышки рукой"....это оказалось труднее понять, ну лично мне, и сформировать для начала математическую модель того, как скрипт должен считать было сложно, вот для начала мои фантазии не законченные, с надеждой что пхнёт кто меня в нужное направление....

wait 2000
:1
Get Mouse_Pos #x #y //беру текущие координаты нахождения курсора
Set #x + random(2) //добавляю рандомно пару координат, но если добавлять одно то выйдет перемещение по прямой наверно....
Set #y + random(2) //добавляю рандомно пару координат
move #x #y //перемещение в ту точку
//надо придумать условие, если координаты больше или равны например 800, 600 (то есть конечной точки, где должен окончательно оказаться курсор), то
goto 2 //то продолжаем скрипт уже дальше по плану, иначе возврат к началу, берем опять координаты текущего расположения курсора, прибавляем немного и опять условие.....
else
goto 1
:2
......
end_script
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 23.1.2014, 19:25
Сообщение #14


***********

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



Начало в ту сторону. Я бы предложил вам для начала определиться с тем насколько плавно должна двигаться мышка. По 1 пикселю вы ее все равно двигать не будете. Пусть у нас будет условно 10 пикселей за ход +/- рандомы. Вычисляем коэффициент (x1-x2)/(y1-y2) стартовые и конечные координаты. Это позволит нам понять в каких пропорциях необходимо прибавлять x и y. Поводу последнего клика - проще всего сделать тупой иф на расстояние между точками. point_distance в помощь.

// goto - плохо, зло это.


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


**

Neophyte
Сообщений: 20
Регистрация: 19.1.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 16.562



за стартовую позицию я хочу использовать команду Get Mouse_Pos, тоесть чтобы потом указывать только конечную точку назначения, а не указывать стартовые и конечные координаты....если конечно это выйдет....


ну ладно, по порядку, поидее должно работать хоть както это выражение ?

:1
Get Mouse_Pos #x #y
Set #x + random(20)
Set #y + random(20)
move #x #y
goto 1

и так по кругу, должен курсор двигаться куда-то по увеличению координат поидее, а он на месте, не пойму....
ещё нужно будет условие, не всегда ведь нужно будет плюсовать координаты, будут такие ситуации когда и минусовать нужно будет, но это по ходу дела уже...
почему goto зло? на моей небольшой практике вообще не замечал проблемм с этой командой.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 23.1.2014, 19:58
Сообщение #16


***********

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



Цитата
ну ладно, по порядку, поидее должно работать хоть както это выражение ?

Не должно. Ошибочка:
Set #x + random(20)
видимо имелось ввиду
Set #x #x + random(20)
со второй координатой так же.

Цитата
почему goto зло? на моей небольшой практике вообще не замечал проблемм с этой командой.

Читаемость сильно падает сразу же.


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


**********

Группа: Администраторы
Наличность: 0
Пользователь №: 1.833



Цитата(DarkMaster @ 23.1.2014, 20:58) *

Читаемость сильно падает сразу же.


Код
// инициализация переменных
// ...
:start
// основной цикл
goto start
// всякий мусор типа процедур
// ...


Возможно зависит от того как применять? ;-)


--------------------
Discord: tatikom
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
optikum
сообщение 23.1.2014, 20:44
Сообщение #18


**

Neophyte
Сообщений: 20
Регистрация: 19.1.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 16.562



Цитата(DarkMaster @ 23.1.2014, 20:58) *

Не должно. Ошибочка:
Set #x + random(20)
видимо имелось ввиду
Set #x #x + random(20)
со второй координатой так же.
Читаемость сильно падает сразу же.


да, действительно, как это я так.....)

предварительно, вот так двигается, это главное пока
:1
Get Mouse_Pos #x #y
Set #x1 #x + random(20)
Set #y1 #y + random(20)
move #x1 #y1
goto 1

и ещё такой же кусок только с отниманием координат, пока другого ниче в голову не приходит...
нужно подумать теперь также над условиями....

а что использовать вместо goto тогда?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
optikum
сообщение 23.1.2014, 21:14
Сообщение #19


**

Neophyte
Сообщений: 20
Регистрация: 19.1.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 16.562



пока вот так, из любой части экрана курсор медленно, не уверенно ползёт к координатам 500, 500 ....

:1
Get Mouse_Pos #x #y
Set #x2 500 //конечные координаты
Set #y2 500

if #x > #x2
Set #x1 #x - random(20)
else
Set #x1 #x + random(20)
end_if


if #y > #y2
Set #y1 #y - random(20)
else
Set #y1 #y + random(20)
end_if


move #x1 #y1
goto 1


про point_distance ничего не нашёл, надо както останавливать когда курсор в районе конечных координат...

как записать условие if #x1 больше или меньше или равно на 10 пунктов координат, чем #x2? тоесть чтобы при координатах х в диапазоне 490-510 я мог выполнить уже другое условие и остановить текущее....
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 23.1.2014, 23:05
Сообщение #20


***********

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



Цитата
Возможно зависит от того как применять? ;-)

Это и у меня так сделано. Оно как бы к гото имеет весьма отдаленное отношение.

Цитата
point_distance

пкм/числа
описание в справке/истории развития. Там работает ctrl+f.
кстати можно и ручками просчитать. Теорему пифагора никто еще не отменял. Правда будет медленнее. Поинт дистанс свежий оператор достаточно.

Если делать по моему варианту x1-x2 и y1-y2, то можно будет избежать if'ов, т.к. у тебя будут автоматом получаться отрицательные/положительные числа.

Сообщение отредактировал DarkMaster - 23.1.2014, 23:07


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

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

 

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