Register for your free account! | Forgot your password?

Go Back   elitepvpers > World of Warcraft > WoW Addons
You last visited: Today at 01:57

  • Please register to post and access all features, it's quick, easy and FREE!


eigenes Addon (Probleme mit dem Event-Handling)

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Aug 2012
Posts: 4
Received Thanks: 0
eigenes Addon (Probleme mit dem Event-Handling)

[email protected]
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. ^^



EmotionX is offline  
Old 08/17/2012, 13:41   #2
 
elite*gold: 0
Join Date: Aug 2006
Posts: 445
Received Thanks: 519



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


Los is offline  
Thanks
1 User
Old 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?
EmotionX is offline  
Old 08/18/2012, 00:22   #4
 
elite*gold: 132
Join Date: Feb 2011
Posts: 6,619
Received Thanks: 4,360
Wenn ich mich nicht irre, dann sollte frame:SetPropagateKeyboardInput(1) das richtige sein. Ansonsten lies mal nach (ab dem 12. Post).


Mingxie is offline  
Thanks
1 User
Old 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 =)


EmotionX is offline  
Reply



« Admin/Gm Addon 4.3.4 | ButtonPush / BlendMode funktioniert nicht richtig »

Similar Threads
Flyff hp probleme mit addon
06/22/2011 - Flyff PServer - Discussions / Questions - 3 Replies
ich habe volgendes problem ich habe bei register alleseingestellt wie ich es sollte (siehe http://www.elitepvpers.com/forum/flyff-pserver-discussions-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 - WoW Ask the Experts - 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 - WoW Main - Discussions / Questions - 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 - WoW Addons - 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 +1. The time now is 01:57.


Powered by vBulletin®
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Abuse
Copyright ©2018 elitepvpers All Rights Reserved.