---
title: "面板状态 | open.mp"
description: "关于字节存储结构及其对应面板状态位的技术说明"
canonical: https://omp.itsneufox.com/zh-CN/docs/scripting/resources/panelstates
language: zh-CN
---

# 面板状态

备注

面板状态信息通过[GetVehicleDamageStatus](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/GetVehicleDamageStatus)和[UpdateVehicleDamageStatus](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/UpdateVehicleDamageStatus)等原生函数进行操作。

## 半字节位域解析

-   **第一个半字节**：存储汽车的**左前面板**状态，或飞机的\*\*(左)引擎\*\*状态
-   **第二个半字节**：存储汽车的**右前面板**状态，或飞机的\*\*(右)引擎\*\*状态
-   **第三个半字节**：存储汽车的**左后面板**状态，或飞机的\*\*方向舵（位于垂直尾翼上）\*\*状态
-   **第四个半字节**：存储汽车的**右后面板**状态，或飞机的\*\*升降舵（位于尾部）\*\*状态
-   **第五个半字节**：存储汽车的**挡风玻璃**状态，或飞机的\*\*副翼（位于机翼）\*\*状态
-   **第六个半字节**：存储汽车的**前保险杠**状态
-   **第七个半字节**：存储汽车的**后保险杠**状态

注意并非所有车辆都支持上述所有面板部件。飞机部件的损坏程度会显著影响飞行操控性，受损部件会冒出黑烟。

多数面板支持 4 种状态：**完好（值 0）**、**压损（值 1）**、**松动（值 2）**、**脱落（值 3）**。压损和松动状态存在显示异常（当从松动状态转为压损时，面板会同时显示松动和压损效果，需重新载入车辆流才能正常显示）。建议修复方法：先重置该面板的损坏状态，再应用新状态。此方法也可实现行驶中显示松动但无物理压痕的效果（直接从 0 设为 2，而非 0→1→2）。

当前仅挡风玻璃状态可被正确读取。设置该状态会更新服务器数据，但不会产生物理变化。

注意半字节从右向左计数，第一个半字节是最右侧的位域。

* * *

## 示例说明

以下二进制代码表示汽车前后保险杠已脱落：

`00000011 00110000 00000000 00000000`

由于 SA-MP 返回十进制数值，需先转换为二进制进行分析。上述示例对应的十进制返回值为：

`53477376`

* * *

## 应用实例

移除汽车前保险杠并保持其他部件状态不变：

```c
new
	VEHICLE_PANEL_STATUS:panels,
	VEHICLE_DOOR_STATUS:doors,
	VEHICLE_LIGHT_STATUS:lights,
	VEHICLE_TIRE_STATUS:tires;

GetVehicleDamageStatus(vehicleid, panels, doors, lights, tires);
UpdateVehicleDamageStatus(vehicleid, (panels | VEHICLE_PANEL_STATUS:0b00000000001100000000000000000000), doors, lights, tires); // '0b'前缀表示二进制数值，用法类似'0x'表示十六进制
```

## 相关阅读

-   [车辆面板状态](https://omp.itsneufox.com/zh-CN/docs/scripting/resources/vehicle-panel-status)
