【问题标题】:World of warcraft Addon API Beginner at LuaLua 的魔兽世界插件 API 初学者
【发布时间】:2016-04-11 18:48:06
【问题描述】:

DoEmote("slap", "X"),我希望 x 成为某种参数,以确定谁在发送初始表情信息。 我尝试了诸如arg2、arg12和sender之类的东西

我也尝试过让你以 emoter 为目标,然后用 /slap 回应。但似乎两者都不起作用。

local p3 = CreateFrame("Frame")
p3:RegisterEvent("CHAT_MSG_TEXT_EMOTE", arg1, arg2, arg12)
p3:SetScript("OnEvent", function(self, event, arg1, arg2)
    if event == ("CHAT_MSG_TEXT_EMOTE") 
        and strfind(arg1, "laughs") 
        and strfind(arg1, "you.") 
        and name == ("Zalíssa") 
        then DoEmote("slap", "")
    end
    end)

【问题讨论】:

  • “似乎都不起作用” - 你是如何测试这个的?有错误吗?您似乎有一个巨大的 IF 条件,在您尝试的所有情况下都可能是错误的,因此代码似乎不起作用,即使故障不在您似乎试图弄清楚的 DoEmote 部分。 DoEmote 到达了吗?如果是,那么哪些参数应该是发件人姓名?您应该打印变量并查看而不是盲目工作。如果您已经知道此信息,请分享它。 :)

标签: lua world-of-warcraft


【解决方案1】:

与几乎所有其他 WoW API 函数一样,DoEmote 接受 UnitId 作为第二个参数。如果他们在您的队伍或团队中,您只能使用个人玩家的姓名(并对其采取行动)。

当您想要的玩家是您的目标时,您可以简单地DoEmote("slap", "target")。如果不是,您可以尝试扫描您的队伍/团队成员targettargettargetfocus 单位,并通过比较UnitName 为每个人返回的内容来尝试找出他们中的任何一个是否是您想要的玩家并使用带有相应 ID 的DoEmote

如果您想要的玩家与任何有效的 UnitId 不对应 - 即不是您的团队/团队中任何人(包括您自己)的焦点/目标/链目标,那么您对此无能为力。您只能对与 ID 对应的单位进行操作。

您也可以使用SendChatMessageEMOTE 频道,只要您想要任何文字,直接写“slaps Zalíssa”。作为最后手段的论据。这将与/e 聊天命令具有相同的效果,但有其所有缺点 - 您的文本将逐字传输,不会为客户端的其他语言执行翻译,不会播放表情动画或声音并且不会影响玩家名称/在重要的语言中拒绝。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-16
    • 2017-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-05
    • 2015-12-16
    相关资源
    最近更新 更多