|
You last visited: Today at 17:27
Advertisement
eigenes Addon (Probleme mit dem Event-Handling)
Discussion on eigenes Addon (Probleme mit dem Event-Handling) within the World of Warcraft forum part of the Popular Games category.
08/17/2012, 04:09
|
#1
|
elite*gold: 0
Join Date: Aug 2012
Posts: 4
Received Thanks: 0
|
eigenes Addon (Probleme mit dem Event-Handling)
Hi@all...
Ich habe vor kurzem angefangen, mich mit der WoW-Addon-Materie zu beschäftigen und bin jetzt fleißig dabei, mir eigene Addons zu schreiben. Jetzt bin ich allerdings schon auf die ersten kleinen Probleme gestoßen.
Also bevor ich meine Probleme erläutere erstmal vorne weg etwas über mich. Ich beschäftige mich schon seit einigen Jahren mit Programmier- / Scriptsprachen. Unter meinem Sprachschatz finden sich u.a. C/++/#, Java, JavaScript, PHP, Pascal, Perl und diverse Basic-Sprachen (Visual Basic, Quick Basic, Pure Basic, etc.) außerdem noch einige Auszeichnungssprachen wie XML und das untergeordnete HTML und noch einiges was dazu gehört (MySQL, WordPress, usw.). Ich schreibe das, um ein wenig zu verdeutlichen, wie ungefähr mein derzeitiger Stand in Sachen Programmierung ist. Somit könnt ihr euch vieleicht ein Teil-Bild von mir machen und wisst, dass ihr mir nicht erst vorbeten müsst, was Variablen sind, wozu Funktionen gut sind oder was es mit Schleifen auf sich hat.
Ich hab mich jetzt ein wenig in Lua eingearbeitet und hab das Grundlegende drauf. Allerdings komme ich jetzt bei der WoW-API nicht ganz weiter. Es geht mir da speziell um das Thema Event-Handling.
Nehmen wir dazu mal ein kleines Code-Beispiel:
Code:
local MainFrame = CreateFrame("FRAME", "MainFrame", UIParent)
MainFrame:SetWidth(200)
MainFrame:SetHeight(200)
MainFrame:SetPoint("LEFT", UIParent, "LEFT", 0, 0)
MainFrame:SetBackdrop({
bgFile = "Interface\\Buttons\\WHITE8x8",
edgeFile = "Interface\\Buttons\\WHITE8x8",
edgeSize = 1})
MainFrame:SetBackdropColor(0, 0.5, 0.8, 0.3)
MainFrame:SetBackdropBorderColor(1, 1, 1, 0.7)
MainText = MainFrame:CreateFontString(nil, "ARTWORK")
MainText:SetFont("Fonts\\ARIALN.ttf", 14, "OUTLINE")
MainText:SetPoint("TOP", MainFrame, "TOP", 0, -5)
MainText:SetText("Any Text")
(Es ist nicht wirklich sinnvoll, dient aber auch nur zur Veranschaulichung.)
Jetzt möchte ich das Fenster mit dem Drücken einer Taste auf der Tastatur verschwinden lassen. Um das Fenster verschwinden zu lassen, benötige ich den Befehl "Hide()" das ist mir klar, allerdings weiß ich nicht, wie ich dieses Event bei einem Tastendruck auslöse. Ich hab mich schon ein wenig informiert aber nichts wirklich Hilfreiches zum Thema Event-Handling bei WoW-Addons gefunden. Mich würde auch gerne mal interessieren, was es alles für Events gibt?
Hier jetzt nochmal eine kleine Kurzfassung meiner Fragen:
- Wie reagiere ich auf ein Event? (ein kleines Codebeispiel wär mir am liebsten ^^)
- Was gibt es alles für Events, auf die ich reagieren kann?
Schonmal danke im Voraus. ^^
|
|
|
08/17/2012, 13:41
|
#2
|
elite*gold: 0
Join Date: Aug 2006
Posts: 445
Received Thanks: 520
|
Was du brauchst ist "SetScript"
Verschiedene ingameevents kannste mit "OnEvent" abfangen
Ne eventliste findest du hier
)
Um dein Beispiel also zu erweitern
Code:
local MainFrame = CreateFrame("FRAME", "MainFrame", UIParent)
MainFrame:SetWidth(200)
MainFrame:SetHeight(200)
MainFrame:SetPoint("LEFT", UIParent, "LEFT", 0, 0)
MainFrame:SetBackdrop({
bgFile = "Interface\\Buttons\\WHITE8x8",
edgeFile = "Interface\\Buttons\\WHITE8x8",
edgeSize = 1})
MainFrame:SetBackdropColor(0, 0.5, 0.8, 0.3)
MainFrame:SetBackdropBorderColor(1, 1, 1, 0.7)
MainFrame:SetScript("OnKeyDown", MainFrame.Hide)
MainText = MainFrame:CreateFontString(nil, "ARTWORK")
MainText:SetFont("Fonts\\ARIALN.ttf", 14, "OUTLINE")
MainText:SetPoint("TOP", MainFrame, "TOP", 0, -5)
MainText:SetText("Any Text")
(Ungetesetet sollte aber klappen)
Musst halt bisl rumspielen und code von andren addons bisl durchschaun
|
|
|
08/17/2012, 17:18
|
#3
|
elite*gold: 0
Join Date: Aug 2012
Posts: 4
Received Thanks: 0
|
Erstmal dankeschön für deine schnelle und hilfreiche Antwort.
Das Code-Beispiel funktioniert einwandfrei und auch die Links waren sehr hilfreich.
Ich hab es mal so abgeändert, dass es nur dann reagiert, wenn ich die Taste "T" drücke. Der Code Dazu sieht so aus:
Code:
local MainFrame = CreateFrame("FRAME", "MainFrame", UIParent)
MainFrame:SetWidth(200)
MainFrame:SetHeight(200)
MainFrame:SetPoint("LEFT", UIParent, "LEFT", 0, 0)
MainFrame:SetBackdrop({
bgFile = "Interface\\Buttons\\WHITE8x8",
edgeFile = "Interface\\Buttons\\WHITE8x8",
edgeSize = 1})
MainFrame:SetBackdropColor(0, 0.5, 0.8, 0.3)
MainFrame:SetBackdropBorderColor(1, 1, 1, 0.7)
MainText = MainFrame:CreateFontString(nil, "ARTWORK")
MainText:SetFont("Fonts\\ARIALN.ttf", 14, "OUTLINE")
MainText:SetPoint("TOP", MainFrame, "TOP", 0, -5)
MainText:SetText("Any Text")
local function HideWindow(self, button, down)
if button == "T" then
self:Hide()
end
end
MainFrame:SetScript("OnKeyDown", HideWindow)
Allerdings ist es wie fast immer beim Programmieren, wenn man ein Problem löst, tritt ein anderes auf. ^^
So lange das Fensterchen sichtbar ist, verschluckt es alle Tastatureingaben. Es ist mir dann nicht mehr möglich irgend ein anderes Fenster mittels Tastendruck zu öffnen, wie z.B. den Quest-Log mit der Taste "L" oder die Map mit der Taste "M", usw...
Gibt es da eine Möglichkeit, mit dem Event so zu sagen nur eine einzige Taste abzufragen, ohne dass die anderen Tasten ins Leere verlaufen?
|
|
|
08/18/2012, 00:22
|
#4
|
elite*gold: 132
Join Date: Feb 2011
Posts: 6,768
Received Thanks: 4,510
|
Wenn ich mich nicht irre, dann sollte frame:SetPropagateKeyboardInput(1) das richtige sein. Ansonsten lies mal nach (ab dem 12. Post).
|
|
|
08/18/2012, 02:15
|
#5
|
elite*gold: 0
Join Date: Aug 2012
Posts: 4
Received Thanks: 0
|
Genau das, wonach ich gesucht hab.
Dankeschön =)
|
|
|
|
Similar Threads
|
Flyff hp probleme mit addon
06/22/2011 - Flyff Private Server - 3 Replies
ich habe volgendes problem ich habe bei register alleseingestellt wie ich es sollte (siehe http://www.elitepvpers.com/forum/flyff-pserver-dis cussions-questions/677440-release-homepage-addons. html)
aber wenn ich es dann in HTML eingebe sieht das dann so aus
http://img9.imageshack.us/img9/1699/faillvf.jpg
Uploaded with ImageShack.us
benutze npage
|
Eigenes Addon erstellen - Lua?
05/11/2011 - World of Warcraft - 5 Replies
Hallo Experten!
habe eine kleine Frage an euch.
Ich möchte mir ein eigenes Addon erstellen, ein Grundlegendes Tutorial habe ich bereits gefunden, jedoch nichts weiterführendes?
Könnt ihr mir irgendwelche Hilfreichen Seiten posten auf denen ich mehr Informationen zu Lua beziehen kann?
Addon Studio V3 2010 schon versucht zu installieren. Das Funktioniert nicht mehr.
Gibt es noch funktionierende Versionen? Wenn ja bitte posten.
|
[Addon] event registrieren?
04/16/2010 - General Gaming Discussion - 1 Replies
hallo leute,
ich bastel gerade an einem addon rum, dazu benötige ich eine ständige
abfrage der eigenen hp. ich habe versucht das über das event
"UNIT_HEALTH" zu machen. jedoch wird die event funktion
nie ausgeführt. jemand ne idee woran das liegen könnte?
mfg depp
|
Addon probleme
04/21/2008 - World of Warcraft - 14 Replies
ich spiele seit..ca 1-2 wochen wieder WoW (auf nem shard ;) ) und habe mir vor vlt 4 tagen neue addons gezogen , aber von anfang an hatte ich mir diesen ein problem , sie wurden IMMER wieder resettet (ich logge mich nicht via alt+f4 aus)
atm läuft mein virenscanner über meinen Windowsordner nachdem ich auf den thread hier gestossen bin WoW-Europe.com Foren -> Addons resetten nach Neustart von WOW
ich denke allerdings nicht das ich den habe aber möglich ist alles , wüsstet ihr noch andere...
|
Probleme mit addon...
01/03/2008 - World of Warcraft - 6 Replies
habe das schon mal im Treat oben gepostet, habe aber Angst das da keiner mehr reinschaut...
so da mein erster Post hier, ich sitze jetzt seit 0.30 hier jetzt ist 2:56 und ich habe diesen " mist " noch immer nicht zum laufen gebracht gar nichts... und das regt mich innerlich gerade so tierisch auf das ich entweder so doof bin oder einfach die Erklärungen nix taugen
Punkt 1 addon ganz normal installiert
Punkt 2 Die datein die als Archive im Anhang waren ( Cartographer_Icons,...
|
All times are GMT +2. The time now is 17:27.
|
|