7

你如何在魔兽世界中使用lua中的两个表情组合?

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

我正在使用 Wow Addon Studio 在 Wow 上制作一个放屁应用程序。我用了这个功能,只有坐姿显示,招手和月亮只显示在聊天窗口。舞蹈表情没有出现在任何地方。

4

6 回答 6

5

暴雪明确禁止任何可以用来让 lua 等待或暂停的东西,因为它是制作金矿或研磨机器人的必要成分。

在不使用所有 CPU 的情况下,没有一种本机(即仅 lua)方式让 lua 等待。在 WOW 客户端之外,您可以使用win.sleep或其他调用主机应用程序或操作系统线程函数的第三方 API 调用。

可以通过在频繁事件(例如到达聊天窗口的文本)上执行代码来模拟等待,然后在事件处理程序中检查是否有足够的时间允许执行序列中的下一个命令。这可能不是一个非常准确的计时器,而且会相当复杂,因为您必须创建一个数据结构来保存命令序列、每个命令之间的时间、当前命令等等。

于 2009-06-30T00:44:43.150 回答
3

This may be an intentional limitation of the API to prevent in game automation (botting).

于 2009-06-22T21:52:37.383 回答
3

对我有用的是拥有一个通过循环递增的全局变量。如

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

然后你必须做的是多次单击按钮,但你会得到你想要的效果。

于 2010-01-04T19:50:03.693 回答
2

我建议你等一段时间再做下一个表情。据我所知,如果您发送过多垃圾邮件,服务器会断开您的连接。这有时可能只是触发它。

除此之外,我想也许客户有办法阻止它?无论哪种情况,我都建议您在表情之间添加某种秒级延迟。

干杯,
阿米特罗恩

于 2009-06-22T21:30:29.193 回答
1

莫非最后两个不能坐着做?

于 2009-09-03T03:35:26.460 回答
1

事实上,,integer i = 0因为定义整数 'count' 然后使用 i 是不正确的。:)

于 2010-01-26T23:31:29.713 回答