Ваша кнопка наследуется от InterfaceOptionsListButtonTemplate
, который изначально наследуется от OptionsListButtonTemplate
.
Этот шаблон имеет текст кнопки:
<ButtonText name="$parentText" justifyH="LEFT" wordwrap="false"/>
Вот код, где происходит ошибка:
function OptionsListButton_OnEnter (self)
if (self.text:IsTruncated()) then
GameTooltip:SetOwner(self, "ANCHOR_RIGHT");
GameTooltip:SetText(self:GetText(), NORMAL_FONT_COLOR[1], NORMAL_FONT_COLOR[2], NORMAL_FONT_COLOR[3], 1, true);
end
end
Он пытается использовать значение свойства текста кнопки - в данном случае self
- с помощью self.text
. text
parentKey не назначен в XML-файле, но в OnLoad
функция, которая была перезаписана вашей.
Чтобы исправить шаблон, вам нужно расширить функцию ShiftDropDown_Button_OnLoad
:
function ShiftDropDown_Button_OnLoad(self)
self.text = _G[self:GetName() .. "Text"];
self.highlight = self:GetHighlightTexture();
self:RegisterEvent('ADDON_LOADED')
self:SetScript('OnEvent', function(self, event, ...)
if event == 'ADDON_LOADED' and ... == 'TauntMasterReborn' then
TauntMasterRebornDB = TauntMasterRebornDB or {}
for option, value in pairs(TauntM_defaults) do
if not TauntMasterRebornDB[option] then TauntMasterRebornDB[option] = value end
end
self:SetText(TauntMasterRebornDBChar.SHIFTTARGET1)
end
end)
end