Nachdem ich Ende Mai die letzte Version meines Addons myReputation für World of Warcraft veröffentlicht habe, musste ich leider am Wochenende ein 4.0er Update nachschieben.
Das Problem
Wie etliche weitere lange gewachsene WoW-Addons fiel auch myReputation mit Patch 4.0 komplett aus und schmiss LUA-Fehlermeldungen. Laut Bugsack gab es an mehreren Stellen Probleme, das entsprechende XML-ELement mittels this anzusprechen und beispielsweise Events hierfür zu registrieren.
Die Lösung
Eine kurze Recherche mit Big G zeigte mir einen Lösungsansatz zur Behebung dieser this/self-Problematik. Die Änderungen sehen dann beispielsweise wie nachfolgend aus.
XML-Datei alt
<OnLoad>
myReputation_OnLoad();
</OnLoad>
LUA-Datei alt
function myReputation_OnLoad()
this:RegisterEvent("ADDON_LOADED");
end
XML-Datei neu
<OnLoad>
myReputation_OnLoad(self);
</OnLoad>
LUA-Datei neu
function myReputation_OnLoad(this)
this:RegisterEvent("ADDON_LOADED");
end
Hinweis: Im Gegensatz zu früher ist somit das XML-Element mit dem OnEvent-Handler nicht automatisch über this erreichbar, sondern man muss das Element in der XML-Datei als Parameter self übergeben und in der Funktion der Einfachheit halber als Variable this empfangen.
Und wo ist das Update?
Die Addon-Beschreibung, Screenshots und den aktuellen Download findet ihr wie bei allen meinen WoW-Addons bei Curse.



Kommentar hinzufügen