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


Фотография

Событие убийства


Лучший Ответ SomeOneAndrey , 10 September 2016 - 16:57

Итак, вновь столкнулся с этой же проблемой, нашел решение

Проблема действительно в ACE3, связана с каким-то из модулей медицины

 

Событие будет всегда возвращать погибшего как убийцу. Как исправить?

В самом погибшем хранится последний юнит который нанес ему урон. То есть, чтобы найти убийцу нужно в событии "killed" читать переменную "ace_medical_lastDamageSource"

_unit getVariable ["ace_medical_lastDamageSource", objNull]
Перейти к сообщению


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

#1 OFFLINE   SomeOneAndrey

SomeOneAndrey

    Ефрейтор

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

Отправлено 04 January 2016 - 07:18

Привет всем. Не работает событие убийства в мультиплеере. Всегда возвращает убийцу - самого убитого. Возможно это как-то связано с ACE3?

Пробовал через addEventHandler killed и addMPEventHandler mpkilled. Есть предположения?


  • 0

#2 OFFLINE   Schatten

Schatten

    Капитан

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

Отправлено 04 January 2016 - 13:05

Не работает событие убийства в мультиплеере. Всегда возвращает убийцу - самого убитого.

Как добавляется обработчик события?
Согласно

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

, после события в обработчик поступает массив из двух объектов, причём убийца - второй объект. В некоторых случаях убийца может являться и жертвой.


  • 0

#3 OFFLINE   SomeOneAndrey

SomeOneAndrey

    Ефрейтор

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

Отправлено 04 January 2016 - 13:18

Schatten


{
  if (side _x == EAST) then {
    _x addEventHandler ["killed", {
      missionNamespace setVariable ["test", _this, True];
    }];
  }
} foreach allunits;

Примерно так, накидал не проверяя. Смотрел через missionNamespace getVariable "test"


  • 0

#4 OFFLINE   Schatten

Schatten

    Капитан

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

Отправлено 04 January 2016 - 13:49

Убийца - второй объект в массиве _this.


  • 0

#5 OFFLINE   SomeOneAndrey

SomeOneAndrey

    Ефрейтор

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

Отправлено 04 January 2016 - 13:54

Убийца - второй объект в массиве _this.

Я это понял, я записываю именно МАССИВ в переменную, чтобы потом посмотреть в окне отладки. В массиве два элемента, и все они - погибший


  • 0

#6 OFFLINE   Schatten

Schatten

    Капитан

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

Отправлено 04 January 2016 - 16:50

Не работает событие убийства в мультиплеере. Всегда возвращает убийцу - самого убитого. Возможно это как-то связано с ACE3?

А без ACE? Как происходит убийство?


  • 0

#7 OFFLINE   SomeOneAndrey

SomeOneAndrey

    Ефрейтор

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

Отправлено 05 January 2016 - 06:16

 

Хм.. я сейчас сделал пустую VR карту, поставил одного врага с событием, запустил на удаленке и все работает нормально, даже с модами. Куда копать?


  • 0

#8 OFFLINE   SomeOneAndrey

SomeOneAndrey

    Ефрейтор

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

Отправлено 10 September 2016 - 16:57   Лучший Ответ

Итак, вновь столкнулся с этой же проблемой, нашел решение

Проблема действительно в ACE3, связана с каким-то из модулей медицины

 

Событие будет всегда возвращать погибшего как убийцу. Как исправить?

В самом погибшем хранится последний юнит который нанес ему урон. То есть, чтобы найти убийцу нужно в событии "killed" читать переменную "ace_medical_lastDamageSource"

_unit getVariable ["ace_medical_lastDamageSource", objNull]

  • 0




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