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

 
Ответить в эту темуОткрыть новую тему
> Скрипт для отзеркаливания клавиш в выбранное окно (мультибоксинг)
4w4c4d0
сообщение 2.3.2023, 2:35
Сообщение #1


*

Registred
Сообщений: 8
Регистрация: 2.3.2023
Группа: Пользователи
Наличность: 0
Пользователь №: 20.494
Возраст: 32



Собственно, пытаюсь мультибоксить в игре, задача проста - нужно при нажатии/отпускании кнопок WASDE повторять их в выбранное фоновое окно.

Это стим игра с VAC, пробовал разные варианты, в том числе ISboxer, Aster - но все они немного проблемные или жутко платные.

Sandboxie успешно запускает две копии игры, все отлично работает. Но проблема в трансляции клавиш. Никакие программы не транслируют их в сандбоксовое окно - ни AHK, ни софт для мультибоксинга, потому что Sandboxie блокирует большинство методов отсылки клавиш - а вот уопилотовская send217, я проверил, посылает заветные кнопочки.

Собственно, как запилить трансляцию клавиш? Наверное, нужно создать пять хоткеев скриптов, по одному на каждую клавишу, при нажатии которых запускается посыл кнопок в окно? Как сделать так, чтобы при зажатии, допустим, W, эта кнопка хажималась, а при отжатии - отжималась? Ведь хоткеи просто запускают скрипт при нажатии? Подойдет, если при зажатии кнопки макроса пилот будет просто спамить клавишу, наверное. Не знаю как это воплотить, я пользуюсь пилотом 2000-х УО, но скрипты нормально писать так и не научился, слишком низкий ICQ :3. Да и не пользовался пилотом лет 10. Люто RTFMлю, но как-то не срастается.
Ну и, естественно, клавиши должны работать в родительском окне.

Может не через горячие клавиши, а через условия какие-нибудь? В общем задача довольно простая, но в то же время и не совсем, и воплотить её у меня самого не получается. Помогите пожалуйста, о мудрейшие. Вы - моя последня надежда. Я чувствую, что вариант с Sandboxie рабочий, нужно только чуть-чуть его дожать.

Костыли на костылях и костылями погоняют, конечно, но что поделать? (=^・ェ・^=)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
4w4c4d0
сообщение 2.3.2023, 3:04
Сообщение #2


*

Registred
Сообщений: 8
Регистрация: 2.3.2023
Группа: Пользователи
Наличность: 0
Пользователь №: 20.494
Возраст: 32



Пока пришло в голову только при if зажата W start_script зажать w в нужном окне, if отжата W - другой start_script с отжатием ее в нужном окне. Так можно с if поступать? Пока не нагуглил, похоже такого условия нету. Эти нажатия не будут мешать основному окну? Будет ли скрипт ловить нажатия в родительском окне, или глобально, и посылать их в заданное? Непонятно. Даже приступать страшно.

Наверное нужно вызывать LUA-кавалерию, я в LUA вообще не разбираюсь, пойду изучать.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 2.3.2023, 3:16
Сообщение #3


***********

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



Да. Луа ваш вариант.
https://forum.uokit.com/index.php?showtopic...%E0%E2%E8%F8%E0
Там в первом же посту код и архивчик. Ну а дальше просто в цикл пачку блоков на ифах на каждую кнопку. Можно вообще все кнопки транслировать, но думаю едва ли это прям хорошая идея и будет открываться куча всякой гадости, где не надо. Ну скажем вы открыли инвентарь хоткеем, а закрыли мышкой. В итоге на других оконах инвентарь остался открыт и получился асинхрон по открытым окнам интерфейса.


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


*

Registred
Сообщений: 8
Регистрация: 2.3.2023
Группа: Пользователи
Наличность: 0
Пользователь №: 20.494
Возраст: 32



Цитата(DarkMaster @ 2.3.2023, 3:16) *

Да. Луа ваш вариант.
https://forum.uokit.com/index.php?showtopic...%E0%E2%E8%F8%E0
Там в первом же посту код и архивчик. Ну а дальше просто в цикл пачку блоков на ифах на каждую кнопку. Можно вообще все кнопки транслировать, но думаю едва ли это прям хорошая идея и будет открываться куча всякой гадости, где не надо. Ну скажем вы открыли инвентарь хоткеем, а закрыли мышкой. В итоге на других оконах инвентарь остался открыт и получился асинхрон по открытым окнам интерфейса.


Спасибо большое, буду изучать. Напишу сюда, если потребуется помощь (я совсем не программист, скорее наоборот), и отпишусь если решу задачу, вполне может многим пригодиться - Sandboxie, если решить проблему трансляции клавиш, очень легкое и простое решение для базового мультибоксинга.

ヽ( ̄ω ̄(。。 )ゝ
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
4w4c4d0
сообщение 2.3.2023, 4:18
Сообщение #5


*

Registred
Сообщений: 8
Регистрация: 2.3.2023
Группа: Пользователи
Наличность: 0
Пользователь №: 20.494
Возраст: 32



Быстрый идиотский вопрос от изможденного человека - в середине Lua-скрипта можно вставить обычную уопилотскую команду?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 2.3.2023, 4:22
Сообщение #6


****

Apprentice
Сообщений: 233
Регистрация: 1.9.2012
Группа: Пользователи
Наличность: 1162
Пользователь №: 15.246
Возраст: 25



Цитата(4w4c4d0 @ 2.3.2023, 4:18) *

Быстрый идиотский вопрос от изможденного человека - в середине Lua-скрипта можно вставить обычную уопилотскую команду?

нет
у меня тоже вопрос - на луа можно как то взаимодействовать с переменным из других скриптов?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 2.3.2023, 11:27
Сообщение #7


***********

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



Цитата
Быстрый идиотский вопрос от изможденного человека - в середине Lua-скрипта можно вставить обычную уопилотскую команду?

там есть теги открытия и закрытия луа и обычных блоков кода. Но делать я бы так не стал.
Цитата
у меня тоже вопрос - на луа можно как то взаимодействовать с переменным из других скриптов?

Да, но там немного своебразно. Я через ffi выделяю кусок памяти, передаю через файл адрес памяти, где оно выделено, а други скрипты уже пишут данные в этот кусок памяти. Тут важно понимать, что читать можно спокойно, но если пишете эту переменную, то писать ее должна только одна вкладка иначе может быть конфликт доступа. Писать в разные переменные разными вкладками - все ок.

Сообщение отредактировал DarkMaster - 2.3.2023, 11:35


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


*

Registred
Сообщений: 8
Регистрация: 2.3.2023
Группа: Пользователи
Наличность: 0
Пользователь №: 20.494
Возраст: 32



Не заметил, что там есть плагин, использующий устаревший язык пилота.

if KB.GetKeyState(w) = 1
send217_down w
else
send217_up w
end_if

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

Как бы сделать чтобы он после проверки нажата ли, если клаваши зажата, зажимал клавишу, и останавливал скрипт, ожидая ее отжатия? А когда отжималась, один раз посылал отжатие и переходил к началу >_<
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 3.3.2023, 14:22
Сообщение #9


***********

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



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


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

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

 

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