Das erste eigene Addon: Hello World
Seite 1 von 2 • Austausch •
Seite 1 von 2 • 1, 2 
Das erste eigene Addon: Hello World
Da ich mich heute abend mal kurz damit beschäftigt habe und das evtl einige auch interessiert:
Wie schreibt man sein eigenes kleines erstes Addon für WoW - natürlich ein "Hello World" Addon.
Grundsätzlich brauch man drei Dateien, die man in einen Unterordner steckt:
x.lua für die Funktionen
x.xml für die Optik
x.toc als Headerdatei, der alle .luas und .xmls auflistet, die für das Addon geladen werden sollen.
Nennt man jetzt seinen Ordner stimmungsvoll HelloWorld, kommt folgendes in die drei Dateien rein:
------------------------------
helloworld.lua:
function HelloWorld()
message("Hello World!");
end
helloworld.xml:
<Ui xmlns="http://www.blizzard.com/wow/ui/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.blizzard.com/wow/ui/
..\..\FrameXML\UI.xsd">
<Frame name="HelloWorldFrame">
<Scripts>
<OnLoad>
HelloWorld();
</OnLoad>
</Scripts>
</Frame>
</Ui>
helloworld.toc:
## Interface: 20400
## Title: Hello World!
## Notes: My first AddOn
## Dependencies:
helloworld.lua
helloworld.xml
--------------------------------------
Das Addon wird beim Einloggen in einen Char geladen und stellt ein Frame mit den Text "Hello World" da.
Eine genauere Erklärung gibts zB auf
http://www.wowwiki.com/HOWTOs
wobei die lua - Referenz hier liegt: http://www.wowwiki.com/Lua_functions
und die Widget - API gibt hier: http://www.wowwiki.com/Widget_API
Die gaaaanz auführliche Einleitung für das HelloWorldAddon gibts dementsprechend hier: http://www.wowwiki.com/AddOn_programming_tutorial/Introduction
Bzgl meines Addonwunsches: Raidmitglied als Ziel, Addon anklicken und die ganze Gruppe des Ziels wird geschildet braucht es wohl noch einige Zeit.
Aber mal schauen ^^.
Wie schreibt man sein eigenes kleines erstes Addon für WoW - natürlich ein "Hello World" Addon.
Grundsätzlich brauch man drei Dateien, die man in einen Unterordner steckt:
x.lua für die Funktionen
x.xml für die Optik
x.toc als Headerdatei, der alle .luas und .xmls auflistet, die für das Addon geladen werden sollen.
Nennt man jetzt seinen Ordner stimmungsvoll HelloWorld, kommt folgendes in die drei Dateien rein:
------------------------------
helloworld.lua:
function HelloWorld()
message("Hello World!");
end
helloworld.xml:
<Ui xmlns="http://www.blizzard.com/wow/ui/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.blizzard.com/wow/ui/
..\..\FrameXML\UI.xsd">
<Frame name="HelloWorldFrame">
<Scripts>
<OnLoad>
HelloWorld();
</OnLoad>
</Scripts>
</Frame>
</Ui>
helloworld.toc:
## Interface: 20400
## Title: Hello World!
## Notes: My first AddOn
## Dependencies:
helloworld.lua
helloworld.xml
--------------------------------------
Das Addon wird beim Einloggen in einen Char geladen und stellt ein Frame mit den Text "Hello World" da.
Eine genauere Erklärung gibts zB auf
http://www.wowwiki.com/HOWTOs
wobei die lua - Referenz hier liegt: http://www.wowwiki.com/Lua_functions
und die Widget - API gibt hier: http://www.wowwiki.com/Widget_API
Die gaaaanz auführliche Einleitung für das HelloWorldAddon gibts dementsprechend hier: http://www.wowwiki.com/AddOn_programming_tutorial/Introduction
Bzgl meines Addonwunsches: Raidmitglied als Ziel, Addon anklicken und die ganze Gruppe des Ziels wird geschildet braucht es wohl noch einige Zeit.
Aber mal schauen ^^.

Meldoria- Anzahl der Beiträge: 375
Anmeldedatum: 20.11.08
Ingame Charakter
Name: Meldoria
Klasse:
Priester
Re: Das erste eigene Addon: Hello World
immer diese C/C++/C# Studenten^^
Hello World...so fängt das Grauen immer an
Hello World...so fängt das Grauen immer an

Savior- Anzahl der Beiträge: 337
Alter: 29
Ort: nähe Nürnberg
Anmeldedatum: 11.02.08
Ingame Charakter
Name:
Klasse:
Re: Das erste eigene Addon: Hello World
Du hast Objective-C vergessen, Sav 

