Wie wird eine Kombination aus zwei Emotes in lua machen in World of Warcraft arbeiten?

StackOverflow https://stackoverflow.com/questions/1024960

  •  06-07-2019
  •  | 
  •  

Frage

Wie kann man eine Kombination aus zwei Emotes in lua in World of Warcraft funktioniert?

function Button2_OnClick()
    PlaySoundFile("Interface\\Addons\\Fart\\common_fart[1].wav");
    DoEmote("moon");
    DoEmote("sit");
    DoEmote("dance");
    DoEmote("beckon");
end

Ich bin mit Wow Addon Studio, um eine Furz Anwendung macht auf Wow. Ich habe diese Funktion, und nur die Sitzbewegung zeigte, und winke und Mond auf dem Chat-Fenster nur zeigte. Die Tanz-Emote nicht überall auftauchen.

War es hilfreich?

Lösung

Blizzard hat ausdrücklich etwas verboten, die verwendet werden kann, um lua warten oder Pause zu machen, weil es darum geht, einen Goldbergbau oder Schleifen bieten ein wesentlicher Bestandteil ist.

Es gibt keine native (das heißt lua einzige) Weg lua Wartezeit zu haben, ohne die ganze CPU. Außerhalb des WOW-Client, dann würden Sie a href verwenden <= "https://stackoverflow.com/questions/1034334/easiest-way-to-make-lua-script-wait-pause-sleep-block-for-a -few-Sekunden "> win.sleep oder ein anderer Anruf 3rd-Party-API, die die Host-Anwendung und die Betriebssysteme Threading-Funktionen aufrufen, in.

Es kann möglich sein, eine Wartezeit zu simulieren, indem Code ausführen auf einer häufigen Ereignis (wie Text im Chat-Fenster ankommen) und dann in der Ereignisbehandlungsroutine zu überprüfen, ob genügend Zeit, den nächsten Befehl zu ermöglichen bestanden hat die Ausführung in die Sequenz. Dies würde wahrscheinlich nicht ein sehr genauer Timer sein, und es wäre sehr komplex, wie Sie eine Datenstruktur erstellen müßten die Folge von Befehlen, die Zeiten zwischen dem einzelnen, der aktuellen Befehl, usw. und so weiter zu halten.

Andere Tipps

Dies kann eine beabsichtigte Einschränkung des API sein Spiel Automatisierung (botting) zu verhindern.

Was hat sich für mich gearbeitet ist eine globale Variable zu haben, die durch die Schleife erhöht wird. Wie

Integer count = 0;
function Button2_OnClick()
    i++
    switch
    case(1)
        PlaySoundFile("Interface\\Addons\\Fart\\common_fart[1].wav");
    case(2)
         DoEmote("moon");
    case(3)
         DoEmote("sit");
    case(4)
         DoEmote("dance");
    case(5)
         DoEmote("beckon");
    default
         i=0;
    end
end

Was würden Sie tun müssen, dann ist die Taste mehrmals klicken, aber Sie würden den Effekt bekommen Sie gehen für.

Ich würde vorschlagen, Sie einige Zeit warten, bevor der nächste Emote tun. Soweit ich weiß, trennt der Server, wenn Sie zu viel Spam. Diese könnte nur um es auszulösen manchmal.

Abgesehen davon denke ich, vielleicht hat der Kunde einen Weg, es zu verhindern? In jedem Fall würde ich vorschlagen, dass Sie irgendeine Art von Bruch-of-a-Sekunden-Verzögerung hinzufügen zwischen dem Emotes.

Cheers,
Amit Ron

Könnte es sein, dass die letzten beiden nicht getan werden kann, während der Sitzung?

infact, integer i = 0, weil 'count' integer definiert, und dann habe ich mit falsch ist. :)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top