GetPlayerKeys
From SA-MP Wiki
Check what keys a player is pressing
(playerid, &keys, &updown, &leftright)
| playerid | The ID of the player to detect the keys of |
| keys | A set of bits containing the player's key/button states |
| updown | Up or Down analog value |
| leftright | Left or Right analog value |
| Returns | This function doesn't return a specific value |
The following example shows how you can regularly check the analog up/down/left/right values using OnPlayerUpdate.
public OnPlayerUpdate(playerid) { new Keys,ud,lr; GetPlayerKeys(playerid,Keys,ud,lr); if(ud > 0) SendClientMessage(playerid, 0xFFFFFFFF, "DOWN"); else if(ud < 0) SendClientMessage(playerid, 0xFFFFFFFF, "UP"); if(lr > 0) SendClientMessage(playerid, 0xFFFFFFFF, "RIGHT"); else if(lr < 0) SendClientMessage(playerid, 0xFFFFFFFF, "LEFT"); return 1; }
Key List
The reference below lists the defines gametext codes for the keys. Gametext codes can be used in text draws and the GameText* functions. The codes will appear as the key configured by the player.
| Note: The gametext-keys can be used in client messages and 3D text labels as of SA-MP 0.3d RC9. |
Special Keys
OnPlayerKeyStateChange will be called each time a key state is changed. It will never be called for up, down, left and right.
| Definition | Value | Gametext Key onfoot | Gametext Key invehicle | Default onfoot | Default invehicle |
| KEY_ACTION | 1 | ~k~~PED_ANSWER_PHONE~ | ~k~~VEHICLE_FIREWEAPON~ | TAB | ALT GR/LCTRL/NUM0 |
| KEY_CROUCH | 2 | ~k~~PED_DUCK~ | ~k~~VEHICLE_HORN~ | C | H/CAPSLOCK |
| KEY_FIRE | 4 | ~k~~PED_FIREWEAPON~ | ~k~~VEHICLE_FIREWEAPON~ | LCTRL/LMB | LALT |
| KEY_SPRINT | 8 | ~k~~PED_SPRINT~ | ~k~~VEHICLE_ACCELERATE~ | SPACE | W |
| KEY_SECONDARY_ATTACK | 16 | ~k~~VEHICLE_ENTER_EXIT~ | ~k~~VEHICLE_FIREWEAPON_ALT~ | ENTER | ??? |
| KEY_JUMP | 32 | ~k~~PED_JUMPING~ | ~k~~VEHICLE_BRAKE~ | LSHIFT | ??? |
| KEY_LOOK_RIGHT | 64 | - | ~k~~VEHICLE_LOOKRIGHT~ | - | E |
| KEY_HANDBRAKE/KEY_AIM* | 128 | ~k~~PED_LOCK_TARGET~ | ~k~~VEHICLE_HANDBRAKE~ | RMB | SPACE |
| KEY_LOOK_LEFT | 256 | - | ~k~~VEHICLE_LOOKLEFT~ | - | Q |
| KEY_SUBMISSION | 512 | - | ~k~~TOGGLE_SUBMISSIONS~ | NUM1/MMB | 2 |
| KEY_LOOK_BEHIND | 512 | ~k~~PED_LOOKBEHIND~ | ~k~~VEHICLE_LOOKBEHIND~ | NUM1/MMB | 2 |
| KEY_WALK | 1024 | ~k~~SNEAK_ABOUT~ | - | LALT | - |
| KEY_ANALOG_UP | 2048 | - | ~k~~VEHICLE_TURRETUP~ | NUM8 | NUM8 |
| KEY_ANALOG_DOWN | 4096 | - | ~k~~VEHICLE_TURRETDOWN~ | NUM2 | NUM2 |
| KEY_ANALOG_LEFT | 8192 | ~k~~VEHICLE_LOOKLEFT~ | ~k~~VEHICLE_TURRETLEFT~ | NUM4 | NUM4 |
| KEY_ANALOG_RIGHT | 16384 | ~k~~VEHICLE_LOOKRIGHT~ | ~k~~VEHICLE_TURRETRIGHT~ | NUM6 | NUM6 |
| KEY_YES** | 65536 | ~k~~CONVERSATION_YES~ | ~k~~CONVERSATION_YES~ | Y | Y |
| KEY_NO** | 131072 | ~k~~CONVERSATION_NO~ | ~k~~CONVERSATION_NO~ | N | N |
| KEY_CTRL_BACK** | 262144 | ~k~~GROUP_CONTROL_BWD~ | ~k~~GROUP_CONTROL_BWD~ | N | N |
| Definition | Value | Gametext Key onfoot | Gametext Key invehicle | Default onfoot | Default invehicle |
| KEY_UP | -128 | ~k~~GO_FORWARD~ | ~k~~VEHICLE_STEERUP~ | W or UP | W or UP |
| KEY_DOWN | 128 | ~k~~GO_BACK~ | ~k~~VEHICLE_STEERDOWN~ | D or DOWN | D or DOWN |
| KEY_LEFT | -128 | ~k~~GO_LEFT~ | ~k~~VEHICLE_STEERLEFT~ | A or LEFT | A or LEFT |
| KEY_RIGHT | 128 | ~k~~GO_RIGHT~ | ~k~~VEHICLE_STEERRIGHT~ | D or RIGHT | D or RIGHT |
[*] Key not defined in SA:MP includes. You must define this yourself or use KEY_HANDBRAKE.
[**] Supported since 0.3d. Not detectable in earlier versions.
Related Callbacks
The following callbacks might be useful as well, as they're related to this callback in one way or another.
- OnPlayerKeyStateChange: Called when a player's keystate change.
