Code:
function CokxCheck()
if rangeGUID == nil then rangeGUID ={GUID=0,Name=0, Enemy=0, Neutral=0, Friendly=0, Mask=0} end
if guidTable == nil then guidTable ={} end
if #rangeGUID > 50 then rangeGUID={GUID=0,Name=0, Enemy=0, Neutral=0, Friendly=0, Mask=0} guidTable ={} end
if not WhereAreYou then
WhereAreYou = CreateFrame("FRAME", nil, UIParent)
WhereAreYou:Hide()
end
function WhereAreYou_OnEvent(self, event, ...)
local type, _, sourceGUID, sourceNAME, UnitFlag, _, destGUID, destNAME = select(2, ...)
if event == "COMBAT_LOG_EVENT_UNFILTERED" then
table.insert(guidTable,{GUID=sourceGUID,Name=sourceName, Enemy=bit.band(UnitFlag, COMBATLOG_OBJECT_REACTION_HOSTILE), Neutral=bit.band(UnitFlag, COMBATLOG_OBJECT_REACTION_NEUTRAL), Friendly=bit.band(UnitFlag, COMBATLOG_OBJECT_REACTION_FRIENDLY), Mask=bit.band(UnitFlag, COMBATLOG_OBJECT_AFFILIATION_MASK)})
table.insert(guidTable,{GUID=destGUID,Name=destNAME, Enemy=bit.band(UnitFlag, COMBATLOG_OBJECT_REACTION_HOSTILE), Neutral=bit.band(UnitFlag, COMBATLOG_OBJECT_REACTION_NEUTRAL), Friendly=bit.band(UnitFlag, COMBATLOG_OBJECT_REACTION_FRIENDLY),Mask=bit.band(UnitFlag, COMBATLOG_OBJECT_AFFILIATION_MASK)})
end
end
WhereAreYou:SetScript("OnEvent", WhereAreYou_OnEvent)
WhereAreYou:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
for j=1,#guidTable do
guidExists = 0
for i = 1, #rangeGUID do
if guidTable[j].GUID == rangeGUID[i].GUID then
guidExists = 1
break
end
end
if guidExists == 0 then
table.insert(rangeGUID,{GUID=guidTable[j].GUID, Time=GetTime(),Range=PQR_UnitDistance("player",guidTable[j].GUID),Name = guidTable[j].Name,Enemy= guidTable[j].Enemy,Friendly= guidTable[j].Friendly,Neutral= guidTable[j].Neutral,Mask= guidTable[j].Mask})
end
end
if not dieBitch then
dieBitch = CreateFrame("FRAME", nil, UIParent)
dieBitch:Hide()
end
function dieBitch_OnEvent(self, event, ...)
local type, _, sourceGUID, sourceNAME, _, _, destGUID, destNAME = select(2, ...)
if event == "COMBAT_LOG_EVENT_UNFILTERED" then
if type == "UNIT_DIED"
then
for i=1,#rangeGUID do
if destGUID == rangeGUID[i].GUID then
table.remove(rangeGUID,i)
end
end
end
end
end
dieBitch:SetScript("OnEvent", dieBitch_OnEvent)
dieBitch:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
for i = 1, #rangeGUID do
if GetTime() - rangeGUID[i].Time > 1 then
local lguid =rangeGUID[i].GUID
local lname =rangeGUID[i].Name
local lenemy =rangeGUID[i].Enemy
local lfriendly =rangeGUID[i].Friendly
local lneutral =rangeGUID[i].Neutral
local lmask =rangeGUID[i].Mask
table.remove(rangeGUID,i)
table.insert(rangeGUID,i,{GUID=lguid, Time=GetTime(),Range=PQR_UnitDistance("player",lguid), Name = lname, Enemy = lenemy, Friendly = lfriendly, Neutral = lneutral, Mask = lmask})
end
end
end
function CokxRange(unit,guid)
for i=1,#rangeGUID do
if guid == nil then
if UnitGUID(unit) == rangeGUID[i].GUID
and rangeGUID[i].Range ~= nil
then return rangeGUID[i].Range
end
end
if unit == nil then
if guid == rangeGUID[i].GUID
and rangeGUID[i].Range ~= nil
then return rangeGUID[i].Range
end
end
end
end
function getCokxFacing()
if not tCokxFacing then tCokxFacing = {} end
tCokxFacing = {}
for i=1,#rangeGUID do
table.insert(tCokxFacing,{Facing = PQR_UnitFacing("player",rangeGUID[i].GUID),Time = GetTime(), GUID = rangeGUID[i].GUID})
end
end
function CokxFacing(unit,guid)
for i=1,#tCokxFacing do
if tCokxFacing[i].GUID == UnitGUID(unit) or guid
then return tCokxFacing[i].Facing
end
end
end