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

> Распознавание нажатий клавиш клавиатуры
qimer
сообщение 24.8.2020, 14:47
Сообщение #1


*

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



Здравствуйте! Прошерстил вроде бы весь мануал по UOPilot но нигде не нашел как прога могла бы считывать нажатия клавиш. Т.е. к примеру есть такая задача, как отметить окна в игре, и чтобы он именно в них искал некие изображения, а не по всему экрану. И это бы осуществлялось например так: подводишь мышь к левому верхнему углу окна и жмешь "пробел", а потом к правому нижнему и тоже нажимаешь "пробел". Очень необходима эта функция и для других реализаций. Очень не хватает справки по всем возможностям программы. Я очень надеюсь, что такая возможность в ней есть

upd: нашел как реализовать одну клавишу через ascii-коды, а как реализовать например "Alt+1"

Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
cirus
сообщение 24.8.2020, 15:29
Сообщение #2


**********

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



код
Код
--lua
local ffi = require("ffi")
ffi.cdef[[short GetAsyncKeyState(int vKey);]]

function getkeystate(key, key2)
    ffi.C.GetAsyncKeyState(key)
    while ffi.C.GetAsyncKeyState(key) == 0 or ffi.C.GetAsyncKeyState(key2) == 0 do wait(10) end  
    while ffi.C.GetAsyncKeyState(key) ~= 0 do wait(10) end  
    workwindow(windowfromcursor())  -- сделать рабочим окно под курсором
    return mouse_pos ()   -- получить координаты мыши
end

log 'clear' log 'mode compact'  -- очистить лог



local sx, sy = getkeystate(18, 49)  -- alt + 1
local ex, ey = getkeystate(18, 50)  -- alt + 2

log(sx, sy, ex, ey)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
qimer
сообщение 24.8.2020, 18:51
Сообщение #3


*

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




cirus, где-нибудь есть полный список команд для uopilot? У меня очередная проблема. Заключается в следующем: я запускаю скрипт, привязываю кликер к окну игры и делаю например getimage, saveimage, а через некоторое время, когда картинка в игре поменялась делаю снова getimage, saveimage но уже в другой файл, то изображения идентичные. Т. е. будто он в начале запомнил изображение и новый вызов getimage его не меняет в памяти. Игра Wurm Online. Там есть прогрессбары стамина, крафтинг, еда, вода. Мне нужно отслеживать изменения в них, а именно, если цвет точки поменялся, то выполнять некие действия, например попить воды. Проблема только в том, чтобы считывать не статичную картинку, а меняющуюся. Помоги плиз. На примере Clickermann там есть функция обновления экрана в памяти и там эти изменения считываются, но функционал убогий очень и медленный
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 25.8.2020, 18:38
Сообщение #4


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 107
Пользователь №: 18.746



Цитата(qimer @ 24.8.2020, 18:51) *

Где-нибудь есть полный список команд для uopilot?

Вся нужная информация собрана в одном месте https://forum.uokit.com/index.php?showtopic=70302 .
Перед созданием темы/вопроса заглядывайте сюда.


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме
qimer   Распознавание нажатий клавиш клавиатуры   24.8.2020, 14:47
cirus   --lua local ffi = require("ffi") f...   24.8.2020, 15:13
qimer   [spoiler=код][code]--lua local ffi = require...   24.8.2020, 15:21
фонарик   [spoiler=код][code]--lua local ffi = require...   4.10.2021, 16:23
qimer   Спасибо больше, cirus! Что бы я без тебя делал...   24.8.2020, 15:39
nykep   cirus, где-нибудь есть полный список команд для u...   25.8.2020, 15:45
cirus   https://uopilot.uokit.com/wiki/index.php?ti...к_ф...   25.8.2020, 1:48
apaul   local arr, a = findimage (startX, startY, endX, ...   4.10.2021, 20:14
cirus   --lua local ffi = require("ffi") ...   5.10.2021, 1:55
фонарик   Товарищ cirus, спасибо вам, пробел отслеживается к...   5.10.2021, 23:33
cirus   --lua local ffi = require("ffi") l...   6.10.2021, 2:08
sutra   Вообще крайне полезная вещь. У меня с тех пор, как...   6.10.2021, 16:02
фонарик   Работает работает :yahoo: Спасибо вам огромное, ми...   6.10.2021, 20:30
фонарик   Интересно, а есть ли возможность при отслеживании ...   6.10.2021, 21:38
DarkMaster   Насколько мне известно только через глобальные хо...   7.10.2021, 8:13
sutra   Фонарик, даю реально работающий пример работы пров...   7.10.2021, 9:59
Gendalfgreen   Выше написан ООчень интересный код . но почему то ...   22.6.2022, 18:02
DarkMaster   Возможно проблемы с областью. Попробуйте искать ме...   23.6.2022, 22:31


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

 

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