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

 
Ответить в эту темуОткрыть новую тему
> Переместить камеру в ЛА2
BlackMetal
сообщение 23.1.2014, 10:39
Сообщение #1


**

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



Цитата
set #w 75
kright_down #w, 260
:main
move #w, 260
set #w #w + 1
goto main


Мне как то нужно сделать скрипт, который бы плавно линейно двигал камеру в л2. Но почему то не срабатывает. Курсор движется, правая кнопка вроде так же зажимается.. но камера почему то все таки не движется, сталкивался кто?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 23.1.2014, 13:55
Сообщение #2


***********

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



Открываем настройки, смотрим галки:
перемещать курсор в точку клика
возвращать курсор
использовать kleft v.2.17
Экспеременируем с галками. Первые две лучше вырубить, последнюю в обоих вариантах пробовать.

А левая кнопка мыши срабатывает? Какие-то действия вообще проходят мышью?


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


**

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



Цитата(DarkMaster @ 23.1.2014, 13:55) *

Открываем настройки, смотрим галки:
перемещать курсор в точку клика
возвращать курсор
использовать kleft v.2.17
Экспеременируем с галками. Первые две лучше вырубить, последнюю в обоих вариантах пробовать.

А левая кнопка мыши срабатывает? Какие-то действия вообще проходят мышью?


Да как бы да все работает все клавиши посылает, от пилота защиты никакой там нет.

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

Вообщем не получается. Может знает кто софт для программирования перемещения мыши? Т.е мне нужно создать плавное перемещение мыши для съемок фрагментов мувика.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 23.1.2014, 15:08
Сообщение #4


***********

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



Можно попробовать еще kleft верии 2.17. Он у меня отжимал как раз исправно отжимал в подобных ситуациях.


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


**

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



тема АП! Забил я тогда, так и не нашел способо двигать камеру плавно программно.

щас снова решил искать решение и столкнулся со следущим, каким образом клиент л2 может блокировать функцию MOVE пилота?.. как с этим можно бороться?

Например моя мышь движется программно по оси Х достигает края окна л2 и все стопорится.
Что можно попробовать? Клиент даже не инновоский, а фришки с убитым ГГ.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 19.10.2014, 7:44
Сообщение #6


***********

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



Цитата
Например моя мышь движется программно по оси Х достигает края окна л2 и все стопорится.

В пределах окна все нормально работает?
Окно все время находится на переднем плане и активно?


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


**

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



Цитата(DarkMaster @ 19.10.2014, 7:44) *

В пределах окна все нормально работает?
Окно все время находится на переднем плане и активно?


если окно l2 не активно, курсор нормально программно перемещается.

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

по доте2 все движется.

Вообще есть какие нибудь девайсы с помощью которых можно управлять курсором очень плавно?
Мне это нужно чтоб снимать кадры из ИГР для мувиков, т.е по сути мне нужен "СТЕДИКАМ" но программный.

Есть идеи что можно использовать для моей цели?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 19.10.2014, 9:09
Сообщение #8


***********

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



Мое предположение, как работает это дело в л2.
1) Л2 постоянно считывает координаты мыши.
2) При изменении координат мыши происходит перемещение камеры.
3) Л2 слушает устройство мыши и ждет, когда придет событие перемещения. Событие пришедшее с устройства, это не совсем тоже самое, что и события пришедшее через WinApi.
4) Когда приходит событие с устройства - отключается привязка камеры к координатам указателя, курсор возвращается на прежнюю позицию.
5) Привязка к указателю снова включается.

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

Можно так же попробовать эмуляции мыши (k)left|right_up. Игры частенько их воспринимают, как перемещение мыши. Возможно что-то при этом изменится.


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


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26689
Пользователь №: 16.971
Возраст: 29



У меня работает такой вариант:
Использовать kleft 2.17 обязательно выключен!!! В левом верхнем углу (там где параметры цп, хп, мп) табличку надо сдвинуть вниз, хотя бы на 1 пиксель. Чтобы клики были не на неё.
Код
set linedelay 0
set #x #x + 1   //меняем 1 на большее число, будет быстрее поворачивать
move #x 0
kright #x 0
set #x 0


Всё оказалось даже проще:
Код
set linedelay 0
kright 1 0    //меняем 1 на большее число, будет быстрее поворачивать


Код
kright -1 0   //будет поворачивать в обратную сторону, работает только  при linedelay 0
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Mangust_ali
сообщение 29.3.2016, 11:25
Сообщение #10


*

Registred
Сообщений: 3
Регистрация: 14.1.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.670
Возраст: 24



Здравствуйте. Интересная тема - плавное перемещение мыши. И еще интересней, что ответа в интернете насчет этого + uopilot я не нашел. Знаю про галочку "перемещать курсор мыши в точку клика", но было лень проверять, да и вряд ли она меня устроила бы. В общем - выкладываю мою заготовку для плавного перемещения мыши. В моем случае она сделана с кликами, но, думаю, вы справитесь с очисткой от ненужного, да и большинству, наверняка, удобно сразу кликать.
Код

//#LCXBIAS/LCYBIAS  - это отклонение, которое вы можете допустить - каждый раз точность может быть разная. То есть, следует считать #LCX #LCY

самыми верхними левыми координатами воображаемого прямоугольника, внутри которого можно рандомно тыкнуть.
//#STEPS - кол-во шагов движения. Чем дальше конечная точка - тем можно больше( примерно 60). Чем ближе следующая точка - меньше(около 30)
//Примеры вызова

//call LСlick 100, 100, 3, 10, 300, 50
//call LСlick 600, 600, 3, 10, 300, 60
//call LСlick 0, 0, 150, 10, 300, 60
//call LСlick 200, 100, 150, 10, 300, 30

proc LClick #LCX #LCY #LCXBIAS #LCYBIAS #WAITAFTERMOVE  #STEPS

    //рандомизируем конечные координаты - чтобы не тыкать каждый раз в одну точку
    set #LCX #LCX + random (#LCXBIAS)
    set #LCY #LCY + random (#LCYBIAS)  

    get mouse_pos #xnow #ynow

    set #xincrement ((#LCX - #xnow) / #STEPS)
    set #yincrement ((#LCY - #ynow) / #STEPS)

    :increment
        if (#xnow < #LCX and #xincrement > 0) or (#xnow > #LCX and #xincrement < 0 and #xnow > 0)
            set #xnow #xnow + #xincrement + random(3) - random(3) //немножно двигаем мышь не по прямой
        end_if
        if (#ynow < #LCY and #yincrement > 0) or (#ynow > #LCY and #yincrement < 0 and #ynow > 0)
            set #ynow #ynow + #yincrement + random(3) - random(3)
        end_if
    move #xnow #ynow
    // log xnow #xnow ynow #ynow LCX #LCX LCY #LCY xincrement #xincrement yinrcement #yincrement
    if (#xnow < #LCX and #xincrement > 0) or (#xnow > #LCX and #xincrement < 0 and #xnow > 0)
        goto increment
    end_if
        if (#ynow < #LCY and #yincrement > 0) or (#ynow > #LCY and #yincrement < 0 and #ynow > 0)
        goto increment
    end_if

    move #LCX, #LCY                    // перемещаем курсор  до конца. ведь мы делили на шаг грубо
    wait #WAITAFTERMOVE + random (10)             // задержка
    left_down #LCX, #LCY               // зажатие кнопки
    wait 2 + random (1)                // задержка
    left_up #LCX, #LCY                 // отпускание кнопки
    wait #WAITAFTERMOVE + random (10)             // задержка
end_proc                           // конец процедуры клика левой кнопкой


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

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

 

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