So I have the addon named aloft and aggro notifier
Aggro notifier and aloft worked great on ARES wow
I came over ported over everything from my ui and everything worked besides a few tweaks and these two addons.
I got aloft to work again
But now the command /aloft waterfall
/aloft gui /options is not working.
I had the problem health was not coming up but TAG error inplace of health
I do not want percent on the healthbar I want health.
I also wanted to keep my elvui fonts so I could change aloft however.
I asked a person named laxatives and he told me to reinstall the mod and it was working before the configuration when i tried it again it did not work.
Laxatives being a prick ignored me so **** him for doing that.
Thanks for helping *******.
Aloft.TagData.IsFriendly =
{
compileString = function(dataTable, prior)
return string.format("(data.type == "friendlyPlayer" or data.type == "friendlyNPC")%s%s", prior and " and " or "", prior or "")
end
}
Aloft.TagData.IsFriendlyNPC =
{
compileString = function(dataTable, prior) return string.format("data.type == "friendlyNPC"%s%s", prior and " and " or "", prior or "") end
}
Aloft.TagData.IsFriendlyPlayer =
{
compileString = function(dataTable, prior) return string.format("data.type == "friendlyPlayer"%s%s", prior and " and " or "", prior or "") end
}
Aloft.TagData.IsHostile =
{
compileString = function(dataTable, prior) return string.format("data.type == "hostile"%s%s", prior and " and " or "", prior or "") end
}
Aloft.TagData.IsNeutral =
{
compileString = function(dataTable, prior) return string.format("data.type == "neutral"%s%s", prior and " and " or "", prior or "") end
}
Aloft.TagData.IsMaxHealth =
{
events = "Aloft:OnHealthBarValueChanged",
compileString = function(dataTable, prior) return string.format("data.healthBarValue == data.healthBarMaxValue%s%s", prior and " and " or "", prior or "") end
}
Aloft.TagData.Name =
{
-- NOTE: the data field here allows the AloftNameText module to self-hook itself into the data/module heirarchy;
-- AloftNameText is an always-loaded module, and the [Name] tag is always valid, so this should be harmless,
-- and it provides an anchor for things like the [Class] tag, if it is needed for various "Color By Class" option(s)
data = "name",
events = "Aloft:OnUnitNameChanged",
tableData = "name",
guaranteeResult = true
}
Aloft.TagData.HealthBarColor =
{
events = "Aloft:OnSetHealthBarColor",
method = function(aloftData, value)
local healthBarR = aloftData.healthBarR
local healthBarG = aloftData.healthBarG
local healthBarB = aloftData.healthBarB
-- if (value) then
-- local healthBarA = aloftData.healthBarA
-- if (not healthBarR or not healthBarG or not healthBarB or healthBarA) then
-- local healthBar = aloftData.healthBar
-- Aloft:ProcessHealthBarColor(aloftData) -- TODO: see comments on this function in Aloft/Aloft.lua
-- ChatFrame7:AddMessage("AloftAloftTag:HealthBarColo r(): " .. aloftData.name)
-- ChatFrame7:AddMessage("AloftAloftTag:HealthBarColo r(): " .. ("|cff%02x%02x%02x%s|r"):format(floor(aloftData.he althBarR*256), floor(aloftData.healthBarG*256), floor(aloftData.healthBarB*256), "health bar color"))
-- end
-- end
if not value or not healthBarR or not healthBarG or not healthBarB
or type(healthBarR) ~= "number" or type(healthBarG) ~= "number" or type(healthBarB) ~= "number" then
-- ChatFrame7:AddMessage("Aloft.TagData.HealthBarColo r.method(): " .. tostring(aloftData.name) .. "/" .. tostring(value) .. "/" .. tostring(healthBarR) .. "/" .. tostring(healthBarG) .. "/" .. tostring(healthBarB))
return "" -- stub out with an empty string, this cannot be properly formatted
end
Aloft.TagData.OriginalHealthBarColor =
{
events = "Aloft:OnSetHealthBarColor",
method = function(aloftData, value)
local healthBarR = aloftData.originalHealthBarR
local healthBarG = aloftData.originalHealthBarG
local healthBarB = aloftData.originalHealthBarB
-- TODO: check RGB for nil, fetch if needed?
-- if (value) then
-- ChatFrame7:AddMessage("AloftAloftTag:OriginalHealt hBarColor(): " .. aloftData.name)
-- ChatFrame7:AddMessage("AloftAloftTag:OriginalHealt hBarColor(): " .. ("|cff%02x%02x%02x%s|r"):format(floor(healthBarR*2 56), floor(aloftData.originalHealthBarG*256), floor(aloftData.originalHealthBarB*256), "original health bar color"))
-- end
if not value or not healthBarR or not healthBarG or not healthBarB
or type(healthBarR) ~= "number" or type(healthBarG) ~= "number" or type(healthBarB) ~= "number" then
-- ChatFrame7:AddMessage("Aloft.TagData.OriginalHealt hBarColor.method(): " .. tostring(aloftData.name) .. "/" .. tostring(value) .. "/" .. tostring(healthBarR) .. "/" .. tostring(healthBarG) .. "/" .. tostring(healthBarB))
return "" -- stub out with an empty string, this cannot be properly formatted
end
Aloft.TagData.ClassColor =
{
events = "Aloft:OnClassDataChanged",
method = function(aloftData, value)
local color = (aloftData.class and Aloft.db.profile.classColors[aloftData.class]) or white
return (value and ("|cff%02x%02x%02x%s|r"):format(min(255, floor(color[1]*256)), min(255, floor(color[2]*256)), min(255, floor(color[3]*256)), value)) or ""
end,
noGuaranteeChange = true
}
Aloft.TagData.TappedColor =
{
method = function(aloftData, value) return (value and ("|cff8787ff%s|r"):format(value)) or "" end,
noGuaranteeChange = true
}
-- to reflect the presence of the new Blizzard health bar color
Aloft.TagData.IsTappedVisual =
{
data = "isTappedVisual",
events = "Aloft:OnHealthBarColorChanged",
tableData = "isTappedVisual"
}
Aloft.TagData.Truncate =
{
-- lifted more or less completely from LibDogTags-3.0-90203 text manipulation; thanks and all credit to CKKnight/Shefki
method = function(data, value, number, ...)
if not value or number <= 0 then return nil end -- truncating to zero or less effectively "deletes" value
local ellipses = select(1, ...) -- pull out the one and only expected (optional) argument from varargs
-- ChatFrame7:AddMessage("AloftTag:TagData.Truncate.m ethod(): " .. tostring(value) .. "/" .. tostring(number) .. "/" .. tostring(ellipses))
local len = 0
for i = 1, number do
local b = value:byte(len+1)
if not b then
shortened = false
break
elseif b <= 127 then
len = len + 1
elseif b <= 223 then
len = len + 2
elseif b <= 239 then
len = len + 3
else
len = len + 4
end
end
local val = value and value:sub(1, len)
if ellipses and value and value:byte(len+1) then
val = val .. ellipses
end
return val
end,
noGuaranteeChange = true,
parameterTypes = { "number", "*string" }
}
-- Initialise the compile cache with an empty tag, something which would otherwise need some extra special-cased code
local compileCache =
{
[""] = { data = { }, events = { }, tag = "", method = function() return "" end },
}
function Aloft:InvalidateCompileCache()
for tag, compile in pairs(compileCache) do
if (tag ~= "") then
compile.tag = nil
compile.data = nil
compile.events = nil
compile.method = nil
compileCache[tag] = nil
end
end
end
function Aloft:CreateTag(tag, clearCache)
local parseTag = tag or ""
if clearCache then
compileCache[parseTag] = nil
elseif compileCache[parseTag] then
return compileCache[parseTag]
end
-- ChatFrame7:AddMessage("AloftAloftTag:CreateTag(): tag " .. tostring(tag))
local result = TagCompiler:Compile(tag, self.TagData, "string")
compileCache[tag] = result
return result
end
function Aloft:FixTagCasing(tag)
return TagCompiler:FixCasing(tag:gsub("|c%x%x%x%x%x%x%x%x ", ""):gsub("|r", ""), self.TagData, "string")
end
function Aloft:HighlightTagSyntax(tag)
return TagCompiler:HighlightSyntax(tag, self.TagData, "string")
end
I think this is a pitbull problem because for every enemy it shows 100/100 and its annoying when i click on pitbull it does not let me edit health text because for some reason it is not coming up in the game its hidden? and I do not know why