Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

UoKit.com Форумы _ UO Pilot _ передвижение по карте

Автор: howward 21.4.2021, 15:00

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

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


Эскизы прикрепленных изображений
Прикрепленное изображение

Автор: DarkMaster 22.4.2021, 1:18

left_down|left_up
kleft_down|kleft_up
move
Но разумнее оставить в виде плеера, чтобы работало в перекрытых окнах и не дергало мышь.

Автор: howward 22.4.2021, 19:29

Цитата(DarkMaster @ 22.4.2021, 1:18) *

left_down|left_up
kleft_down|kleft_up
move
Но разумнее оставить в виде плеера, чтобы работало в перекрытых окнах и не дергало мышь.


да в этом плане тонкие настройки плеера очень удобны
просто не всегда он работает стабильно - иногда игра вылетает - такую ошибку замечал на многих эмуляторах андроид игр
но под управлением windows таких ошибок нет
поэтому интерес и препочтения сражу же переходят к пилоту)
хотелось знать можно ли сделать такое управление в пилоте - аналогичным как и в плеере


Автор: howward 27.4.2021, 12:37

столкнулся с такой проблемой, что комбинации клавиш или отдельные не работают в приложении ldplayer
на примере этого скрипта - может дело не в команде которую прописываю, а в правильности набора?

code
Код

--lua
-- island to pc
kleft (967, 474, "abs")
    wait(700)
kleft (1057, 612, "abs")
    wait(700)
kleft (755, 175, "abs")
    wait(700)
kleft (755, 368, "abs")
    wait(700)
kleft (777, 849, "abs")
    wait(700)
kleft (962, 930, "abs")
    wait(6000)
kleft (966, 562, "abs")
    wait(700)
kleft (890, 596, "abs")
    wait(700)
kleft (1043, 450, "abs")
    wait(1000)
sendex ("@{Tab}")
sendexdelay (100)
    wait(2000)
kleft (491, 1029, "abs")
    wait(1000)
kleft (813, 707, "abs")
    wait(1000)
kleft (700, 1039, "abs")
    wait(1000)
sendex ("^v")
    wait(2000)
sendex_down ("{Enter}")
sendexdelay (100)
sendex_up ("{Enter}")
    wait(2000)
kleft (1109, 958, "abs")
    wait(5000)
kleft (966, 588, "abs")
    wait(700)
kleft (1096, 582, "abs")
    wait(700)
kleft (974, 882, "abs")
    wait(700)
kleft (939, 1009, "abs")
    wait(700)


здесь не всегда срабатывает enter и alt+tab
приходится перезапускать скрипт раза три - и на третий раз все команды сработывают - почему так?

Автор: howward 27.4.2021, 12:37

столкнулся с такой проблемой, что комбинации клавиш или отдельные не работают в приложении ldplayer
на примере этого скрипта - может дело не в команде, которую прописываю, а в правильности набора?

code
Код

--lua
-- island to pc
kleft (967, 474, "abs")
    wait(700)
kleft (1057, 612, "abs")
    wait(700)
kleft (755, 175, "abs")
    wait(700)
kleft (755, 368, "abs")
    wait(700)
kleft (777, 849, "abs")
    wait(700)
kleft (962, 930, "abs")
    wait(6000)
kleft (966, 562, "abs")
    wait(700)
kleft (890, 596, "abs")
    wait(700)
kleft (1043, 450, "abs")
    wait(1000)
sendex ("@{Tab}")
sendexdelay (100)
    wait(2000)
kleft (491, 1029, "abs")
    wait(1000)
kleft (813, 707, "abs")
    wait(1000)
kleft (700, 1039, "abs")
    wait(1000)
sendex ("^v")
    wait(2000)
sendex_down ("{Enter}")
sendexdelay (100)
sendex_up ("{Enter}")
    wait(2000)
kleft (1109, 958, "abs")
    wait(5000)
kleft (966, 588, "abs")
    wait(700)
kleft (1096, 582, "abs")
    wait(700)
kleft (974, 882, "abs")
    wait(700)
kleft (939, 1009, "abs")
    wait(700)


здесь не всегда срабатывает enter и alt+tab
приходится перезапускать скрипт раза три - и на третий раз все команды срабатывают - почему так?

Автор: cirus 27.4.2021, 12:54

Попробуйте так:

Код
--lua
sendex ("@{}")  -- зажать Alt
wait (100)
sendex ("{Tab}")  -- нажать Tab
wait (100)
sendex ()  -- отпустить все модификаторы

Автор: howward 27.4.2021, 14:28

спасибо
из пяти раз один не сработал

sendex ("{Enter}{}")
sendex ()
__________
кнопка enter работала каждый раз


code
Код

--lua
while true do
sendex ("w{}")
    wait (100)
sendex ()
wait (600)
    sendex ("a{}")
        wait (100)
    sendex ()
    wait (600)
        sendex ("s{}")
            wait (100)
        sendex ()
        wait (600)
            sendex ("d{}")
                wait (100)
            sendex ()
            wait (600)
wait (10)
end


функции кнопок движение w\a\s\d: вверх \ вправо \ вниз \ влево - т.е. описать квадрат,
а на деле получаю какое-нибудь одно движение или просто нет движений
три вариации send пробовал и ничего...

на сайте не нашел как сделать двойное нажатие кнопки или нажатие кнопки определенное количество раз (прописать нужное количество раз, например, sendex ("s"), с минимальной задержкой?)
подскажите об этом пожалуйста

Автор: cirus 27.4.2021, 14:55

Цитата
из пяти раз один не сработал

Возможно паузы нужно больше делать.
Цитата
sendex ("{Enter}{}")
sendex ()

Нужно так:
Код
sendex ("{Enter}")

Цитата
нажатие кнопки определенное количество раз

Код
--lua
function _sendex(key, count, pause)
    for i=1, count do
        sendex (key)
        wait (pause)
    end
end

wait (3000)
_sendex('w', 5, 300)   -- нажать клавишу w 5 раз с паузой 300 мсек
_sendex('s', 10, 20)   -- нажать клавишу s 10 раз с паузой 20 мсек

Автор: howward 28.4.2021, 14:00

code
Код

--lua
while true do
function _sendex (key, count, pause)
    for i=1, count do
    sendex (key)
    wait (pause)
    end
end
wait (1000)
_sendex ('up', 3, 1000)
_sendex ('left', 3, 1000)
_sendex ('down', 3, 1000)
_sendex ('right', 3, 1000)
wait (10)
end
________________________________

--lua
while true do
function _sendex (key, count, pause)
    for i=1, count do
    sendex (key)
    wait (pause)
    end
end
wait (1000)
_sendex ('w', 3, 1000)
_sendex ('a', 3, 1000)
_sendex ('s', 3, 1000)
_sendex ('d', 3, 1000)
wait (10)
end


на деле sendex выглядит в приложении так:
если учесть что за 15 секунд цикла, я должен увидеть 12 касаний (вверх \ вправо \ вниз \ влево) - то на деле это просиходит раза два, три - и не с самого начала скрипта...
хотя в самом приложении нет никаких фризов - отклик отличный, если делать все вручную - может дело в приложении - мешает защита?

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)