Van Dark Posted July 6, 2022 Share Posted July 6, 2022 python @ Quote Link to comment Short link Share on other sites More sharing options...
MoD Posted July 6, 2022 Share Posted July 6, 2022 Кури по сорцам как работает метод handleKeyEvent @ Quote Link to comment Short link Share on other sites More sharing options...
StranikS_Scan Posted July 6, 2022 Share Posted July 6, 2022 import BigWorld, Keys from gui import InputHandler def onKeyDown(event): if event.isKeyDown() and BigWorld.isKeyDown(Keys.KEY_TAB): <твой код> InputHandler.g_instance.onKeyDown += onKeyDown 1 @ Quote Link to comment Short link Share on other sites More sharing options...
Van Dark Posted July 7, 2022 Author Share Posted July 7, 2022 спасибо, работает @ Quote Link to comment Short link Share on other sites More sharing options...
Kurzdor Posted July 10, 2022 Share Posted July 10, 2022 (edited) Как ещё вариант, хукая handleKeyEvent. import game import Keys @override(game, "handleKeyEvent") def handleKeyEvent(base, event): print event.isRepeatedEvent() # detect repeated event to prevent perfomance issues print event.isKeyDown() print event.key # code from scripts/client/Keys.py, use on key up/down event for only one key print event.key in (Keys.KEY_LALT, Keys.KEY_RALT) print BigWorld.isKeyDown(Keys.KEY_LCTRL) and BigWorld.isKeyDown(Keys.KEY_H) # check if all hotkey sequence is pressed at the moment return base(event) Вообще замечаю, что вместо подписки на ивент некоторые мододелы используют хук для этого. override функцию можно взять везде Edited July 10, 2022 by Kurzdor @ Quote Link to comment Short link Share on other sites More sharing options...
4icumback Posted August 19 Share Posted August 19 11.07.2022 в 04:02, Kurzdor сказал: Как ещё вариант, хукая handleKeyEvent. import game import Keys @override(game, "handleKeyEvent") def handleKeyEvent(base, event): print event.isRepeatedEvent() # detect repeated event to prevent perfomance issues print event.isKeyDown() print event.key # code from scripts/client/Keys.py, use on key up/down event for only one key print event.key in (Keys.KEY_LALT, Keys.KEY_RALT) print BigWorld.isKeyDown(Keys.KEY_LCTRL) and BigWorld.isKeyDown(Keys.KEY_H) # check if all hotkey sequence is pressed at the moment return base(event) Вообще замечаю, что вместо подписки на ивент некоторые мододелы используют хук для этого. override функцию можно взять везде Если использовать хук, то нажатие будет считываться даже в неактивном клиенте? @ Quote Link to comment Short link Share on other sites More sharing options...
Kurzdor Posted August 22 Share Posted August 22 @4icumback в смысле в неактивном клиенте? В альттабе - нет, чтобы игра могла захватывать клавиши, нужен фокус по окну @ Quote Link to comment Short link Share on other sites More sharing options...
4icumback Posted August 22 Share Posted August 22 @Kurzdor Да в альттабе. Понятно, просто я видел несколько запрещенных модов, которые умеют работать, считывать нажатие клавиш в неактивном клиенте. @ Quote Link to comment Short link Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.