UoKit.com Форумы > Кликер > UO Pilot
DenyaBanan
Дорогие форумчане, подскажите, как сделать движения мыши через нампад в uopilot'e?
Вверх
cirus
Имеется ввиду нажали на цифру 6 и курсор сдвинулся вправо, на 4 влево?
Вверх
DenyaBanan
Цитата(cirus @ 4.6.2020, 2:25)

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


Да, именно эта возможность меня интересует, потому что при выборе игры и посылания команды Send для клавиши Num6 курсор не реагирует.
Вверх
cirus
Код
--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
Цитата(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 пикселей, после этого смещался обратно, и так по кругу. Реализуемо ли это в этом скрипте?
Вверх
cirus
Цитата
чтобы курсор смещался вправо допустим на 50 пикселей, после этого смещался обратно

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

Вверх
DenyaBanan
Цитата(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 и так по кругу.

И если не сложно, скажи, как ты пишешь такие скрипты, и где нарыть инфу для них, а то листаю форум, и вообще понять ничего не могу.
Вверх
cirus
Цитата
и где нарыть инфу для них

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")  -- показать окно пилота


Вверх
DenyaBanan
Цитата(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 оно не работает, при первом скрипте, который ты мне кинул, оно работало, пярм вообще шик, подскажи, как тот можно переделать под это желание
Вверх
Invision Power Board © 2001-2024 Invision Power Services, Inc.
Version for Pocket PC © 2006-2024, IPBest Studio.