你如何让两个表情符号在《魔兽世界》中的lua程序中成为组合起来生效?

如何在魔兽世界的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上制作一个放屁应用程序。我使用了这个函数,只有坐姿动作显示了出来,而向玩家发出招手和月亮表情符号只在聊天窗口中显示。跳舞的表情符号则完全没有显示。

原文链接 https://stackoverflow.com/questions/1024960

点赞
stackoverflow用户127145
stackoverflow用户127145

我建议在下一次尝试表情之前等待一段时间。据我所知,如果您发送过多的垃圾邮件,服务器将断开您的连接。这可能有时会触发它。

除此之外,我想也许客户端有一种方法来防止它?无论如何,我建议您在表情之间添加一些小数秒的延迟。

干杯,

Amit Ron

2009-06-22 21:30:29
stackoverflow用户428876
stackoverflow用户428876

这可能是 API 的故意限制,以防止游戏自动化(机器人)的发生。

2009-06-22 21:52:37
stackoverflow用户33264
stackoverflow用户33264

Blizzard明确禁止使用任何可以用于让lua等待或暂停的东西,因为这是制作金矿或刷怪机器人的必要组成部分。

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

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

2009-06-30 00:44:43
stackoverflow用户161424
stackoverflow用户161424

能不能在坐着的时候完成最后两项任务呢?

2009-09-03 03:35:26
stackoverflow用户213365
stackoverflow用户213365

我的解决方法是在循环中使用全局变量进行递增。

Integer count = 0;
function Button2_OnClick()
    count++
    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
         count=0;
    end
end

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

2010-01-04 19:50:03
stackoverflow用户259654
stackoverflow用户259654

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

2010-01-26 23:31:29