I have an addon that changes names of enemies when I’m in arena, I’ll post the full code below.
I get LUA error constantly, but I have no idea why. Here is the contents of the errors (there are 2 that occur)
Message: …rface\AddOns\NameChangeScripts\NameChangeScripts.lua:29: attempt to concatenate global ‘i’ (a nil value)
Time: Sun Jul 11 15:52:45 2021
Count: 64
Stack: …rface\AddOns\NameChangeScripts\NameChangeScripts.lua:29: attempt to concatenate global ‘i’ (a nil value)
[string “@Interface\AddOns\NameChangeScripts\NameChangeScripts.lua”]:29: in function <…rface\AddOns\NameChangeScripts\NameChangeScripts.lua:17>
[string “=[C]”]: ?
[string “=[C]”]: in functionCompactUnitFrame_UpdateName' [string "@Interface\FrameXML\CompactUnitFrame.lua"]:315: in function <Interface\FrameXML\CompactUnitFrame.lua:305> [string "=[C]"]: in function
CompactUnitFrame_UpdateAll’
[string “@Interface\FrameXML\CompactUnitFrame.lua”]:194: in functionCompactUnitFrame_SetUnit' [string "@Interface\AddOns\Blizzard_NamePlates\Blizzard_NamePlates.lua"]:417: in function
OnAdded’
[string “@Interface\AddOns\Blizzard_NamePlates\Blizzard_NamePlates.lua”]:118: in function `OnNamePlateAdded’
[string “@Interface\AddOns\Blizzard_NamePlates\Blizzard_NamePlates.lua”]:56: in function <…e\AddOns\Blizzard_NamePlates\Blizzard_NamePlates.lua:47>Locals: F = {
0 =
WidgetContainer = {
}
classificationIndicator = {
}
castBar = {
}
maxDispelDebuffs = 0
inVehicle = false
ThreatPlates = true
optionTable = {
}
overAbsorbGlow = {
}
totalAbsorb = {
}
name = {
}
aggroHighlight = {
}
hideCastbar = false
myHealAbsorbRightShadow = {
}
overHealAbsorbGlow = {
}
newUnit = true
ignoreCUFNameRequirement = true
selectionHighlight = {
}
myHealAbsorbLeftShadow = {
}
maxDebuffs = 0
unit = “nameplate2”
unitExists = true
disableMouse = true
ClassificationFrame = {
}
healthBar = {
}
BuffFrame = {
}
RaidTargetFrame = {
}
LoseAggroAnim = {
}
hideHealthbar = false
maxBuffs = 0
myHealAbsorb = {
}
otherHealPrediction = {
}
totalAbsorbOverlay = {
}
displayedUnit = “nameplate2”
myHealPrediction = {
}
}
(*temporary) = defined =[C]:-1
(*temporary) = {
0 =
}
(*temporary) = “Paladin”
(*temporary) = “arena”
(*temporary) = nil
(*temporary) = “PALADIN”
(*temporary) = 2
(*temporary) = nil
(*temporary) = nil
(*temporary) = “attempt to concatenate global ‘i’ (a nil value)”
U = defined =[C]:-1and:
Message: …rface\AddOns\NameChangeScripts\NameChangeScripts.lua:29: attempt to concatenate global ‘i’ (a nil value)
Time: Sun Jul 11 15:54:06 2021
Count: 66
Stack: …rface\AddOns\NameChangeScripts\NameChangeScripts.lua:29: attempt to concatenate global ‘i’ (a nil value)
[string “@Interface\AddOns\NameChangeScripts\NameChangeScripts.lua”]:29: in function <…rface\AddOns\NameChangeScripts\NameChangeScripts.lua:17>
[string “=[C]”]: ?
[string “=[C]”]: in functionCompactUnitFrame_UpdateName' [string "@Interface\FrameXML\CompactUnitFrame.lua"]:315: in function <Interface\FrameXML\CompactUnitFrame.lua:305> [string "=[C]"]: in function
CompactUnitFrame_UpdateAll’
[string “@Interface\FrameXML\CompactUnitFrame.lua”]:194: in functionCompactUnitFrame_SetUnit' [string "@Interface\AddOns\Blizzard_NamePlates\Blizzard_NamePlates.lua"]:417: in function
OnAdded’
[string “@Interface\AddOns\Blizzard_NamePlates\Blizzard_NamePlates.lua”]:118: in function `OnNamePlateAdded’
[string “@Interface\AddOns\Blizzard_NamePlates\Blizzard_NamePlates.lua”]:56: in function <…e\AddOns\Blizzard_NamePlates\Blizzard_NamePlates.lua:47>Locals: F = {
0 =
WidgetContainer = {
}
classificationIndicator = {
}
castBar = {
}
maxDispelDebuffs = 0
inVehicle = false
ThreatPlates = true
optionTable ={
}
overAbsorbGlow = {
}
totalAbsorb = {
}
name = {
}
aggroHighlight = {
}
hideCastbar = false
myHealAbsorbRightShadow = {
}
overHealAbsorbGlow = {
}
newUnit = true
ignoreCUFNameRequirement = true
selectionHighlight = {
}
myHealAbsorbLeftShadow = {
}
maxDebuffs = 0
unit = “nameplate2”
unitExists = true
disableMouse = true
ClassificationFrame = {
}
healthBar = {
}
BuffFrame = {
}
RaidTargetFrame = {
}
LoseAggroAnim = {
}
hideHealthbar = false
maxBuffs = 0
myHealAbsorb = {
}
otherHealPrediction = {
}
totalAbsorbOverlay = {
}
displayedUnit = “nameplate2”
myHealPrediction = {
}
}
(*temporary) = defined =[C]:-1
(*temporary) = {
0 =
}
(*temporary) = “Druid”
(*temporary) = “arena”
(*temporary) = nil
(*temporary) = “DRUID”
(*temporary) = 11
(*temporary) = nil
(*temporary) = nil
(*temporary) = “attempt to concatenate global ‘i’ (a nil value)”
U = defined =[C]:-1The full addon is here:
–[[ClassColors = {
{0.78, 0.61, 0.43}, – brown
{0.96, 0.55, 0.73}, – Pink
{0.67, 0.83, 0.45}, --Green
{1, 0.96, 0.41}, --Yellow
{1,1,1}, --white
{0, 0.44, 0.87}, --darkblue
{0, 0.44, 0.87}, --placeholder
{0.41, 0.80, 0.94}, --lightblue
{0.58, 0.51,0.79}, --purple
{0.58, 0.51,0.79}, --placeholder
{1, 0.49, 0.04} --orange
}–]]local U=UnitIsUnit
hooksecurefunc(“CompactUnitFrame_UpdateName”,function(F)
if IsActiveBattlefieldArena()and F.unit:find(“nameplate”) then
for i=1,5 do
if U(F.unit,“arena”…i)then
F.name:SetText(UnitClass(F.unit) … " " … i)
F.name:SetTextColor(1,1,0)
break
end
end
end
–outside of arena class-name nameplates
if F.unit:find(“nameplate”) and UnitIsPlayer(F.unit) then
F.name:SetText(UnitClass(F.unit)(“arena”…i) … " " … i)
F.name:SetTextColor(1,1,0)
end
end)
TCC = CreateFrame(“Frame”, “TargetColorChange”)
local function ChangeTargetColor()
local player = UnitIsPlayer(“target”)
local targetClassName, targetClassFileName, targetClassId = UnitClass(“target”)-- places arena numbers on targets
for i=1,5 do
if UnitIsUnit(“target”,“arena”…i) then
TargetFrame.name:SetText(UnitClass(“arena”…i) … " " … i)
elseif UnitIsUnit(“target”, “party”…i) then
TargetFrame.name:SetText(“Party” … " " … i … “**”)
end
endlocal function targetVertexColor(r,g,b) TargetFrameNameBackground:SetVertexColor(r,g,b) end -- Class-Colored Player Target Frame --[[for i=1,11 do local r local g local b if i ~= 6 and i ~= 10 then for j=1,3 do if j == 1 then r = ClassColors[i][j] end if j == 2 then g = ClassColors[i][j] end if j == 3 then b = ClassColors[i][j] end end if targetClassId == i and player then targetVertexColor(r,g,b) end end end--]]
end
TCC:SetScript(“OnUpdate”, ChangeTargetColor)
FCC = CreateFrame(“Frame”, “FocusColorChange”)
local function ChangeFocusColor()
local focusClassName, focusClassFileName, focusClassId = UnitClass(“focus”)
local player = UnitIsPlayer(“focus”)
–show arena numbers on focus
for i=1,5 do
if UnitIsUnit(“focus”,“arena”…i) then
FocusFrame.name:SetText(UnitClass(“arena”…i) … " " … i)
end
end
local function focusVertexColor(r,g,b)
FocusFrameNameBackground:SetVertexColor(r,g,b)
end
– Class-Colored Focus Frame
–[[for i=1,11 do
local r
local g
local b
if i ~= 6 and i ~= 10 then
for j=1,3 do
if j == 1 then
r = ClassColors[i][j]
end
if j == 2 then
g = ClassColors[i][j]
end
if j == 3 then
b = ClassColors[i][j]
end
end
if focusClassId == i and player then
focusVertexColor(r,g,b)
end
end
end–]]end
FCC:SetScript(“OnUpdate”, ChangeFocusColor)