Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 6 из 6
  1. #1
    Аватар для vovandolg
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±

    Как через скрипт нанести урон по колесам транспорта

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

  2. #2
    Аватар для NewGreen
    Пользователь

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

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

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

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

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

    PHP код:
    UpdateVehicleDamageStatus(vehicleidPanelsDoorsLights, (Tires 0b0001)); // правое заднее 
    Теперь состояние шин автомобиля такое:

    o-o
    | |
    o-x

    другие шины:

    PHP код:
    UpdateVehicleDamageStatus(vehicleidPanelsDoorsLights, (Tires 0b0010)); // правое переднее
    UpdateVehicleDamageStatus(vehicleidPanelsDoorsLights, (Tires 0b0100)); // заднее левое
    UpdateVehicleDamageStatus(vehicleidPanelsDoorsLights, (Tires 0b1000)); // переднее левое
    UpdateVehicleDamageStatus(vehicleidPanelsDoorsLights, (Tires 0b1111)); // проколоть все шины 
    Доп. информация: https://wiki.sa-mp.com/wiki/TireStates
    Последний раз редактировалось NewGreen; 01.12.2015 в 12:58. Причина: Исправил опечатки

  3. 3 пользователя(ей) сказали cпасибо:
    Daniel_Cortez (01.12.2015) L0ndl3m (01.12.2015) vovandolg (01.12.2015)
  4. #3
    Аватар для L0ndl3m
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    4 вызова одной и той же функции UpdateVehicleDamageStatus, когда можно сразу сделать обработку в 1 функции, бред.

  5. #4
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от Londlem Посмотреть сообщение
    4 вызова одной и той же функции UpdateVehicleDamageStatus, когда можно сразу сделать обработку в 1 функции, бред.
    Это просто разные примеры.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  6. Пользователь сказал cпасибо:
    NewGreen (02.12.2015)
  7. #5
    Аватар для vovandolg
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    Цитата Сообщение от NewGreen Посмотреть сообщение
    UpdateVehicleDamageStatus(vehicleid, Panels, Doors, Lights, Tires);[/URL]
    Я так понимаю можно дамажнуть и другую часть кара?
    Двери, Корпус, Фары?

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

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

  8. #6
    Аватар для NewGreen
    Пользователь

    Статус
    Оффлайн
    Регистрация
    29.09.2014
    Сообщений
    61
    Репутация:
    44 ±
    Цитата Сообщение от vovandolg Посмотреть сообщение
    Я так понимаю можно дамажнуть и другую часть кара?
    Panels, Doors, Lights, Tires - эти параметры содержат наборы битов, изменяя которые можно управлять состоянием внешних частей транспорта.
    Поэкспериментируйте с ними, используя оператор |.
    Если хотите проще, учитесь работать с битами (побитовые операторы: >>,<<,>>> (побитовый сдвиг), & (и), | (или), ^ (исключающее или)).


    Цитата Сообщение от Londlem Посмотреть сообщение
    4 вызова одной и той же функции UpdateVehicleDamageStatus, когда можно сразу сделать обработку в 1 функции, бред.
    Ну это не мануал, поэтому и не стал явно указывать на то, что это - пример, цель которого, лишь ответить на вопрос ТС о том, возможно ли это или нет.
    Последний раз редактировалось NewGreen; 02.12.2015 в 01:43.

  9. Пользователь сказал cпасибо:
    L0ndl3m (02.12.2015)
 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •