魔兽世界 Addon API 入门 Lua

DoEmote("slap", "X") 中,我想让 X 成为发送初始表情消息的某种参数。 我尝试了 arg2、arg12 和 sender 等东西

我还尝试了通过制定一个操作来使你的目标是表情制作人,然后用 /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)
点赞
用户936986
用户936986

和其他的 WoW API 函数一样,DoEmote 接受 UnitId 作为第二个参数。你只能使用队伍或团队中的个体玩家的名字(并对他们行动)。

当你需要的玩家是你的目标时,你可以简单地使用 DoEmote("slap", "target")。如果不是,你可以尝试扫描你的队伍/团队成员的 targettargettargetfocus 单位,并通过比较 UnitName 返回每个单位的值来查找你想要的玩家,并使用相应的 ID 使用 DoEmote

如果你所需的玩家不对应任何有效的 UnitId - 即没有任何人(包括自己)在你的团队/队伍中,将其设为焦点/目标/链式目标,那么你无法做任何事情。你只能对与 ID 相对应的单位进行行动。

你还可以使用SendChatMessageEMOTE 频道中发送任何文本,直接将 "slaps Zalíssa." 写为最后一个参数作为最后的手段。这将具有与 /e 聊天命令相同的效果 - 你的文本将逐字传输,不进行其他客户端语言的翻译,不播放表情动画或声音,并且玩家名字不会在需要时进行变位/变化。

2016-04-11 19:55:58