Ich hätte hier paar Sachen die dir vllt helfen könnten dein Makro so zusammenzustellen, wie du es haben willst.
1. Du kannst mehrere Bedingungsblöcke bei einem Befehl haben.
Dabei wird der erste Block überprüft. Wenn diese Bedingungen nicht zutreffen der zweite. Falls diese auch nicht zutreffen der dritte, usw. Hier ein Beispiel:
|
Quellcode
|
1
|
/cast [target=focus, exists][target=target, exists] Verbannen
|
Diese Zeile überprüft zuerst, ob ein Focus vorhanden ist, wenn ja castet es Verbannen auf dein Focus. Bei keinem Focus überprüft er die 2. Klammer, also ob ein Ziel vorhanden, falls ja wird Verbannen auf dein Ziel gecastet. Ansonsten passiert nichts.
Du kannst da natürlich noch weitere Bedingungen wie harm oder nodead hinzufügen, musst nur daran denken die auch in jedem Block reinzuschreiben, wenn diese Bedingungen für alle Blöcke gelten sollen.
und nur der Vollständigkeit halber: leere Klammern [] wäre ein Block ohne Bedingungen also genau wie ein /cast Verbannen
(und target=target kann man auch weglassen, weil das target standardmäßig dein target ist. ich habs nur zum einfacheren Verständnis hinzugeschrieben)
2. /focus nimmt auch Bedingungen.
Ich habs grad ausprobiert, weil ich es bisher noch nicht brauchte, aber anscheinend kann man die eckigen Klammern auch bei /focus nutzen.
|
Quellcode
|
1
|
/focus [target=focus, noexists]
|
Wenn du kein Focus hast, setzt diese Zeile dein Ziel als Focus. Wenn du schon ein Focus hast, passiert nichts. Man kann auch hier noch weitere/andere Bedingungen und auch weitere Bedingungsblöcke benutzen. Je nach dem was man will.
Ich persönlich habe einen gesonderten Hotkey zum Focus setzen/clearen, da ich auch abseits vom Verbannen oder Fearen auch mal ein Focus setzen will. Dazu benutze dann ein Makro in Richtung von meinem erstem Beispiel. Hat den Vorteil, dass ich vor dem Pull das VerbannZiel ins Focus nehmen kann und FirstTarget ins Ziel. Nach dem Pull also kein Targetwechsel mehr und dieses /targetlasttarget im Macro kann ich mir auch sparen.
Wenn du aber /focus im Makro selbst drin haben willst kannst du das 2. Beispiel benutzen um nicht dein Focus zu überschreiben ,außer bei speziellen Bedingungen wie zB wenn es bereits tot ist oder so
Die Chatnachrichten benutze ich selbst kaum, kenne mich also da vllt nicht so gut aus, aber
3. /stopmacro bricht das Macro ab, also alles was danach im Makro kommt wird nicht mehr ausgeführt.
Klingt alleine etwas sinnlos, aber mit Bedingungen kann man damit interessante Sachen machen. Wenn du die Chatnachrichten danach machst und als Bedingung zB [target=fokus, noexists], würden die chatnachrichten nur kommen, wenn du beim Drücken des Makros ein Fokus hast.
Du könntest auch das mit /clearfocus an den Anfang des Macros setzes und dann beide mit [modifier: alt] als Bedingung. Dann würde, wenn du alt drückst dein Focus gelöscht werden und der Rest des Makros nicht mehr ausgeführt.
auch beim Abbruch werden die Chatnachrichten gespammt, gerne sollte dies in Zukunft nur passieren, wenn der Cast abgeschlossen wurde
Berechtigter Wunsch, das zu beheben stelle ich mir aber sehr sehr schwer, eig unmöglich vor. Beim Drücken werden alle Befehle des Makros direkt ausgeführt. Heißt, wenn du 0,1 Sekunden nach starten des casts diesen durch Bewegung abbrichst, ist das Makro schon lange fertig ausgeführt und kann das garnicht mitkriegen. Die Chatnachrichten kommen nur verzögert, weil der /in Befehl einen Timer startet an dessen Ende die Chatnachricht ausgegeben wird. Das funktioniert btw nur mit manchen Befehlen, also Fähigkeiten verzögern geht nicht. Diesen Timer abzubrechen nachdem er gestartet wurde, ist zumindest meines Wissens nach unmöglich.
Addons hätten eine Möglichkeit für dieses Problem, aber Makros nicht.