Lewati ke konten utama

Keadaan Ban

catatan

Keadaan ini untuk digunakan dengan GetVehicleDamageStatus dan UpdateVehicleDamageStatus.

catatan

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.