Katlefiya- Gildenrat
- Anzahl der Beiträge: 642
Alter: 42
Ort: NRW, nähe Bielefeld
Anmeldedatum: 06.04.08
Ingame Charakter
Name: Katlefiya
Klasse:
Druide
Re: Das erste eigene Addon: Hello World
dein ziel bedingt ein paar if-anweisungen und so.
gehen die mit makros nicht?
ich denke, man müsste außerdem wissen, wie wow die spieler im raid nummeriert. ich stelle mir nen algorithmus so vor:
hole Nummer von (angewähltes Ziel)
wenn (Nummer) < 5 dann
wähle (spieler 1)
zaubere Schild
wähle (spieler 2)
zaubere Schild
usw
wenn (Nummer) > 5 und <10 dann
wähle (spieler 6)
zaubere Schild
etc.
könnte evtl zu lang und wegen der if's zu kompliziert für ein makro sein.
wie siehst du das?
gehen die mit makros nicht?
ich denke, man müsste außerdem wissen, wie wow die spieler im raid nummeriert. ich stelle mir nen algorithmus so vor:
hole Nummer von (angewähltes Ziel)
wenn (Nummer) < 5 dann
wähle (spieler 1)
zaubere Schild
wähle (spieler 2)
zaubere Schild
usw
wenn (Nummer) > 5 und <10 dann
wähle (spieler 6)
zaubere Schild
etc.
könnte evtl zu lang und wegen der if's zu kompliziert für ein makro sein.
wie siehst du das?

Sharife- Anzahl der Beiträge: 233
Alter: 29
Ort: Leipzig
Anmeldedatum: 10.05.08
Ingame Charakter
Name: Sharife
Klasse:
Jäger
Re: Das erste eigene Addon: Hello World
Weißt du was...
Ich hab mir die Funktionen schon genau durchgelesen und ich weiß ziemlich genau was ich brauche.
DIe Makrosprache ist aber auf / - Kommandos beschränkt und diese /.. haben sehr geringe Funktionalität. Nur die Lua - Begriffe können auf die SupgroupID eines Raidteilnehmers zugreifen.
DIe Lösung ist: sich ein eigenes /schildedieganzegruppe über ein Addon zu definieren und das dann als makro in nen Button zu basteln.
Da brauch ich vermutlich nich mal auch nur ein "if".
Aber find ich echt putzig.. programmierst du mir das in QBasic?
Ich hab mir die Funktionen schon genau durchgelesen und ich weiß ziemlich genau was ich brauche.
DIe Makrosprache ist aber auf / - Kommandos beschränkt und diese /.. haben sehr geringe Funktionalität. Nur die Lua - Begriffe können auf die SupgroupID eines Raidteilnehmers zugreifen.
DIe Lösung ist: sich ein eigenes /schildedieganzegruppe über ein Addon zu definieren und das dann als makro in nen Button zu basteln.
Da brauch ich vermutlich nich mal auch nur ein "if".
Aber find ich echt putzig.. programmierst du mir das in QBasic?

Meldoria- Anzahl der Beiträge: 375
Anmeldedatum: 20.11.08
Ingame Charakter
Name: Meldoria
Klasse:
Priester
Re: Das erste eigene Addon: Hello World
Und weil es so schön war, gehts weiter...
Bindung von Slash - Kommandos ans eigene Addon
(Voraussetzung, um es in ein Makro zu packen / den Quellcode überhaupt zu testen)
-------------------------------
helloworld.lua:
SLASH_HELLOWORLD1, SLASH_HELLOWORLD2 = '/hiw', '/hellow'; -- 3.
function SlashCmdList.HELLOWORLD(msg, editbox) -- 4.
print("Hello World!");
end
helloworld.toc:
## Interface: 20400
## Title: Hello World!
## Notes: My first AddOn
## Dependencies:
helloworld.lua
hellworld.xml:
wird nicht benötigt, da das Addon keine grafische Anzeige braucht.
---------------------------------
Damit bekommt man als Antwort auf ein /hiw oder ein /hallow ein "Hallo Welt" im Chatfenster.
Das Beispiel mit ein paar Zusatzkommentaren gibts hier:
http://www.wowwiki.com/Creating_a_slash_command
Damit fehlt nur noch der echte Code für mein Addon - auslösen kann ich es schon. Da kann das Testen losgehen.
Bindung von Slash - Kommandos ans eigene Addon
(Voraussetzung, um es in ein Makro zu packen / den Quellcode überhaupt zu testen)
-------------------------------
helloworld.lua:
SLASH_HELLOWORLD1, SLASH_HELLOWORLD2 = '/hiw', '/hellow'; -- 3.
function SlashCmdList.HELLOWORLD(msg, editbox) -- 4.
print("Hello World!");
end
helloworld.toc:
## Interface: 20400
## Title: Hello World!
## Notes: My first AddOn
## Dependencies:
helloworld.lua
hellworld.xml:
wird nicht benötigt, da das Addon keine grafische Anzeige braucht.
---------------------------------
Damit bekommt man als Antwort auf ein /hiw oder ein /hallow ein "Hallo Welt" im Chatfenster.
Das Beispiel mit ein paar Zusatzkommentaren gibts hier:
http://www.wowwiki.com/Creating_a_slash_command
Damit fehlt nur noch der echte Code für mein Addon - auslösen kann ich es schon. Da kann das Testen losgehen.

