在DoEmote("slap", "X")
中,我希望x是发送初始emote消息的某种参数。我尝试了arg2、arg12和发送方之类的东西
我还试着做了一个变通,让你瞄准表情符号,然后用/扇耳光回应。但两者似乎都不起作用。
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)
与其他WoW API函数一样,DoEmote
接受UnitId作为第二个参数。如果玩家在你的队伍或突袭中,你只能使用他们的名字(并对他们采取行动)。
当你想要的玩家是你的目标时,你可以简单地DoEmote("slap", "target")
。如果他们不是,你可以尝试扫描你的小队/突袭成员target
、targettarget
和focus
单位,并通过比较UnitName
为他们中的每一个返回的结果,尝试找到他们中的任何一个是否是你想要的玩家,并使用DoEmote
和相应的ID。
如果你想要的玩家没有对应任何有效的UnitId,即没有被你的突袭/小队中的任何人(包括你自己)聚焦/锁定/连锁,那么你就无能为力了。您只能对与ID对应的单元执行操作。
你也可以使用SendChatMessage
到EMOTE
通道来处理你想要的任何文本,直接写下"slaps Zalíssa"作为最后的论据。这将具有与/e
聊天命令相同的效果,但有其所有缺点-您的文本将被逐字传输,不会为客户端的其他语言执行翻译,不会播放表情动画或声音,玩家名称不会在重要的语言中发生变化/婉拒。