Просмотр полной версии : [Вопрос] Как через скрипт нанести урон по колесам транспорта
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
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 функции, бред.
Ну это не мануал, поэтому и не стал явно указывать на то, что это - пример, цель которого, лишь ответить на вопрос ТС о том, возможно ли это или нет.
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot