Lua的魔兽世界Addon API初学者

时间:2016-04-11 18:48:06

标签: lua world-of-warcraft

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)

1 个答案:

答案 0 :(得分:3)

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

当您想要的玩家成为目标时,您可以DoEmote("slap", "target")。如果不是,您可以尝试扫描您的派对/团队成员targettargettargetfocus单位,并尝试通过比较{{{{}来查找其中任何一个是否是您想要的玩家1}}返回每个,并使用UnitName和相应的ID。

如果您所需的玩家与任何有效的UnitId不对应 - 即您的团队/聚会中的任何人(包括您自己)没有针对目标/目标/链定位,那么您就无法做任何事情。您只能对与ID对应的单位采取行动。

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