IsKeyPressed2
Revision as of 13:45, 10 August 2006 by imported>Timeslip (note about checking mouse buttons)
A command for Oblivion Script Extender
Syntax:
IsKeyPressed2 key
Returns true if key is currently pressed down. Key values are DirectX scancodes, as opposed to IsKeyPressed's Windows header codes.
DirectX scancodes are typically in hexadecimal, but this function takes decimal values.
Sample Key DX Scancodes
Hex Dec Button 0x01 1 Escape 0x02 2 1 0x03 3 2 0x04 4 3 ... 0x09 9 8 0x0A 10 9 0x0B 11 0 --- 0x10 16 Q 0x11 17 W 0x12 18 E ... 0x17 23 I 0x18 24 O 0x19 25 P --- 0x1C 28 Enter 0x1D 29 Left Control --- 0x1E 30 A 0x1F 31 S 0x20 32 D ... 0x24 36 J 0x25 37 K 0x26 38 L --- 0x2A 42 Left Shift --- 0x2C 44 Z 0x2D 45 X 0x2E 46 C ... 0x30 47 B 0x31 48 N 0x32 49 M --- 0x36 54 Right Shift 0x37 55 NUM* 0x38 56 Left Alt 0x39 57 Spacebar 0x3A 58 Caps Lock --- 0x3B 59 F1 0x3C 60 F2 0x3D 61 F3 ... 0x43 66 F8 0x44 67 F9 0x45 68 F10 --- 0x47 70 NUM7 0x48 71 NUM8 0x49 72 NUM9 0x4A 73 NUM- 0x4B 74 NUM4 0x4C 75 NUM5 0x4D 76 NUM6 0x4E 77 NUM+ 0x4F 78 NUM1 0x50 79 NUM2 0x51 80 NUM3 0x52 81 NUM0 0x53 82 NUM. --- 0x54 83 F11 0x55 84 F12 --- 0x9C 156 NUM Enter --- 0x9D 157 Right Control --- 0xB5 181 NUM/ --- 0xB8 184 Right Alt --- 0xC8 200 Up Arrow 0xCB 203 Left Arrow 0xCD 205 Right Arrow 0xD0 208 Down Arrow
A longer list can be found here.
Notes
- As well as the normal DX scancodes, you can use the numbers 256 to 263 to check for mouse button presses, and also 264 and 265 to check for mouse wheel movement.
- 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 && isKeyPressed2 curkey ) ; key still being held down return ; wait until it's released else set curkey to 0 endif if ( isKeyPressed2 <keyCode> ) ; do stuff set curKey to <keyCode> endif