PDA

Просмотр полной версии : [Вопрос] Как через скрипт нанести урон по колесам транспорта



vovandolg
01.12.2015, 11:47
Собственно название заголовка говорит за сам вопрос, вообще есть ли такое или я поиск плохо юзал?

NewGreen
01.12.2015, 12:49
Нужно использовать функцию UpdateVehicleDamageStatus(vehicleid, Panels, Doors, Lights, Tires);
где: Tires отвечает за шины автомобиля.
Чтобы проколоть шину нужно использовать двоичное число (0000,...,1111)
Отсчет колес начинается с задней правой шины:
o-o
| |
o-o

Когда все колеса целы Tires имеет значение 0b0000

Чтобы проколоть правое заднее колесо нужно:

1. Получить текущее состояние шин машины:


GetVehicleDamageStatus(vehicleid, Panels, Doors, Lights, Tires);

2. Проколоть нужную шину, в нашем случае правое заднее, нужно объединить наше двоичное число с текущим состоянием шины, при помощи оператора | (or):


UpdateVehicleDamageStatus(vehicleid, Panels, Doors, Lights, (Tires | 0b0001)); // правое заднее

Теперь состояние шин автомобиля такое:

o-o
| |
o-x

другие шины:


UpdateVehicleDamageStatus(vehicleid, Panels, Doors, Lights, (Tires | 0b0010)); // правое переднее
UpdateVehicleDamageStatus(vehicleid, Panels, Doors, Lights, (Tires | 0b0100)); // заднее левое
UpdateVehicleDamageStatus(vehicleid, Panels, Doors, Lights, (Tires | 0b1000)); // переднее левое
UpdateVehicleDamageStatus(vehicleid, Panels, Doors, Lights, (Tires | 0b1111)); // проколоть все шины


Доп. информация: https://wiki.sa-mp.com/wiki/TireStates

L0ndl3m
01.12.2015, 17:27
4 вызова одной и той же функции UpdateVehicleDamageStatus, когда можно сразу сделать обработку в 1 функции, бред.

Daniel_Cortez
01.12.2015, 17:45
4 вызова одной и той же функции UpdateVehicleDamageStatus, когда можно сразу сделать обработку в 1 функции, бред.
Это просто разные примеры.

vovandolg
01.12.2015, 23:28
UpdateVehicleDamageStatus(vehicleid, Panels, Doors, Lights, Tires);[/URL]
Я так понимаю можно дамажнуть и другую часть кара?
Двери, Корпус, Фары?

- - - Добавлено - - -


4 вызова одной и той же функции UpdateVehicleDamageStatus, когда можно сразу сделать обработку в 1 функции, бред.
Поподробнее можно пожалуйста) как это запилить

NewGreen
02.12.2015, 01:39
Я так понимаю можно дамажнуть и другую часть кара?

Panels, Doors, Lights, Tires - эти параметры содержат наборы битов, изменяя которые можно управлять состоянием внешних частей транспорта.
Поэкспериментируйте с ними, используя оператор |.
Если хотите проще, учитесь работать с битами (побитовые операторы: >>,<<,>>> (побитовый сдвиг), & (и), | (или), ^ (исключающее или)).



4 вызова одной и той же функции UpdateVehicleDamageStatus, когда можно сразу сделать обработку в 1 функции, бред.
Ну это не мануал, поэтому и не стал явно указывать на то, что это - пример, цель которого, лишь ответить на вопрос ТС о том, возможно ли это или нет.