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

时间:2009-06-21 23:03:28

标签: lua world-of-warcraft

你如何在“魔兽世界”的作品中使用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上制作一个屁应用程序。 我使用了这个功能,只有坐姿运动显示,而招手和月亮只显示在聊天窗口。舞蹈表演并没有出现在任何地方。

6 个答案:

答案 0 :(得分:5)

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

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

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

答案 1 :(得分:3)

这可能是API的故意限制,以防止游戏自动化(僵尸)。

答案 2 :(得分: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

你需要做的是多次点击按钮,但你会得到你想要的效果。

答案 3 :(得分:2)

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

除此之外,我想也许客户有办法阻止它?在任何一种情况下,我建议你在表情之间添加一些一秒钟的延迟。

干杯,
阿米特罗恩

答案 4 :(得分:1)

可能是坐在后面的两个不能完成吗?

答案 5 :(得分:1)

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