Add-On Problem

.:*Death*:.

Quest-Mob
Mitglied seit
25.04.2009
Beiträge
46
Reaktionspunkte
0
Kommentare
15
Buffs erhalten
16
Hallo, ich habe seit neuestem angefangen Add-Ons selbst zu erstellen. Nachdem dies manuell nicht wirklich prickelnd verlief (UI-Element wurden schlicht nicht angezeigt) versuchte ich mich an einem Add-On Stuido (Kp, ob ich dieses hier verlinken darf). Dort wurde mir aber schon bald ein erneuter Dämpfer verpasst. Nach fertigstellung und ersten Tests bemerkte ich, dass nicht eine einzige Funktion/ kein Script funktionierte und alle die selbe Fehlermeldungen ausgaben, nämlich dass die benötigte Funktion nicht vorhanden sei.  Das einfachste Beispiel ist die onload-Funktion die eigentlich beim Starten durchgeführt werden sollte. Aber selbst diese Funktion wird nicht erkannt. Seltsame Funktionsnamen/Variablennamen (Faraframes) sind deshalb vorhanden da ich das File von  Farangframe als Vergleich und Hilfe benutzt hab.

Hier ein Teil des Druiddpscounter.toc Files:

Code:
## Title: ---
## Version: 1.0.0
## Author: --- at ---
## Interface: 30300

Frame.xml

Hier ein Teil des ddps.lua Scripts:

Code:
function Loading()
    out("DDPS: OnLoad");
  SLASH_FARAFRAMES1 = "/ddps";
  SlashCmdList["FARAFRAMES"] = function(msg)
        FaraFrames_SlashCommandHandler(msg);
end

Hier ein Teil des Frame.xml Files:

Code:
<Ui xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.blizzard.com/wow/ui/">
    <script file="ddps.lua"/>
        <Frame name="Frame1" parent="UIParent" toplevel="true" enableMouse="true">

[....]


            <scripts>
                <OnLoad>
                    Loading()
                </OnLoad>
            </Scripts>
        </Frame>
</Ui>

Meine Vermutung lautet, dass das .lua Filde nicht registriert wird aus irgendeinem Grund da nicht nur diese eine Funktion nicht erkannt wird sondern auch jegliche andere Funktion die ich mithilfen von Knöpfen aufrufe. Falls ihr in diesen kleinen Code Schnipseln schon etwas erkennt was nicht Funktioniert schreibt es bitte. Wenn nicht könnt ihr euch auch den kompletten Add-On versuch downloaden und analysieren.

Danke im Vorraus an alle Helfer und 

Mfg: Death
 
Keine Ahnung ob das einen Einfluss hat, aber meine .toc Datei sieht wie folgt aus:

Code:
## Interface: 30300
## Title-deDE: MeinAddon
## Title-enGB: MyAddon
## Notes-deDE: Beispiel
## Notes-enGB: Sample
## Author: kneubi 
## Version: 0.1b

embeded.xml

core.lua

Sprich ich habe eine andere Reihenfolge am Anfang der Datei, und binde meine LUA-Datei direkt im .toc ein.

Das XML verwende ich weil ich Ace3-Libs einfüge und von dort Funktionen verwende und keine Dateien die das Addon sozusagen "zum laufen bringen".

Ansonsten beim anschauen de Codes und mit einem anderen Addoncode vergleichen, sieht es so aus als würden bei dir noch ein paar ";" fehlen.

Gruss
Kneubi

PS: Ich bin auch am LUA lernen und selber Addons schreiben, daher versuche ich dir mal zu helfen ;-)
 
Das mit dem .lua direkt einbinden hab ich auch schon versucht. Leider erfolglos. Das mit den "##" Kommentaren hat leider auch keine Funktion da es ja nur Kommentare sind. Aber das mit 
sieht es so aus als würden bei dir noch ein paar ";" fehlen.
hört sich interessant an. Wo genau fehlen denn die?
 
