---
title: "轮胎状态 | open.mp"
description: "关于字节大小及其对应轮胎状态位的说明。"
canonical: https://omp.itsneufox.com/zh-CN/docs/scripting/resources/tirestates
language: zh-CN
---

# 轮胎状态

备注

-   轮胎状态被原生函数使用，例如[获取车辆损伤状态](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/GetVehicleDamageStatus)和[更新车辆损伤状态](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/UpdateVehicleDamageStatus)。
-   即使超过 4 个轮胎的车辆（如卡车）也仅有 4 个轮胎状态位。

## 位存储规则

四轮车辆的轮胎损伤状态使用 1 个半字节（4 位）存储，两轮车辆使用 1 个字节对（2 位）。每个位存储对应轮胎是否**爆胎（值 1）**或**完好（值 0）**。

-   **第一位**存储四轮车辆的**右后轮**或两轮车辆的**后轮**状态
-   **第二位**存储四轮车辆的**右前轮**或两轮车辆的**前轮**状态
-   **第三位**存储四轮车辆的**左后轮**状态
-   **第四位**存储四轮车辆的**左前轮**状态

注意位序从右向左计算，因此第一位是最右侧的位。

* * *

## 示例

以下代码表示四轮车辆有两个轮胎爆胎：

`0101`

由于 SA-MP 返回十进制数值，需先转换为二进制才能得到上述结果。对应示例的 SA-MP 返回值为：

`5`

* * *

## 状态对照表

以下为轮胎状态的视觉化表示（俯视视角，上方为车辆前部）

**图例：**

```text
o - 完好轮胎
x - 爆胎
```

* * *

### 四轮车辆

4 位表示四轮状态：(前左)(后左)(前右)(后右)

0: (0000)

```c
    o-o
    | |
    o-o
```

1: (0001)

```c
    o-o
    | |
    o-x
```

2: (0010)

```c
    o-x
    | |
    o-o
```

3: (0011)

```c
    o-x
    | |
    o-x
```

4: (0100)

```c
    o-o
    | |
    x-o
```

5: (0101)

```c
    o-o
    | |
    x-x
```

6: (0110)

```c
    o-x
    | |
    x-o
```

7: (0111)

```c
    o-x
    | |
    x-x
```

8: (1000)

```c
    x-o
    | |
    o-o
```

9: (1001)

```c
    x-o
    | |
    o-x
```

10: (1010)

```c
    x-x
    | |
    o-o
```

11: (1011)

```c
    x-x
    | |
    o-x
```

12: (1100)

```c
    x-o
    | |
    x-o
```

13: (1101)

```c
    x-o
    | |
    x-x
```

14: (1110)

```c
    x-x
    | |
    x-o
```

15: (1111)

```c
    x-x
    | |
    x-x
```

15 之后数值循环，16 对应 0，17 对应 1，以此类推。

* * *

### 双轮车辆（摩托车）

2 位表示双轮状态：(前)(后)

0: (00)

```c
    o
    |
    o
```

1: (01)

```c
    o
    |
    x
```

2: (10)

```c
    x
    |
    o
```

3: (11)

```c
    x
    |
    x
```

3 之后数值循环，4 对应 0，5 对应 1，以此类推。

* * *

## 示例

设置四轮车辆后两轮爆胎，保持前轮状态：

```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, doors, lights, (tires | VEHICLE_TIRE_STATUS:0b0101)); // '0b'前缀表示二进制数，类似'0x'表示十六进制
```

## 相关链接

-   [车辆轮胎状态](https://omp.itsneufox.com/zh-CN/docs/scripting/resources/vehicle-tire-status)
