GetPlayerKeys

From SA-MP Wiki

Revision as of 22:14, 4 June 2012; view current revision
←Older revision | Newer revision→
Jump to: navigation, search


Check what keys a player is pressing


Parameters:
(playerid, &keys, &updown, &leftright)
playeridThe ID of the player to detect the keys of
keysA set of bits containing the player's key/button states
updownUp or Down analog value
leftrightLeft or Right analog value


ReturnsThis 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.

Image:32px-Ambox_warning_orange.png 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.

Personal tools