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

 
Ответить в эту темуОткрыть новую тему
> Движения мышки
DenyaBanan
сообщение 3.6.2020, 20:27
Сообщение #1


*

Registred
Сообщений: 5
Регистрация: 3.6.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.662
Возраст: 20



Дорогие форумчане, подскажите, как сделать движения мыши через нампад в uopilot'e?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 4.6.2020, 1:25
Сообщение #2


**********

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



Имеется ввиду нажали на цифру 6 и курсор сдвинулся вправо, на 4 влево?
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DenyaBanan
сообщение 4.6.2020, 15:02
Сообщение #3


*

Registred
Сообщений: 5
Регистрация: 3.6.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.662
Возраст: 20



Цитата(cirus @ 4.6.2020, 2:25) *

Имеется ввиду нажали на цифру 6 и курсор сдвинулся вправо, на 4 влево?


Да, именно эта возможность меня интересует, потому что при выборе игры и посылания команды Send для клавиши Num6 курсор не реагирует.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 5.6.2020, 1:48
Сообщение #4


**********

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



Код
--lua
local ffi = require("ffi")
local user = ffi.load('User32.dll')
local VK_NUMPAD2, VK_NUMPAD4, VK_NUMPAD6, VK_NUMPAD8 = 0x62,0x64,0x66,0x68
ffi.cdef[[
typedef short           SHORT;
SHORT GetKeyState(int nVirtKey);
SHORT GetAsyncKeyState(int vKey);
]]

local delta = 10   -- насколько пикселей смещать курсор
while true do
    local x, y = mouse_pos()
    if user.GetAsyncKeyState(VK_NUMPAD2) ~= 0 then
        move(x, y+delta)
    end
    if user.GetAsyncKeyState(VK_NUMPAD4) ~= 0 then
        move(x-delta, y)
    end
    if user.GetAsyncKeyState(VK_NUMPAD6) ~= 0 then
        move(x+delta, y)
    end
    if user.GetAsyncKeyState(VK_NUMPAD8) ~= 0 then
        move(x, y-delta)
    end

    wait (10)
end
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DenyaBanan
сообщение 5.6.2020, 2:29
Сообщение #5


*

Registred
Сообщений: 5
Регистрация: 3.6.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.662
Возраст: 20



Цитата(cirus @ 5.6.2020, 2:48) *

Код
--lua
local ffi = require("ffi")
local user = ffi.load('User32.dll')
local VK_NUMPAD2, VK_NUMPAD4, VK_NUMPAD6, VK_NUMPAD8 = 0x62,0x64,0x66,0x68
ffi.cdef[[
typedef short           SHORT;
SHORT GetKeyState(int nVirtKey);
SHORT GetAsyncKeyState(int vKey);
]]

local delta = 10   -- насколько пикселей смещать курсор
while true do
    local x, y = mouse_pos()
    if user.GetAsyncKeyState(VK_NUMPAD2) ~= 0 then
        move(x, y+delta)
    end
    if user.GetAsyncKeyState(VK_NUMPAD4) ~= 0 then
        move(x-delta, y)
    end
    if user.GetAsyncKeyState(VK_NUMPAD6) ~= 0 then
        move(x+delta, y)
    end
    if user.GetAsyncKeyState(VK_NUMPAD8) ~= 0 then
        move(x, y-delta)
    end

    wait (10)
end



Не совсем понял как работает данный код. Можно чуть чуть больше описания пожалуйста?

Цитата(DenyaBanan @ 4.6.2020, 16:02) *

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


Разобрался потыкавшись, но объясню суть, мне нужно, чтобы курсор смещался вправо допустим на 50 пикселей, после этого смещался обратно, и так по кругу. Реализуемо ли это в этом скрипте?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 5.6.2020, 11:15
Сообщение #6


**********

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



Цитата
чтобы курсор смещался вправо допустим на 50 пикселей, после этого смещался обратно

Допишите нужные действия.
Код
--lua
local x, y = mouse_pos()  -- получить координаты курсора
move(x+50, y)             -- сместить на 50 пикселей вправо
wait (1000)               -- ждать 1 секунду
x, y = mouse_pos()        -- получить координаты курсора
move(x-50, y)             -- сместить на 50 пикселей влево
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DenyaBanan
сообщение 5.6.2020, 14:11
Сообщение #7


*

Registred
Сообщений: 5
Регистрация: 3.6.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.662
Возраст: 20



Цитата(cirus @ 5.6.2020, 12:15) *

Допишите нужные действия.
Код
--lua
local x, y = mouse_pos()  -- получить координаты курсора
move(x+50, y)             -- сместить на 50 пикселей вправо
wait (1000)               -- ждать 1 секунду
x, y = mouse_pos()        -- получить координаты курсора
move(x-50, y)             -- сместить на 50 пикселей влево



Друг, проблема в том, что игра не воспринимает движения мыши через команду move, либо делает это очень коряво, поэтому я и написал про нумпад, мне нужно именно сделать это через него. Вероятнее всего с отсчетом времени, типо 3 секунды зажа клавиша NUM6 потом 3 секунды NUM4 и так по кругу.

И если не сложно, скажи, как ты пишешь такие скрипты, и где нарыть инфу для них, а то листаю форум, и вообще понять ничего не могу.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 5.6.2020, 14:29
Сообщение #8


**********

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



Цитата
и где нарыть инфу для них

https://uopilot.uokit.com/wiki/index.php?title=Главная
Смотрите список функций.
Цитата
типо 3 секунды зажа клавиша NUM6 потом 3 секунды NUM4

Код
--lua
showwindow(windowhandle(), "MINIMIZE")  -- свернуть окно пилота
wait (1000)

sendex_down ('{num_6}')      -- зажать  num_6
wait (3000)                  -- ждать 3 секунды
sendex_up ('{num_6}')        -- отпустить num_6

wait (1000)

sendex_down ('{num_4}')
wait (3000)
sendex_up ('{num_4}')

showwindow(windowhandle(), "RESTORE")  -- показать окно пилота

Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DenyaBanan
сообщение 5.6.2020, 15:21
Сообщение #9


*

Registred
Сообщений: 5
Регистрация: 3.6.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.662
Возраст: 20



Цитата(cirus @ 5.6.2020, 15:29) *

https://uopilot.uokit.com/wiki/index.php?title=Главная
Смотрите список функций.

Код
--lua
showwindow(windowhandle(), "MINIMIZE")  -- свернуть окно пилота
wait (1000)

sendex_down ('{num_6}')      -- зажать  num_6
wait (3000)                  -- ждать 3 секунды
sendex_up ('{num_6}')        -- отпустить num_6

wait (1000)

sendex_down ('{num_4}')
wait (3000)
sendex_up ('{num_4}')

showwindow(windowhandle(), "RESTORE")  -- показать окно пилота



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

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

 

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