
Сообщение от
blr_spy
renamed, а как дописать чтобы показывало какой скил и какой урон был нанесен при килле?
Вроде бы работает, только тут гиперссылка на спел много символов занимает, так что лучше не ставить длинное сообщение
PHP код:
local MESSAGE = "pwned %s with %s(%d)! Streak #%d"
local bitband = bit.band
local select = select
local SendChatMessage = SendChatMessage
local GetSpellLink = GetSpellLink
local frame = CreateFrame("frame")
local function onEvent(self,event,...)
if event == "COMBAT_LOG_EVENT_UNFILTERED" then
local _,subEvent,_,_,srcFlags,_,dstName,dstFlags = ...
if subEvent:find("_DAMAGE$") then
if bitband(dstFlags,COMBATLOG_OBJECT_TYPE_PLAYER) == COMBATLOG_OBJECT_TYPE_PLAYER and bitband(dstFlags,COMBATLOG_OBJECT_REACTION_HOSTILE) == COMBATLOG_OBJECT_REACTION_HOSTILE then
if bitband(srcFlags,COMBATLOG_FILTER_MY_PET) == COMBATLOG_FILTER_MY_PET or bitband(srcFlags,COMBATLOG_FILTER_ME) == COMBATLOG_FILTER_ME then
local spellId,_,_,dmg,overkill = select(select("#",...)-11,...)
if overkill and overkill > 0 then
local spellLink = GetSpellLink(subEvent == "SWING_DAMAGE" and 6603 or spellId)
self.killstreak = self.killstreak + 1
SendChatMessage(MESSAGE:format(dstName,spellLink,dmg,self.killstreak),"EMOTE")
end
end
end
end
elseif event == "UNIT_DIED" then
local unit = ...
if unit == "player" then
self.killstreak = 0
end
elseif event == "PLAYER_ENTERING_WORLD" then
self.killstreak = 0
end
end
frame:SetScript("OnEvent",onEvent)
frame:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
frame:RegisterEvent("UNIT_DIED")
frame:RegisterEvent("PLAYER_ENTERING_WORLD")