Da ich selber relativ neu bin in Sachen LUA, vermute ich (wenn ich so den Code von Addons anschaue) dass das ";" immer am ende einer Codezeile die etwas "ausführt".

Und wie Wertzû schon bestätigt hat, muss du den LUA-Teil der das Addon sozusagen ausmacht, der das Addon erstellt/wo das Addon ausführt wenn du etwas machst, musst du in der .toc-Datei einfügen.



Zu den ";" würde ich es in etwa so machen:

Code:
function blablub()   --Hier kein ;
local test = nil;       --Hier muss eins hin
if (test = nil) then   --Hier darf keins hin
	mach dies und das;    --Hier muss wieder eins hin
else		--Hier darf wieder keins hin
	mach jenes; --hier muss eins hin
end  --Hier wieder keines hin

Wenn ich das oben auf deinen Code "abwälze" sollte es in etwa so aussehen(als ich mir deine LUA-Dateien angesehen habe, fehlten da meiner Meinung nach einige ";"):

[font=arial, verdana, tahoma, sans-serif]function Loading()
out("DDPS: onload");
SLASH_FARAFRAMES1
= "/ddps";
SlashCmdList["FARAFRAMES"] = function(msg); --Hier fehlt glaube ich eines, oder gehört die nächste Zeile noch zu dem Befehl?
FaraFrames_SlashCommandHandler(msg);
end
[/font]
 
also soviel ich weiß benutzt man das ";" in LUA generell überhaupt nicht, hab es zumindest noch nie benutzt und auch in anderen addons noch nie gesehen
ich kenns nur von den C sprachen und java
 
Hm... merkwürdig. Bisher jedes Addon wo ich den Quellcode angeschaut hat, hat die ";" im Code.... Vielleicht habe ich die 20 Addons benutz, die diese nutzen.
 
lol, grad extra nochmal die dbm-core angeschaut, da werden keine verwendet
biggrin.gif

vllt sind sie ja optional, ka solange kann ich lua auch wieder net
müssen wir wohl auf wertzu warten^^
 
Zuletzt bearbeitet von einem Moderator:
also soviel ich weiß benutzt man das ";" in LUA generell überhaupt nicht, hab es zumindest noch nie benutzt und auch in anderen addons noch nie gesehen
ich kenns nur von den C sprachen und java

in scripts schon, jedenfalls nur selten. (soweit ich mich errinern kann)

Code:
local index = GetCurrentResolution();
local resolution = select(index, GetScreenResolutions());

z.b.

guck mir nacher mal den lua teil durch, momentan noch recht frisch und müde

nach erstem hinschaun hab ich was entdeckt

Code:
function Loading() 
 SlashCmdList["FARAFRAMES"] = function(msg) FaraFrames_SlashCommandHandler(msg) end
 out("DDPS: OnLoad");
 SLASH_FARAFRAMES1 = "/ddps";

end)

glaub das war so

ka obs stimmt müsst ihr nachschaun (spiele kein wow ATM mehr)

e:

nach umschreiben der TOC sieht das wie folgt aus
http://www.pictureupload.de/originals/pictures/010710102315_Unbenannt.png

keine lua fehler oder derartiges
 
Zuletzt bearbeitet von einem Moderator:
Hat leider alles nichts genützt, bei mir wird weiterhin keine einzige Funktion abgerufen und ausgeführt. Hoffe dass ich bald selber mal was finde und starte danach nochmal ein Versuch. Aber danke für die Hilfe!
 
In der Lua-Datei finde ich "lokal" und du meist wohl "local", oder? :-)

Das einladen der der XML- und Lua-Datei ist korrekt, aber noch ein kleiner Tipp:

SlashCmdList["FARAFRAMES"] = FaraFrames_SlashCommandHandler;

Fertig. :-) Brauchst keine Funktion in Funktion ausführen.
 
Zurück