Makro mit LUA funktion

Hi, was ist da Falsch??

/equipset Test
/run local L=LearnTalent L(22309)
/run PickupSpell(205021) PlaceAction (9) ClearCursor()
/run PickupSpell(205021) PlaceAction (2) ClearCursor()

Zeile 1funktioniert, Fähigkeit wird gewählt
Zeile 2 funktioniert nicht, Fähigkeit wird nicht auf den TastaturButton gelegt
Zeile 3 funktioniert, Fähigkeit wird in dem Tastatur Button gelegt

Das Problem dabei dürfte sein, dass sämtliche Befehl innerhalb eines Makros zeitgleich abgearbeitet werden, das Auswählen eines Talentes aber eine Bestätigung vom Server benötigt. Das Makro versucht also, eine Fähigkeit in die Leiste zu legen, die du zu diesem Zeitpunkt noch überhaupt nicht besitzt.

Wenn man ein aktives Talent auswählt, ohne dass man dieses bereits irgendwo in den Leisten liegen hat, dann wird dieses automatisch auf den ersten verfügbaren Platz gelegt - eventuell landet das Talent daher automatisch einmal in deiner Leiste, auch wenn das nur passieren sollte, wenn der Platz davor leer war.

Du müsstest die beiden Befehle also etwas verzögern, was in WoW aber standardmäßig nicht möglich ist.
Da die genutzten Funktionen aber keine Hardware-Events (Tastendruck, Mausklick usw.) erfordern, lässt sich das aber per Addon (bspw. SlashIn) umsetzen, das eine derartige Möglichkeit (über den Befehl /in) hinzufügt.

Hast du das Addon installiert, kannst du bspw. folgendermaßen eine Verzögerung von 0,5 Sekunden einbauen, wodurch das Ganze dann funktioniert:

/equipset Test
/run local L=LearnTalent L(22309)
/in 0.5 /run PickupSpell(205021) PlaceAction (9) ClearCursor()
/in 0.5 /run PickupSpell(205021) PlaceAction (2) ClearCursor()
1 Like

Danke, Superschnelle Antwort.

Ich habe jetzt den richtigen Leistenplatz für den Button eingegeben

/equipset Test
/run local L=LearnTalent L(22309)
/in 0.5 /run PickupSpell(205021) PlaceAction (14) ClearCursor()
/in 0.5 /run PickupSpell(205021) PlaceAction (2) ClearCursor()

und es finktioniert Super, produziert jedoch folgende Fehlermeldung

Message: Interface\FrameXML\ChatFrame.lua:1631: Usage: local setWasEquipped = C_EquipmentSet.UseEquipmentSet(equipmentSetID)
Time: Fri Aug 23 18:15:31 2019
Count: 1
Stack: Interface\FrameXML\ChatFrame.lua:1631: Usage: local setWasEquipped = C_EquipmentSet.UseEquipmentSet(equipmentSetID)
[C]: ?
[C]: in function UseEquipmentSet'_ _Interface\FrameXML\ChatFrame.lua:1631: in function?’
Interface\FrameXML\ChatFrame.lua:4816: in function ChatEdit_ParseText'_ _Interface\FrameXML\ChatFrame.lua:4497: in functionChatEdit_SendText’
Interface\FrameXML\ChatFrame.lua:2991: in function <Interface\FrameXML\ChatFrame.lua:2984>
[C]: in function RunMacro'_ _Interface\FrameXML\SecureTemplates.lua:436: in functionhandler’
Interface\FrameXML\SecureTemplates.lua:632: in function <Interface\FrameXML\SecureTemplates.lua:580>
[C]: ?
Interface\FrameXML\SecureHandlers.lua:266: in function <Interface\FrameXML\SecureHandlers.lua:263>
[C]: ?
Interface\FrameXML\SecureHandlers.lua:296: in function <Interface\FrameXML\SecureHandlers.lua:279>
(tail call): ?

Locals:

Die Fehlermeldung deutet auf die erste Zeile des Makros hin - das Ausrüsten eines Equipment Sets.

Hast du denn überhaupt ein Set mit dem Namen “Test”? Für mich sieht das danach aus, dass das Macro die Funktion nicht aufrufen kann, weil kein Set mit diesem Namen existiert.

1 Like

Ohje, bin ich blöd, alles klar, habe es ohne nachzudenken umbenannt.

Gruß und Danke für deine Hilfe

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