轮胎状态
备注
即使超过 4 个轮胎的车辆(如卡车)也仅有 4 个轮胎状态位。
位存储规则
四轮车辆的轮胎损伤状态使用 1 个半字节(4 位)存储,两轮车辆使用 1 个字节对(2 位)。每个位存储对应轮胎是否爆胎(值 1)或完好(值 0)。
- 第一位存储四轮车辆的右后轮或两轮车辆的后轮状态
- 第二位存储四轮车辆的右前轮或两轮车辆的前轮状态
- 第三位存储四轮车辆的左后轮状态
- 第四位存储四轮车辆的左前轮状态
注意位序从右向左计算,因此第一位是最右侧的位。
示例
以下代码表示四轮车辆有两个轮胎爆胎:
0101
由于 SA-MP 返回十进制数值,需先转换为二进制才能得到上述结果。对应示例的 SA-MP 返回值为:
5
状态对照表
以下为轮胎状态的视觉化表示(俯视视角,上方为车辆前部)
图例:
o - 完好轮胎
x - 爆胎
四轮车辆
4 位表示四轮状态:(前左)(后左)(前右)(后右)
0: (0000)
o-o
| |
o-o
1: (0001)
o-o
| |
o-x
2: (0010)
o-x
| |
o-o
3: (0011)
o-x
| |
o-x
4: (0100)
o-o
| |
x-o
5: (0101)
o-o
| |
x-x
6: (0110)
o-x
| |
x-o
7: (0111)
o-x
| |
x-x
8: (1000)
x-o
| |
o-o
9: (1001)
x-o
| |
o-x
10: (1010)
x-x
| |
o-o
11: (1011)
x-x
| |
o-x
12: (1100)
x-o
| |
x-o
13: (1101)
x-o
| |
x-x
14: (1110)
x-x
| |
x-o
15: (1111)
x-x
| |
x-x
15 之后数值循环,16 对应 0,17 对应 1,以此类推。
双轮车辆(摩托车)
2 位表示双轮状态:(前)(后)
0: (00)
o
|
o
1: (01)
o
|
x
2: (10)
x
|
o
3: (11)
x
|
x
3 之后数值循环,4 对应 0,5 对应 1,以此类推。
使用示例
设置四轮车辆后两轮爆胎,保持前轮状态:
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'表示十六进制