Событие посылается не чаще одного раза в кадр, если в данном кадре у какого-либо из объектов вокруг игрока меняется информация о каком либо буфе.
Является агрегированной версией EVENT_OBJECT_BUFF_CHANGED
-- поля:
objects: table of tables - индексированная по ObjectId таблица таблиц:
key: ObjectId - идентификатор объекта
value: table of boolean - таблица, индексированная по идентификаторам изменившихся бафов
key: ObjectId - идентификатор бафа
value: boolean - всегда содержит true у проиндексированных элементов
Событие содержит собранную информацию о всех таких объектах и идентификаторов всех изменившихся бафов по каждому юниту.
По индексу идентификатора объекта в полученной таблице можно получить таблицу изменившихся бафов этого юнита. В этой второй таблице во всех элементах по индексам идентификаторов изменившихся бафов прописано true.
То есть, можно узнать изменился ли баф buffId у юнита с идентификатором unitId:
local isBuffChanged = params.objects[ unitId ] and params.objects[ unitId ][ buffId ] or false
'''ВНИМАНИЕ!''' Валидность бафов и объектов проверяется только на этапе формирования события. К моменту получения события носители или бафы могут быть уничтожены. Получение какой-либо информации по id из данного события без проверки на валидность недопустимо.
Связанные события и функции: