Keadaan Ban
Keadaan ini untuk digunakan dengan GetVehicleDamageStatus dan UpdateVehicleDamageStatus.
Kendaraan yang memiliki ban lebih dari 4 (contoh: truk) hanya memiliki 4 keadaan ban.
Digit ke-sekian menyimpan apa?
Kerusakan semua ban akan disimpan dalam 1 digit (4 bit) untuk kendaraan roda 4 dan 2 bit huntuk kendaraan 2. Setiap bit menyimpan keadaan ban yang di mana pecah (nilai 1) dan tidak pecah (nilai 0).
- bit pertama menyimpan keadaan ban kanan-belakang untuk kendaraan roda 4 atau ban belakang untuk kendaraan roda 2.
- bit ke-dua menyimpan keadaan ban kanan-depan untuk kendaraan roda 4 atau ban depan untuk kendaraan roda 2.
- bit ke-tiga menyimpan keadaan ban kiri-belakang untuk kendaraan roda 4.
- bit ke-empat menyimpan keadaan ban kiri-depan untuk kendaraan roda 4.
Perhatikan bahwa bit-bit ini dihitung dari belakang, sehingga bit pertama ini bit paling kanan.
Contoh
Kode berikut menjelaskan bahwa kendaraan roda 4 untuk dua ban pecah dan lainnya tidak:
0101
Bagaimanapun, SA-MP mengembalikan nilai desimal, sehingga Anda harus mengubahnya dalam bentuk bilangan biner terlebih dahulu untuk mendapatkan hasil seperti di atas. Seperti contoh di atas, SA-MP akan mengembalikan nilai seperti ini:
5
Info tabel
Berikut adalah representasi visual dari keadaan ban. Kendaraan dilihat dari perspektif atas-bawah, dengan nilai atas sebagai bagian depan kendaraan dan nilai bawah sebagai bagian belakang kendaraan.
Legenda:
o - inflated tire
x - popped tire
Kendaraan roda 4
4 bit untuk kendaraan 4: (Kr-D)(Kr-B)(Kn-D)(Kn-B) (Kiri-Depan, Kiri-Belakang, Kanan-Depan, dan Kanan-Belakang).
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
Setelah nilai 15 terulang, maka 16 dianggap 0, 17 itu 1, dan seterusnya.
Kendaraan roda 2 (sepeda, motor)
2 bit untuk kendaraan roda dua: (D)(B) (Depan dan Belakang).
0: (00)
o
|
o
1: (01)
o
|
x
2: (10)
x
|
o
3: (11)
x
|
x
Setelah nilai 3 terulang, maka 4 itu 0, 5 itu 1, dan seterusnya.
Contoh penggunaan
Untuk memecahkan 2 ban dari kendaraan roda 4 tanpa mengubah ban depannya:
new panels, doors, lights, tires;
GetVehicleDamageStatus(vehicleid, panels, doors, lights, tires);
UpdateVehicleDamageStatus(vehicleid, panels, doors, lights, (tires | 0b0101)); // Bagian '0b' artinya adalah nilai panels dibaca dalam bentuk biner. Sama seperti '0x' menandakan bilangan heksadesimal.