Перейти к содержимому


Фотография

Проверка повреждения техники


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 7

#1 OFFLINE   sharkman

sharkman

    Ефрейтор

  • Пользователи
  • 68 сообщений
  • Откуда:Хабаровск

Отправлено 24 February 2019 - 18:56

Здравствуйте, уважаемые специалисты скриптования!

Не срабатывает условие в триггере: 

(getDammage ural)>0

вариант (damage ural)>0 тоже пробовал. 

Уралу вынес все колеса, повредил двигатель, повредил бак, а он все равно показывает damage = 0.

C ванильным "ЗАМАКом" такая же беда, грешил на РХСовский урал, но видимо не в этом проблема.

Или эти команды не работают на технику (пустую)? На прочие объекты срабатывает...

Просветите пожалуйста! Заранее СПАСИБО!

 


  • 0

#2 OFFLINE   Cooler58

Cooler58

    Сержант

  • Пользователи
  • 196 сообщений

Отправлено 24 February 2019 - 19:27

попробуй (getDammage ural) > 0.0000001


  • 0

#3 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 24 February 2019 - 20:01

sharkman, для проверки урона лучше не использовать команды damage... дело в том, что они возвращают очень "магическое" значение урона, более того, они могут возвращать 0, даже если все хит пойнты имеют урон 1. Лучше определить, что для вас будет считаться критическим уроном и использовать getAllHitPointsDamage
  • 0

#4 OFFLINE   sharkman

sharkman

    Ефрейтор

  • Пользователи
  • 68 сообщений
  • Откуда:Хабаровск

Отправлено 25 February 2019 - 04:00

Спасибо огромное, за ответ! Я так и предполагал, что damage не во всех случаях работает адекватно! Будем работать с вышеуказанной командой. Ещё раз спасибо!
  • 0

#5 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 25 February 2019 - 19:40

Спасибо огромное, за ответ! Я так и предполагал, что damage не во всех случаях работает адекватно! Будем работать с вышеуказанной командой. Ещё раз спасибо!

Дело в том что getDamage возвращает значение обобщённого, общего урона нанесённого технике. То есть, вы можете вынести все колёса, но это не будет тем критичным уроном который будет определять негодность техники к восстановлению. Вообще, если мне память не изменяет, команда getDamage начинает возвращать какой то урон если вы начнёте дамажить не детали реализующие физику, колёса, двигатель и тд, а hall объекта, то есть сам корпус. На выхлопе получаем, вы можете вынести все приблуды в технике, но если корпус будет иметь не критичный урон, техника будет считаться живой.


  • 0

#6 OFFLINE   ratnik_arma

ratnik_arma

    Рядовой

  • Пользователи
  • 7 сообщений

Отправлено 30 December 2020 - 20:42

sharkman, для проверки урона лучше не использовать команды damage... дело в том, что они возвращают очень "магическое" значение урона, более того, они могут возвращать 0, даже если все хит пойнты имеют урон 1. Лучше определить, что для вас будет считаться критическим уроном и использовать getAllHitPointsDamage

Если не трудно приведите пример условия в триггере с использованием этой функции например при уничтожении ноутбука

Сообщение отредактировал ratnik_arma: 30 December 2020 - 20:47

  • 0

#7 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1791 сообщений
  • Откуда:Тбилиси, Грузия

Отправлено 31 December 2020 - 03:14

Если не трудно приведите пример условия в триггере с использованием этой функции например при уничтожении ноутбука

А его можно уничтожить? У меня не получилось.


  • 0

#8 OFFLINE   ratnik_arma

ratnik_arma

    Рядовой

  • Пользователи
  • 7 сообщений

Отправлено 04 January 2021 - 00:31

 

Если не трудно приведите пример условия в триггере с использованием этой функции например при уничтожении ноутбука

А его можно уничтожить? У меня не получилось.

Да действительно, уничтожить его физически нельзя, тоже пробовал. Пришлось использовать обходной путь. В инициализации ноута прописать :

this addEventHandler ["Explosion", { 
    params ["_object"]; 
    _object setVariable ["blownUp", true]; 
}];
 
В условии триггера:
nout getVariable ["blownUp", false];
 
В активации триггера:
hint"Ноут уничтожен, это провал!"; nout setDamage [1 , true];
 
Вот как раз для реалистичности воздействия взрыва в близи объекта(ноута), используем setDamage - объект уничтожен (теперь ноут нельзя будет подобрать и положить в инвентарь)

Сообщение отредактировал ratnik_arma: 04 January 2021 - 00:32

  • 0




Яндекс.Метрика