Du bist nicht eingeloggt.

B2B-Realm Status

Social Networks

B2B auf Twitter
B2B auf Facebook

Bugtracker

order204

Meister

  • »order204« ist der Autor dieses Themas

Beiträge: 582

Registrierungsdatum: 23.08.2020

  • Private Nachricht

1

Donnerstag, 16. März 2023, 19:29

Verbannen Makro

Hi Com,

ich bin auf der Suche nach einem Makro für Verbannen.

Ein rudimentäres besitze ich schon, das hat jedoch so seine Macken:
- auch beim Abbruch werden die Chatnachrichten gespammt, gerne sollte dies in Zukunft nur passieren, wenn der Cast abgeschlossen wurde
- Auch beim /clearfocus mit modifier werden die Chatnachrichten Gespammt, dass ist ja mal total unerwünscht
- ursprünglich sollte das Ziel gebannt werden, wenn kein Fokusziel gesetzt ist - und dann dieses Gesetzt werden, aber nicht wenn ein Fokusziel rebanned wird - im Moment wird das Fokusziel gesetzt und dann gebannt
- wenn ein Fokusziel rebanned wird, soll automatisch auf das vorherige Ziel zurückgewechselt werden


Das bisherig verwendete Makro:

Quellcode

1
2
3
4
5
6
7
8
9
#Showtooltip
/cast [target=focus, exists, harm, nodead] Verbannen
/cast Verbannen
/target focus
/focus
/targetlasttarget 
/in 25 /ra Bann läuft aus in 5
/in 25 /p Bann läuft aus in 5 
/clearfocus [modifier: alt]



Warum manches Verhalten wie oben beschrieben auftritt, ist mir klar, allerdings nicht, wie man es dazu bringen kann, das es so funktioniert wie gewünscht.
Vielleicht kennt sich ja jemand besser aus.

olouie

Experte

Beiträge: 175

Registrierungsdatum: 21.08.2016

Hauptcharakter: Olouie

  • Private Nachricht

2

Freitag, 17. März 2023, 20:46

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.


Zitat

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.

Es hat sich bereits 1 registrierter Benutzer bedankt.

Benutzer die sich bedankten:

Celticer

Spikeone

Entwickler

Beiträge: 1 063

Registrierungsdatum: 18.01.2012

Wohnort: BBB

Hauptcharakter: Spikeone

  • Private Nachricht

3

Samstag, 18. März 2023, 10:01

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.

Effektiv könnte man das via WeakAura oder Addon lösen - Auslöser wäre Spellhit, dann muss man sich die GUID merken und könnte so sogar hearbeats abfangen (ähnlich SheepWatch, was man einfach erweitern könnte auf banish, so wie ich das schonmal für shakle gemacht habe).