
Сообщение от
kostyn
Да, но если ограничивается все 1-2 классами, то в принципе нормально, хотя метод с инжектированием заинтересовал :)
тогда проще 2 массива
например для пати:
PHP код:
local unitToGUID = {}
local GUIDtoUnit = {}
local f = CreateFrame"frame"
f:SetScript("OnEvent", function(self, event, ...)
-- чистим перед заполнением
for unit, guid in next, unitToGUID do
unitToGUID[unit] = nil
GUIDtoUnit[guid] = nil
end
for i = 1, 4 do
local unit = format("party%d", i)
if UnitExists(unit) then
local GUID = UnitGUID(unit)
unitToGUID[unit] = GUID
GUIDtoUnit [GUID] = unit
end
end
end)
f:RegisterEvent"PARTY_MEMBER_CHANGED"
А уже от сюда можно делать асоциации по гуиду кастера к пати делая провери на гуид кастера через GUIDtoUnit в комбат лог ивенте. Аналогично как и для PARTY_MEMBER_CHANGED , есть ивенты для таргета, фокуса, арены, рейда и тд. Как минимум не придется руками ничего заполнять.