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

> CapsLock On, Проверка статуса нажатия/включения
Levo222
сообщение 26.2.2019, 0:55
Сообщение #1


*****

Journeyman
Сообщений: 411
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 15
Пользователь №: 18.689



Задача сделать клавишу автобега в игре где её нет. Проверка включены ли статусные клавиши и автонажатие клавиш движения
Скрипт определения включенности Caps Lock
X2t
У кого-то может работать send217_down/send_down, у меня работает только sendex_down/up, ввиду несостыковки системы с Lua

Код

--lua
do
local back = package.path
package.path = "luaPlugins\\winapi\\?.lua;"..package.path
setfenv(1, require'winapi')
require[[winapi.keyboard]]
package.path = back
end

-- Поолучаем состояние клавиши:
-- state - нажата/отжата
-- toggle - для лампочек горит/не горит.
local pressed_down = false
while 1 do
    local state, toggle = GetKeyState(0x14)
    log(tostring(state),tostring(toggle))
    if  toggle then   -- горит капс
        log("CapsLock on")
        if  not pressed_down then
            log("not pressed_down")
            log("Зажимаю W")
            log("Ждём 3 сек")
            --send217_down ("w")
            sendex_down ("w")
            pressed_down = true
        end
        else
            if  pressed_down then
                --send217_up ("w")
                sendex_up ("w")
                pressed_down = false
            end
    end
wait (100)
end





-- РЕШЕНО --



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


***********

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



Есть хорошая новость - я научился из луа дергать состояние клавиш и капса в том числе:
Код
do
    -- У меня пути не стандартные, чтобы избежать свинарника.
    -- Поэтому тут есть пара "лишних" строк.
    -- Сохраняем _текущие_ пути по которым ищутся модули.
    local back = package.path
    -- Дописываю путь по которому у меня лежат модули.
    package.path = "luaPlugins\\winapi\\?.lua;"..package.path
    -- Подгружаем собственно модуль.
    -- Хз почему, но грузить нужно именно так.
    -- Просто require'winapi' не пашет.
    setfenv(1, require'winapi')
    -- Подгружаем кусок отвечающий за клавиатуру
    require[[winapi.keyboard]]
    -- Возвращаем пути поиска модулей на исходные.
    package.path = back
end

-- Поолучаем состояние клавиши:
-- state - нажата/отжата
-- toggle - для лампочек горит/не горит.
local state, toggle = GetKeyState(0x14)
log(tostring(state),tostring(toggle))

Плохая новость в том, что это тут никак не поможет) Пошел искать выдергивание статуса дальше.

If the low-order bit is 1, the key is toggled. A key, such as the CAPS LOCK key, is toggled if it is turned on. The key is off and untoggled if the low-order bit is 0. A toggle key's indicator light (if any) on the keyboard will be on when the key is toggled, and off when the key is untoggled.
Оригинальненько, учитывая, что возвращается true/false... Ну и битовые операторы подтягивать тоже забавно =\


Отбой панике - возвращается вторым параметром. Код поправил. Тебя интересует в данном случае toggle.

Дерагать либы отсюда:
https://luapower.com/winapi/download
https://luapower.com/glue/download
Вторая необходима для работы winapi. Будь внимателен с адресами. У меня все это дело лежит по адресу luaPlugins\winapi, что явным образом указывается при подргузке либы (потом адреса поиска возвращаются в исходное состояние).

Сообщение отредактировал DarkMaster - 26.2.2019, 2:00


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


*****

Journeyman
Сообщений: 411
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 15
Пользователь №: 18.689



Цитата(DarkMaster @ 26.2.2019, 5:44) *

Есть хорошая новость - я научился из луа дергать состояние клавиш и капса в том числе:


Дерагать либы отсюда:
https://luapower.com/winapi/download
https://luapower.com/glue/download

А теперь откуда? Потерял все скрипты, появилась необходимость кое-что восстановить.
В чистом пилоте night version, 15.05.2021 Release 34093 так понимаю нет этих библиотек?
Цитата
65848 -> FolderView
13:50:13 0 (Klicked_Auto_0.txt, 0): a runtime error.
5: module 'winapi' not found:
no field package.preload['winapi']
no file 'luaPlugins\winapi\winapi.lua'
no file '.\winapi.lua'
no file 'C:\Users\admin\Downloads\uopilot_241_b004\lua\winapi.lua'
no file 'C:\U


Короче может без библиотек есть возможность закликать досмерти левую мышку чтобы пальцем этого не делать? Только ключ включения/выключения нужен, на сам пилот нажимать в этот момент нет возможности.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo222
сообщение 13.9.2025, 12:07
Сообщение #4


*****

Journeyman
Сообщений: 411
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 15
Пользователь №: 18.689



Цитата(Levo222 @ 13.9.2025, 13:40) *

Короче может без библиотек есть возможность закликать досмерти левую мышку чтобы пальцем этого не делать? Только ключ включения/выключения нужен, на сам пилот нажимать в этот момент нет возможности.

Ой ладно попроще,
-при нажатии на 9
-произвести 100 кликов мышкой с интервалом в 100с мс

че-то локальные переменные не объявляются, глобальные тоже
Цитата
--lua
require"lua_system\\init"

pressed_down = false -- вот это вот не объявляется не локально не глобально
while 1 do
local x, y = mouse_pos () -- получить координаты
state, toggle = keystate(0x14)
if toggle then -- горит капс
if not pressed_down then
--send217_down ("w")
--kleft (x, y) -- клик
kleft
--(mouse_pos())
--input
--sendex_down ("w")
pressed_down = true
end
else
if pressed_down then
--send217_up ("w")
--sendex_up ("w")
pressed_down = false
end
end
wait (100)
end


Цитата
Код
pressed_down = false
while 1 do
16:24:15 1 (autosaved_1.txt, 0): syntax error during precompilation.
16: '=' expected near 'pressed_down'
--lua
require"lua_system\\init"

pressed_down = false
while 1 do
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме
Levo222   CapsLock On   26.2.2019, 0:55
sutra   Нужно подключить уже готовую библиотеку по обработ...   26.2.2019, 1:26
Levo222   Нужно подключить уже готовую библиотеку по обрабо...   26.2.2019, 7:05
Levo222   Если lua - придётся забыть про goto, Да и ....   26.2.2019, 14:56
Levo222   по адресу luaPlugins\winapi Кириллица не п...   26.2.2019, 7:17
Levo222   Есть хорошая новость - я научился из луа дергать ...   27.2.2019, 1:13
sutra   ВО! Ваще ничего не понял, но прогресс очевиден...   26.2.2019, 1:45
DarkMaster   Либы написаны на чистом lua с использованием fii.   26.2.2019, 1:53
sutra   Браво, Дарк! Мастер! Интересно, думаю, кр...   26.2.2019, 1:57
cirus   Изменить на log кто не догадается сам.   26.2.2019, 1:58
sutra   Угадал, только Сайрус!   26.2.2019, 2:01
DarkMaster   Да я запарился уже их туда-сюда писать, поэтому у...   26.2.2019, 2:02
sutra   Вот эта фраза мне нравится больше всего. Хз, ткнул...   26.2.2019, 2:05
DarkMaster   Взял из демки в доках к либе. Распутывать всю либ...   26.2.2019, 2:12
sutra   В этом и заключается профессионализм. Знаешь где в...   26.2.2019, 2:42
FREEON   Всех нас точно победит искусственный интеллект, е...   26.2.2019, 11:45
Levo222   Страх которому не суждено сбыться End которой ...   26.2.2019, 12:10
Levo222   ... Как удалить то сообщение ниче не могу понять   26.2.2019, 12:45
Levo222   эрудиция в ближайшем будущем, будет важнее интелл...   26.2.2019, 13:32
sutra   Оверлеи, кэши, хеши. Что-то уже история, что-то пр...   26.2.2019, 3:14
xolost   Оверлеи, кэши, хеши. Что-то уже история, что-то п...   26.2.2019, 4:01
sutra   Абсолютно логично, он же умный, а я ... не очень,...   26.2.2019, 4:06
xolost   Абсолютно логично, он же умный, а я ... не очень,...   26.2.2019, 4:13
cirus   2.41. Нет. Он должен быть как в примере и на яз...   26.2.2019, 11:15
Levo222   2.41.   26.2.2019, 11:23
DarkMaster   winapi сам подтянет glue. Я вообще ярый сторонни...   26.2.2019, 11:31
DarkMaster   Я не могу понять откуда оно у вас. Попробуйте уда...   26.2.2019, 15:07
Levo222   Я не могу понять откуда оно у вас. Попробуйте уда...   26.2.2019, 15:24
FREEON   ... Как удалить то сообщение ниче не могу понять ...   26.2.2019, 15:43
DarkMaster   Ну программирование оно вообще все из подключения...   26.2.2019, 15:47
Levo222   о и пути писать, но я еще раз говорю - я сторонни...   26.2.2019, 15:57
sutra   Ну у меня то страха нет. А вот то, что народ потих...   26.2.2019, 15:54
Levo222   Log 14:15:01 1 (autosaved_1.txt, 1...   27.2.2019, 10:17
DarkMaster   Самый простой способ - блок do end в шапку. Далее...   27.2.2019, 10:18
Levo222   Самый простой способ - блок do end в шапку. Далее...   27.2.2019, 10:38
DarkMaster   while 1 do local state, toggle = GetKeyState...   27.2.2019, 11:05
Levo222   break был написан с ошибкой, аккуратно. --Lua Er...   27.2.2019, 11:13
cirus   Первой строкой скрипта должно быть --lua. Удалить...   27.2.2019, 11:46
Levo222   Зависает на строке package.path = back и пишет в ...   27.2.2019, 12:02
cirus   Пилот с нужными файлами   27.2.2019, 12:07
Levo222   Пилот с нужными файлами Ниче не понимаю (a...   27.2.2019, 12:22
DarkMaster   Код полный дайте. Где-то проущенно =   27.2.2019, 12:23
Levo222   Код полный дайте. Где-то проущенно = --lua do l...   27.2.2019, 12:25
DarkMaster   Сохраняйте форматирование. От этого очень много ош...   27.2.2019, 12:28
Levo222   Сохраняйте форматирование. От этого очень много о...   27.2.2019, 12:33
DarkMaster   Это паттерн для добавления пути загрузки. Вместо ...   27.2.2019, 12:37
Levo222   Вы используете пилот cirus'a? Распаковали в о...   27.2.2019, 12:39
DarkMaster   с маленькой буквы send217_down ("W")   27.2.2019, 13:07
Levo222   с маленькой буквы send217_down ("W") Н...   27.2.2019, 13:11
cirus   Отпускать клавишу кто будет?   27.2.2019, 13:27
DarkMaster   Что? Очень похоже на криво сделанную привязку. ...   27.2.2019, 13:27
Levo222   Вы можете убедиться в этом поместив: local state...   27.2.2019, 13:30
DarkMaster   --lua do local back = package.path package.path ...   27.2.2019, 13:58
Levo222   [code]--lua do local back = package.path packag...   27.2.2019, 14:01
DarkMaster   do local back = package.path package.path = ...   27.2.2019, 14:09
Levo222   Для начала их там два должно писаться. Первый гов...   27.2.2019, 14:13
DarkMaster   Какое? ТЗ дайте тогда четкое. На данный момент при...   27.2.2019, 14:18
Levo222   Какое? ТЗ дайте тогда четкое. На данный момент пр...   27.2.2019, 14:21
DarkMaster   p_d - это переменная. В ней может быть только зна...   27.2.2019, 14:43
Levo222   Что происходит? У меня вообще проблем не возникае...   27.2.2019, 14:48
cirus   Начните с самого простого: --lua do local back = ...   27.2.2019, 14:48
Levo222   Начните с самого простого: [code]--lua do local ...   27.2.2019, 14:51
cirus   А оно вообще в приложении работает? Может какой-н...   27.2.2019, 15:14
Levo222   А оно вообще в приложении работает? Может какой-н...   27.2.2019, 15:15
DarkMaster   а без 217?   27.2.2019, 17:29
Levo222   а без 217? Нет. Без 217 Но пойдёт и так, если ко...   27.2.2019, 19:17
DarkMaster   Пилот запущен от админа? Проверьте - это новый exe...   27.2.2019, 19:54
Levo222   Пилот запущен от админа? Проверьте - это новый ex...   27.2.2019, 23:41
Levo222   Пилот запущен от админа? Проверьте - это новый ex...   28.2.2019, 6:42
DarkMaster   Я вижу лишь удаленный в корзину какой-то файл. У м...   28.2.2019, 13:28
Levo222   Я вижу лишь удаленный в корзину какой-то файл. У ...   28.2.2019, 17:36
DarkMaster   Ввиду потенциального риска безопасности, позвольт...   28.2.2019, 17:45
Levo222   Ввиду потенциального риска безопасности, позвольт...   28.2.2019, 18:13
DarkMaster   Есть гораздо более популярные и распространненые ...   28.2.2019, 19:29
Levo222   Да, ладно х с ним. Продолжим дискуссию тут. Всё же...   28.2.2019, 19:59
DarkMaster   интересный факт. Если мы проверяем состояни мыши (...   6.3.2021, 23:00
Fors1k   эвентам клавиш, а не по проверке состояний? Лови...   7.3.2021, 4:15
DarkMaster   Нет ибо с точно таким же успехом я могу крутить wh...   7.3.2021, 10:56
Cockney   Нет ибо с точно таким же успехом я могу крутить w...   7.3.2021, 14:56
DarkMaster   попробуйте вот это https://forum.uokit.com/index.p...   13.9.2025, 10:06
Levo222   попробуйте вот это https://forum.uokit.com/index....   13.9.2025, 10:47
DarkMaster   https://forum.uokit.com/index.php?showtopic...amp;...   13.9.2025, 19:22
Levo222   https://forum.uokit.com/index.php?showtopic...amp...   13.9.2025, 20:13
DarkMaster   всмысле не присваивается? Дайте минимальный полный...   13.9.2025, 21:17
Levo222   Дайте минимальный полный код для воспроизведения....   14.9.2025, 9:56
DarkMaster   скобки где?   13.9.2025, 22:10
DarkMaster   код не запускается. во-первых скобки, во-вторых...   14.9.2025, 10:24
Levo222   keystate является частью kbd. В СПРАВКЕ ОБ ЭТО...   14.9.2025, 10:56
Levo222   ДА вы известны) --- ### Как запустить: 1. Ск...   14.9.2025, 12:20
DarkMaster   это не так. ничего не модифицированни, require и ...   Вчера, 0:42
DarkMaster   --lua require "lua_system\\init...   Вчера, 0:58


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

 

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