Meldoria- Anzahl der Beiträge: 375
Anmeldedatum: 20.11.08
Ingame Charakter
Name: Meldoria
Klasse:
Priester
Re: Das erste eigene Addon: Hello World
Oha es gibt nen Addon - Unteforum. Das habe ich noch gar nie gesehen.
Merke: Um Bots zu verhindern hat Blizzard ein paar Funktionen seit 2.0 protected definiert - die dürfen nur noch von einem "secure button" / WoW selbst ausgelöst worden.
Zu diesen Funktionen gehört auch: CastSpellByName() bzw alles, was mit Zaubern zu tun hat.
Stellen wir uns vor, wir können schon über alle Raidmitlgieder iterieren (über "raidx"), zaubern dürfen wir aber nur, wenn wir einen sicheren Knopf nach einem Blizzard Template dem voran schalten.
Evtl kann man auch eine eigene Schummelfunktion schreiben.
Siehe
http://forums.worldofwarcraft.com/thread.html?topicId=54894142&postId=548989235&sid=1#0
http://www.wowwiki.com/API_hooksecurefunc
Merke: Um Bots zu verhindern hat Blizzard ein paar Funktionen seit 2.0 protected definiert - die dürfen nur noch von einem "secure button" / WoW selbst ausgelöst worden.
Zu diesen Funktionen gehört auch: CastSpellByName() bzw alles, was mit Zaubern zu tun hat.
Stellen wir uns vor, wir können schon über alle Raidmitlgieder iterieren (über "raidx"), zaubern dürfen wir aber nur, wenn wir einen sicheren Knopf nach einem Blizzard Template dem voran schalten.
Evtl kann man auch eine eigene Schummelfunktion schreiben.
Siehe
http://forums.worldofwarcraft.com/thread.html?topicId=54894142&postId=548989235&sid=1#0
http://www.wowwiki.com/API_hooksecurefunc

Meldoria- Anzahl der Beiträge: 375
Anmeldedatum: 20.11.08
Ingame Charakter
Name: Meldoria
Klasse:
Priester
Re: Das erste eigene Addon: Hello World
Ok keine Schummelfunktion möglich, geht nur über die SecureButtons.
Tolle Kommentare im englischen Forum:
--------------
<Technickgequatsche>
Antwort: *watches with dismay as the answer quickly escalates beyond his vocabulary*
----------------
My apologies. I'll go sit in the corner and contemplate the error of my ways. Bad troll! Bad!
----------------
Tolle Kommentare im englischen Forum:
--------------
<Technickgequatsche>
Antwort: *watches with dismay as the answer quickly escalates beyond his vocabulary*
----------------
My apologies. I'll go sit in the corner and contemplate the error of my ways. Bad troll! Bad!
----------------

Meldoria- Anzahl der Beiträge: 375
Anmeldedatum: 20.11.08
Ingame Charakter
Name: Meldoria
Klasse:
Priester
Re: Das erste eigene Addon: Hello World
Update: XML - Handbuch aus der Unibib auf dem Schreibtisch (dem zweiten, noch nich auf dem ersten, dauert also noch).
DIe Sache ist noch nicht vorbei! Ich werde das SecureButtonTemplate bezwingen!
DIe Sache ist noch nicht vorbei! Ich werde das SecureButtonTemplate bezwingen!

Meldoria- Anzahl der Beiträge: 375
Anmeldedatum: 20.11.08
Ingame Charakter
Name: Meldoria
Klasse:
Priester
Re: Das erste eigene Addon: Hello World
Mit einem XML-Handbuch????

