Talente per Makro ändern

Hi. Kurze Frage an die Makro Experten, ist es immer noch möglich einzelne Talente per Makro zu ändern? Aktuell sieht mein Makro für den Skill um den es geht so aus (beim Jäger)

#showtooltip
/cast [button:1, talent:3/1] Aspekt des Chamäleons
/cast [button:1, talent:3/2] Aspekt des Chamäleons
/cast [button:1, talent:3/3] Camouflage

Ich hätte jetzt eben noch gerne mit drin, das ich mit button:2 [Bahnbrecher] lernen kann, und mit button:3 [Camouflage]. Und vielleicht sogar noch das ein Foliant genommen wird, wenn ich nicht gerade in einem Ruhebereich bin. Ist das machbar? Danke vorweg.

Hmm, kanns grad nicht testen, aber mein Tipp wäre:

/use [btn:1, talent:3/3] Camouflage
/use [btn:1, notalent:3/3] Aspekt des Chamäleons
/use [btn:2, noresting] FOLIANTNAME
/use [btn:3, noresting] FOLIANTNAME
/usetalents [btn:2, notalent:3/1] 1
/usetalents [btn:3, notalent:3/3] 3

Das Makro hat grundsätzlich ja erstmal überhaupt nichts mit dem Erlernen von Talenten zu tun, sondern ist ausschließlich dafür da, die entsprechende Fähigkeit dann zu benutzen.


Einen direkten Makrobefehl zum Erlernen von Talenten gibt es nicht, dafür müsste man dann direkt über LUA-Code und die Funktion LearnTalent(ID) und die einzigartige ID des Talentes vorgehen. Die IDs wären bspw. 19347 für Bahnbrecher und 23100 für Camouflage.

Komplett könnte dieser Befehl dann folgendermaßen aussehen:

/run local b = GetMouseButtonClicked() local id = b == "MiddleButton" and 23100 or b == "RightButton" and 19347 or nil if id then LearnTalent(id) end

Die automatische Benutzung eines Folianten ist damit aber nicht umsetzbar, da sämtliche Befehle innerhalb eines Makros zeitgleich ablaufen. Dadurch würde man also außerhalb eines Ruhebereichs zwar einen Folianten nutzen können, aber dann noch kein Talent wechseln können, da man zum Zeitpunkt des Tastendrucks den Buff des Folianten ja noch nicht hatte.
Da man innerhalb von Makros keine Buffs prüfen kann, würde das Makro dann bei einem erneuten Druck zwar das Talent wechseln können, aber auch nochmals einen Folianten einwerfen.

Eventuell könnte man noch weitere Abfragen einbauen, damit die LUA-Befehle nicht im Kampf ausgeführt werden oder um rote Fehlermeldungen in der Mitte des Bildschirms zu vermeiden (bspw. wenn man das aktuell gewählte Talent erlernen will oder wenn man versucht, ein Talent im Kampf zu erlernen), aber für die grundlegende Funktionalität ist das nicht nötig.


Grundsätzlich lässt sich dein aktuelles Makro aber auch ein wenig zusammenfassen, da du ja zwei fast identische Zeilen nutzt und diese daher in einem Befehl kombinieren könntest:

#showtooltip
/cast [button:1, talent:3/3] Camouflage; [button:1] Aspekt des Chamäleons

Alles in Allem würde ich das Makro dann evtl. so nutzen:

#showtooltip
/cast [button:1, talent:3/3] Camouflage; [button:1] Aspekt des Chamäleons
/stopmacro [combat]
/run local b = GetMouseButtonClicked() local id = b == "MiddleButton" and 23100 or b == "RightButton" and 19347 or nil if id then LearnTalent(id) end

Die drei Zeilen machen dann folgendes:

  1. Wenn mit linker Maustaste gedrückt, wirke Camouflage, sofern gelernt, ansonsten wirke Aspekt des Chamäleons
  2. Breche die weitere Ausführung des Makros ab, wenn im Kampf
  3. Lerne Talent 23100 (Camouflage), wenn mit mittlerer Maustaste gedrückt, und lerne Talent 19347 (Bahnbrecher), wenn mit rechter Maustaste gedrückt.

Der Befehl /usetalents war für das alte Dualspec-System vorhanden und hat keinerlei Effekt mehr, seitdem man frei zwischen allen Spezialisierungen wechseln kann. Mit dem Erlernen von Talenten selbst hatte dieser noch nie zu tun.

3 Likes

Okay, das sieht super aus mit dem LUA Befehl, danke dafür. Das mit dem Foliant ist nicht so wichtig. Das ich mich null mit dem LUA Zeug auskenne :roll_eyes:

Ah gut, da hat wohl jemand gestern schlecht gegoogled :smiley:

Braucht man denn da drin unbedingt das /stopmacro [combat] ? Denn davor drückst du ja nur LMB und danach nur MMB oder RMB. Wenn man also mit LMB draufklickt, wird der Rest des Macros doch sowieso nicht getriggered, oder?

Das wird nicht zwingend benötigt aber es verhindert unbeabsichtigtes Ausführen im Kampf, wo es einen Fehler ausgeben würde.
Außerdem spart man so einen unnötigen loadstring-Aufruf.

Dieses Thema wurde automatisch 180 Tage nach der letzten Antwort geschlossen. Es sind keine neuen Nachrichten mehr erlaubt.