#1 28-05-2016 18:37

Mr.GeniusZ
Registered: 09-11-2014
Posts: 29

Игнорирование игровой клавиши

Как можно заставить игру игнорировать какую-либо игровую клавишу?

Offline

#2 29-05-2016 15:01

Mr.Secret
Registered: 21-05-2014
Posts: 11

Re: Игнорирование игровой клавиши

Занопить обработку нажатия нужной клавиши через память, узнав адрес. Для некоторых клавиш есть стандартные опкоды:

07CC: set_player $PLAYER_CHAR button_15 0

Включает/отключает клавишу "вход в машину" и все её функции.

082A: set_player $PLAYER_CHAR able_to_use_crouch_button 0 

То же самое для кнопки приседания.

0901: enable_player $PLAYER_CHAR jump_key 0

Для кнопки прыжка.

Offline

#3 30-05-2016 07:11

Mr.GeniusZ
Registered: 09-11-2014
Posts: 29

Re: Игнорирование игровой клавиши

Mr.Secret wrote:

Занопить обработку нажатия нужной клавиши через память, узнав адрес. Для некоторых клавиш есть стандартные опкоды:

07CC: set_player $PLAYER_CHAR button_15 0

Включает/отключает клавишу "вход в машину" и все её функции.

082A: set_player $PLAYER_CHAR able_to_use_crouch_button 0 

То же самое для кнопки приседания.

0901: enable_player $PLAYER_CHAR jump_key 0

Для кнопки прыжка.

А как узнать  адреса этих клавиш? Например, мне нужны адреса клавиши прицеливания и смены радиостанций.

Offline

#4 30-05-2016 08:33

Mr.Secret
Registered: 21-05-2014
Posts: 11

Re: Игнорирование игровой клавиши

Тогда тебе нужно искать по базе listener'а, где обрабатывается нажатие кнопки прицеливания и кручение колёсика мышки, и занопить эти процедуры. Адреса сейчас не подскажу, т.к. базы нет под рукой, могу только подсказать адреса, занопив которые, можно вообще убрать обработку всей клавиатуры (кроме паузы) и мышки:

0A8C: write_memory 0x541DF5 size 5 value 0x90 virtual_protect 1
0A8C: write_memory 0x541DFF size 5 value 0x90 virtual_protect 1

По сути, это то же самое, что Player.CanMove($PlAYER_CHAR, 0), только с возможностью вращать камеру.

Offline

Board footer

Powered by FluxBB