Katlefiya- Gildenrat
- Anzahl der Beiträge: 642
Alter: 42
Ort: NRW, nähe Bielefeld
Anmeldedatum: 06.04.08
Ingame Charakter
Name: Katlefiya
Klasse:
Druide
Re: Das erste eigene Addon: Hello World
Klar, ich hab da irgendein "es taucht nicht auf " - Problem, was ich einfach nich nachvollziehen kann.
Ich muss verstehen, was ich in der OnLoad() machen muss ^^ und auch nach 5 Addonquelltexten bin ich irgendwie noch nich so ganz auf den Trichter gekommen (wenn man die geringe Zeitinvestition mit betrachtet hehe).
Und mein Zeitaufwand in der Problemfindung reduziert sich, wenn ich das Zeugs ausgedruckt weil schneller lesbar vor mir liegen habe.
Man kann annehmen, dass solche Bücher besser als Onlinetutorials konzeptioniert sind, wenns ums Infos schnell finden geht.
Wenn man dazu nimmt, dass Unibibbücher eine Ausleihefrist von 4 Monaten haben ^^ .. .
Ich muss verstehen, was ich in der OnLoad() machen muss ^^ und auch nach 5 Addonquelltexten bin ich irgendwie noch nich so ganz auf den Trichter gekommen (wenn man die geringe Zeitinvestition mit betrachtet hehe).
Und mein Zeitaufwand in der Problemfindung reduziert sich, wenn ich das Zeugs ausgedruckt weil schneller lesbar vor mir liegen habe.
Man kann annehmen, dass solche Bücher besser als Onlinetutorials konzeptioniert sind, wenns ums Infos schnell finden geht.
Wenn man dazu nimmt, dass Unibibbücher eine Ausleihefrist von 4 Monaten haben ^^ .. .

Meldoria- Anzahl der Beiträge: 375
Anmeldedatum: 20.11.08
Ingame Charakter
Name: Meldoria
Klasse:
Priester
Re: Das erste eigene Addon: Hello World
Du vermutest also einen Fehler in einer von dir erstellten XML-Datei?

Katlefiya- Gildenrat
- Anzahl der Beiträge: 642
Alter: 42
Ort: NRW, nähe Bielefeld
Anmeldedatum: 06.04.08
Ingame Charakter
Name: Katlefiya
Klasse:
Druide
Re: Das erste eigene Addon: Hello World
Jein.
Die xml - Datei startet die Funktion in der .lua, die das xml - Teil aufpoppen lässt.
Und so ein Büchlein zu lesen dauert nich so lange ^^ weil XML ja nicht wirklich ein Problem ist. .. Es sei denn ich hab da was großes bei Tag-auf, Tag-zu übersehen
.
Letztendlich bin ich nur demnächst dabei, das Problem von vorne nach hinten komplett aufzurollen, anstatt irgendwo dramm rum zu drehen und keine Ahnung von dem, was ich da mache zu haben ^^.
Die xml - Datei startet die Funktion in der .lua, die das xml - Teil aufpoppen lässt.
Und so ein Büchlein zu lesen dauert nich so lange ^^ weil XML ja nicht wirklich ein Problem ist. .. Es sei denn ich hab da was großes bei Tag-auf, Tag-zu übersehen
Letztendlich bin ich nur demnächst dabei, das Problem von vorne nach hinten komplett aufzurollen, anstatt irgendwo dramm rum zu drehen und keine Ahnung von dem, was ich da mache zu haben ^^.

Meldoria- Anzahl der Beiträge: 375
Anmeldedatum: 20.11.08
Ingame Charakter
Name: Meldoria
Klasse:
Priester
Re: Das erste eigene Addon: Hello World
Naja, wohlgeformtes XML zu schreiben ist in der Tat kein Problem - die Validität ist das Problem, d.h. genügt das Dokument auch noch einer inhaltlichen Struktur, welche in einer Strukturbeschreibung (DTD oder Schema-Definition) vorgegeben wurde. Will man das "von Hand" überprüfen, dann artet das schnell in Sisyphos-Arbeit aus. Ist - ja nach Komplexität der benutzten Schema-Definition - eher was für Masochisten. Ich empfehle die Verwendung eines validierenden XML-Editors 

Katlefiya- Gildenrat
- Anzahl der Beiträge: 642
Alter: 42
Ort: NRW, nähe Bielefeld
Anmeldedatum: 06.04.08
Ingame Charakter
Name: Katlefiya
Klasse:
Druide
Re: Das erste eigene Addon: Hello World
Jo und ich schätze, ich sollte mal wissen, was diese Templates für Auswirkungen haben, die man im XML - Kopf definieren muss. Denn sonst sollte es ja eigentlich funktionieren .. .

Meldoria- Anzahl der Beiträge: 375
Anmeldedatum: 20.11.08
Ingame Charakter
Name: Meldoria
Klasse:
Priester
Seite 1 von 2 • 1, 2 
Ähnliche Themen» Wetter Addon v1.1
» Mein Tipp: mach dir eigene Ziele
» Einbinden der Kameras in die eigene Website ohne zusätzliche Software und ohne laufenden Rechner.
» Das erste eigene Addon: Hello World
» Addon Spam (insbesondere GearScore)
» Mein Tipp: mach dir eigene Ziele
» Einbinden der Kameras in die eigene Website ohne zusätzliche Software und ohne laufenden Rechner.
» Das erste eigene Addon: Hello World
» Addon Spam (insbesondere GearScore)
Seite 1 von 2
Forenbefugnisse:
Sie können in diesem Forum nicht antworten
Startseite