Soo,
ich glaube zu wissen warum die Labels nicht mit dem itemName gefüllt werden. Hier scheint es an der API selbst zu liegen. Die API kann mir nur die Namen direkt anzeigen, die ich während der aktuellen Gamesession gesehen habe. Habe ich ein Item noch nicht gesehen wird eine Anfrage an der Server gestellt, hier dauert es scheinbar unterschiedlich lange bis eine Antwort ankommt. Daher kommt dann bei GetItemInfo(itemID) nil als Ergebnis.
Ich befürchte ich muss hier je Lokalisierung die Itemnamen meine kleinen Übersetzungstabellen aufnehmen. Oder gibt es einen anderen Weg vorzeitig an die Itemnamen zu kommen?
Was das Problem mit den immer wieder kehrenden Defaultsettings habe ich so gelöst (Zeile 4):
Lua Code:
--alle inhalte self.herbCheckboxes durchgehen und den aktuellen wert (checked/nicht checked bzw. true/false) für die checkbox entsprechend der db festlegen
for itemID, checkboxObj in pairs(self.herbCheckboxes) do
--wert der checkbox entsprechend der tabelle festlegen
if MillButtonDB[expansion] and MillButtonDB[expansion][itemID]==false then
checkboxObj:SetChecked(MillButtonDB[expansion][itemID])
else
checkboxObj:SetChecked(MillButton_Herblist[expansion][itemID])
end
--bei wertänderung in der db speichern
checkboxObj:SetScript("OnClick", function(self)
MillButtonDB[self:GetParent().name][self.itemID] = self:GetChecked()
end)
Aus MillButtonDB[expansion][itemID] habe ich MillButtonDB[expansion][itemID]==false gemacht und schon gehts.