2

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)
4

1 回答 1

3

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

当您想要的玩家是您的目标时,您可以简单地DoEmote("slap", "target"). 如果不是,您可以尝试扫描您的队伍/突袭成员和单位target,并通过比较每个人的回报并与相应的 ID 一起使用,尝试找出他们中的任何一个是否是您想要的玩家。targettargetfocusUnitNameDoEmote

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

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

于 2016-04-11T19:55:58.393 回答