Difference between revisions of "IsKeyPressed"
Jump to navigation
Jump to search
This script function is documented but either not implemented or else superceded by another function. Please do not use this function in your mod; alternatives are offered in the article.
imported>Qazaaq m (removed from all other categories also) |
imported>Shademe (→Notes: Added note on triggering speed) |
||
Line 94: | Line 94: | ||
* This function won't work correctly under Windows 2000 unless the .ini setting '''bBackground Keyboard:Controls''' is set to 1. You can use [[con_SetINISetting]] to do this (make sure to set it whenever the game is loaded). | * This function won't work correctly under Windows 2000 unless the .ini setting '''bBackground Keyboard:Controls''' is set to 1. You can use [[con_SetINISetting]] to do this (make sure to set it whenever the game is loaded). | ||
* Will not detect keys force-pressed with [[TapKey]] or [[TapControl]] but will detect disabled keys. | * Will not detect keys force-pressed with [[TapKey]] or [[TapControl]] but will detect disabled keys. | ||
* This is the only input function that detects mouse button presses before the game engine does. | |||
==See Also== | ==See Also== |
Revision as of 20:55, 12 July 2009
Deprecated Function
This script function is documented but either not implemented or else superceded by another function. Please do not use this function in your mod; alternatives are offered in the article.
A command for Oblivion Script Extender
Syntax:
IsKeyPressed key
Returns true if key is currently pressed down. Key values are stored in Windows header files, as opposed to IsKeyPressed2's DirectX scancodes.
Deprecated from OBSE v0013: replaced by IsKeyPressed3 which uses the DX scan codes like the other input functions.
Sample Key IDs
1 Left Mouse Button 2 Right Mouse Button 4 Middle Mouse Button --- 13 Enter --- 20 Caps Lock --- 32 spacebar --- 33 PgUp 34 PgDn 35 End 36 Home 37 Left 38 Up 39 Right 40 Down 44 PrtScr 45 Ins 46 Del --- 48 0 49 1 50 2 ... 55 7 56 8 57 9 --- 65 A 66 B 67 C ... 88 X 89 Y 90 Z --- 96 NUM0 97 NUM1 98 NUM2 ... 103 NUM7 104 NUM8 105 NUM9 106 NUM* 107 NUM+ 109 NUM- 111 NUM/ --- 112 F1 113 F2 114 F3 ... 123 F12 ... 127 F16 --- 160 left shift 161 right shift 162 left control 163 right control
A longer list can be found here
These can be converted to DirectX keycodes using DX2VK.
Notes
- This function doesn't return a value while a MessageBox is being displayed, presumably because input is switched over to the MessageBox.
- To convert DX scan codes to values usable by this function, use DX2VK.
- Bear in mind that this function returns 1 for as long as the key is held down, so it's generally a good idea to trap the key and then wait until it is released, i.e.:
if ( curKey && isKeyPressed curkey ) ; key still being held down return ; wait until it's released else set curkey to 0 endif if ( isKeyPressed <keyCode> ) ; do stuff set curKey to <keyCode> endif
- This function won't work correctly under Windows 2000 unless the .ini setting bBackground Keyboard:Controls is set to 1. You can use con_SetINISetting to do this (make sure to set it whenever the game is loaded).
- Will not detect keys force-pressed with TapKey or TapControl but will detect disabled keys.
- This is the only input function that detects mouse button presses before the game engine does.