---
title: "按键定义 | open.mp"
description: "本文档提供GetPlayerKeys和OnPlayerKeyStateChange使用的按键常量信息。"
canonical: https://omp.itsneufox.com/zh-CN/docs/scripting/resources/keys
language: zh-CN
---

# 按键定义

备注

本文档提供[GetPlayerKeys](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/GetPlayerKeys)和[OnPlayerKeyStateChange](https://omp.itsneufox.com/zh-CN/docs/scripting/callbacks/OnPlayerKeyStateChange)使用的按键常量信息。

SA-MP 使用位掩码技术检测按键状态，关于位掩码的详细说明请参阅：[位掩码技术解析](https://en.wikipedia.org/wiki/Mask_\(computing\))

* * *

| 宏定义 | 数值 | 步行嵌入代码 (6) | 车辆嵌入代码 (6) | 步行默认按键 | 车辆默认按键 |
| --- | --- | --- | --- | --- | --- |
| KEY\_ACTION | 1 | ~k~~PED\_ANSWER\_PHONE~ | ~k~~VEHICLE\_FIREWEAPON\_ALT~ | TAB 键 | ALT GR/左 Ctrl/小键盘 0 |
| KEY\_CROUCH | 2 | ~k~~PED\_DUCK~ | ~k~~VEHICLE\_HORN~ | C 键 | H 键/大写锁定键 |
| KEY\_FIRE | 4 | ~k~~PED\_FIREWEAPON~ | ~k~~VEHICLE\_FIREWEAPON~ | 左 Ctrl 键/鼠标左键 | 左 Alt 键 |
| KEY\_SPRINT | 8 | ~k~~PED\_SPRINT~ | ~k~~VEHICLE\_ACCELERATE~ | 空格键 | W 键 |
| KEY\_SECONDARY\_ATTACK | 16 | ~k~~VEHICLE\_ENTER\_EXIT~ | ~k~~VEHICLE\_ENTER\_EXIT~ | 回车键 | 回车键 |
| KEY\_JUMP | 32 | ~k~~PED\_JUMPING~ | ~k~~VEHICLE\_BRAKE~ | 左 Shift 键 | S 键 |
| KEY\_LOOK\_RIGHT | 64 | \- | ~k~~VEHICLE\_LOOKRIGHT~ | \- | E 键 |
| KEY\_HANDBRAKE/KEY\_AIM(1) | 128 | ~k~~PED\_LOCK\_TARGET~ | ~k~~VEHICLE\_HANDBRAKE~ | 鼠标右键 | 空格键 |
| KEY\_LOOK\_LEFT | 256 | \- | ~k~~VEHICLE\_LOOKLEFT~ | \- | Q 键 |
| KEY\_LOOK\_BEHIND | 512 | ~k~~PED\_LOOKBEHIND~ | ~k~~VEHICLE\_LOOKBEHIND~ | 小键盘 1/鼠标中键 | 2 键 |
| KEY\_SUBMISSION | 512 | \- | ~k~~TOGGLE\_SUBMISSIONS~ | 小键盘 1/鼠标中键 | 2 键/小键盘+ |
| KEY\_WALK | 1024 | ~k~~SNEAK\_ABOUT~ | \- | 左 Alt 键 | \- |
| KEY\_ANALOG\_UP | 2048 | \- | ~k~~VEHICLE\_TURRETUP~ | 小键盘 8(5) | 小键盘 8 |
| KEY\_ANALOG\_DOWN | 4096 | \- | ~k~~VEHICLE\_TURRETDOWN~ | 小键盘 2(5) | 小键盘 2 |
| KEY\_ANALOG\_LEFT | 8192 | ~k~~VEHICLE\_LOOKLEFT~ | ~k~~VEHICLE\_TURRETLEFT~ | 小键盘 4 | 小键盘 4 |
| KEY\_ANALOG\_RIGHT | 16384 | ~k~~VEHICLE\_LOOKRIGHT~ | ~k~~VEHICLE\_TURRETRIGHT~ | 小键盘 6 | 小键盘 6 |
| KEY\_YES(2) | 65536 | ~k~~CONVERSATION\_YES~ | ~k~~CONVERSATION\_YES~ | Y 键 | Y 键 |
| KEY\_NO(2) | 131072 | ~k~~CONVERSATION\_NO~ | ~k~~CONVERSATION\_NO~ | N 键 | N 键 |
| KEY\_CTRL\_BACK(2) | 262144(4) | ~k~~GROUP\_CONTROL\_BWD~ | ~k~~GROUP\_CONTROL\_BWD~ | H 键 | H/R键(7) |
| UNDEFINED(3) | \- | ~k~~GROUP\_CONTROL\_FWD~ | ~k~~GROUP\_CONTROL\_FWD~ | G 键 | G 键 |
| KEY\_UP | \-128 | ~k~~GO\_FORWARD~ | ~k~~VEHICLE\_STEERUP~ | 上方向键 | 上方向键 |
| KEY\_DOWN | 128 | ~k~~GO\_BACK~ | ~k~~VEHICLE\_STEERDOWN~ | 下方向键 | 下方向键 |
| KEY\_LEFT | \-128 | ~k~~GO\_LEFT~ | ~k~~VEHICLE\_STEERLEFT~ | 左方向键 | 左方向键 |
| KEY\_RIGHT | 128 | ~k~~GO\_RIGHT~ | ~k~~VEHICLE\_STEERRIGHT~ | 右方向键 | 右方向键 |

* * *

**(1)** 此键位在 SA:MP 官方包含文件中未定义。必须通过以下方式定义：

```c
#define KEY_AIM KEY_HANDBRAKE
```

或直接使用预定义的 `KEY_HANDBRAKE`。

**(2)** 玩家处于[观战模式](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/TogglePlayerSpectating)时，此键位无法被检测。

**(3)** `GROUP_CONTROL_FWD` 在 SA-MP 中实际无法被检测，因其在内部用于以乘客身份进入车辆。然而，其游戏文本定义仍然存在。

**(4)** 若键位值 "262144" 无效，可改用键位值 "2"。

**(5)** 仅当控制器配置选择为 "JOYPAD" 时方可被检测。

**(6)** 内嵌代码仅对[客户端消息](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/SendClientMessage)、[文本绘图](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/TextDrawCreate) 及[游戏文本](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/GameTextForPlayer)生效。

**(7)** 若玩家乘坐无电台的车辆（如警车、遥控车等），R 键与 H 键在会话中均返回值 "262144"；反之，若车辆有电台，在车内按下 H 键（或大写锁定键）仅返回 "2"，而 R 键仍返回 "262144"。
