有没有办法获得喊或说中的最后一条聊天消息?

我想搜索最后一条消息中的几个字符串,然后用另外的字符串替换它们并将消息回显。

我查阅了多个文档,但没有找到获取最后一条消息的方法。 这是我第一次在论坛上提问,因为我已经有了一个帐户,所以没有真正的起点给你。

提前感谢!

点赞
用户1016004
用户1016004

在 WoW API 中没有办法获取特定频道的最后一条聊天消息。您需要处理 CHAT_MSG_CHANNEL 事件(请参阅 事件处理),以便读取所有消息,并存储最新的一条。对于说话或大喊(shout)频道,有 CHAT_MSG_SAYCHAT_MSG_YELL 事件。

为了做到这一点,您的插件需要拥有一个 Frame,这些框架可以注册事件处理程序,并且您将不得不将您从该处理程序接收到的最后一条消息存储在脚本中的局部变量中(让我们称之为 last_message)。然后当您的其它代码执行时,您可以读取 last_message 变量:

local frame = CreateFrame("FRAME", "FooAddonFrame");
local last_message = nil;
frame:RegisterEvent("CHAT_MSG_CHANNEL");
local function eventHandler(self, event, ...)
 -- 查找给定给您特定事件的参数
 -- 并按顺序将它们分配给变量,从
 -- `...` 变量参数中检索它们
 local msg, author, language, channel = ...
 print("Hello World! Hello " .. event);
 last_message = msg
end
frame:SetScript("OnEvent", eventHandler);
2020-05-10 10:26:37