[Makro] Main Attacker setzen mit überprüfung

Wilkommen im Forum von Runes of Magic DE

Regeln und Richtlinien: Spielregeln - Community-Richtlinien - Allgemeine Nutzungsbedingungen - RoM Servers Status

Kontaktmöglichkeiten: Support System - Discord
  • Servus zusammen,


    einiges schaff ich mittlerweile selbst, aber leider nicht alles .. :D

    Ist es möglich per Makro den Raid Main Attacker per Name zu setzen und danach zu überprüfen ob es funktioniert hat und er wirklich gesetzt wurde?

    Und ist es möglich zu überprüfen wie Lange des Tamburin und Laute usw noch läuft und des in der Gruppe auszugeben?

    Gruß

  • Für den Angreifer (SpielerName durch den gewünschten Namen ersetzen):

    Code
    1. /run if not (UnitIsRaidAssistant("player") or UnitIsRaidLeader("player")) then return nil end for i = 1, 36 do if UnitName("raid" .. i) == "SpielerName" then if not UnitIsRaidMainAttacker("raid" .. i) then SwithRaidMainAttacker(i, true) end end end


    Die Abfrage ob ein Spieler der Hauptangreifer ist, kann dann mit einer weiteren Schleife und UnitIsRaidMainAttacker(index) abgefragt werden. Der passende Wert für index wird analog dem obigen Beispiel festgelegt.




    Itemcooldown (Item1 und Item2 durch die jeweiligen Items ersetzen):


    Code
    1. /run local item_cd = function(item) for i = 1, 180 do local s, _, name = GetBagItemInfo(i) if name == item then print(string.format("%s: %.1f", item, ({GetBagItemCooldown(s)})[2])) break end end end item_cd("Item1") item_cd("Item2")
  • Wow, danke! Also die Makros im einzelnen funktionieren schonmal super!


    Nur, wenn ich des Makro mit der Raid-Position aus dem anderen Thread und des für den MainAttacker in ein Makro packe funktionierts leider nicht. Ich denke aber auch, man könnte die beiden kürzer verbinden, oder? Weil er ja bei beidem vorher ne überprüfung nach assist macht oder??


    Vielen dank für die Hilfe! :)



    Code
    1. /run if not (UnitIsRaidAssistant("player") or UnitIsRaidLeader("player")) then return nil end local list = {Char1 = pos1, Char2 = pos2} for i = 1, 36 do local pos = list[UnitName("raid" .. i)] if pos then MoveRaidMember(i, pos) end end
  • Leider muss man hier beachten, dass das Spiel eine kleine Zeitspanne braucht, bis ein Befehl wie das Verschieben von Spielern wirklich umgesetzt wird. Man könnte also jedes Mal darauf warten bis das entsprechende Event ausgelöst wurde und dann die Funktion fortsetzen, oder man macht sich das Leben durch einen kleinen Kniff etwas leichter, indem man die Sortierfunktion einfach zweimal hintereinander mit einer kurzen Pause dazwischen ausführt.


    In einem Standardmakro reicht der Platz dafür leider nicht aus, darum hier nur die einzelnen Funktionen und der grobe Aufbau.


    Folgender Code kommt in ein kleines Addon:


    Der Aufruf im Spiel erfolgt dann so:

    Code
    1. /run set_raid_position()
    2. /wait 1
    3. /run set_raid_position()
    4. /wait 1
    5. /run set_raid_attacker()


    Natürlich kann man das Ganze je nach persönlichem Geschmack noch in einen eigenen Namespace packen und die Positionierungsdaten als Argument an die jeweiligen Funktionen übergeben, aber ich wollte hier nur die prinzipielle Idee zeigen.

    Edited once, last by chazz ().