我使用的是魔兽世界API。我想找一个EventMessageFilter
。我可以通过致电
ChatFrame_GetMessageEventFilters("event")
要做到这一点,我必须传递一个聊天事件,就我而言CHAT_MSG_WHISPER_INFORM
。
所以根据位于
的APIhttp://wowprogramming.com/docs/api/ChatFrame_GetMessageEventFilters
此函数将返回一个表。所以我将该表命名为试图用这段代码打印其内容
local myNewTable = filterTable = ChatFrame_GetMessageEventFilters("CHAT_MSG_WHISPER_INFORM")
for i in pairs(myNewTable) do
print(asd[i])
end
然后打印出类似
的内容function: 00000312498vn27842934c4
我已经检查过
type(asd[i])
它确实是一个功能。但是我怎么能得到它的内容呢?我该如何处理?
答案 0 :(得分:1)
我想找一个EventMessageFilter
你能详细说明吗?您正在寻找谁的过滤器以及您打算用它做什么?
它确实是一种功能。
这就是这个API的作用:返回一个注册为特定消息类型的过滤器的函数列表(通过ChatFrame_AddMessageEventFilter
)。
但我怎样才能得到它的内容?
你做不到。 WoW API不提供任何反编译功能的工具。
如果您打算自己过滤聊天消息,则根本不需要调用此功能。只需致电ChatFrame_AddMessageEventFilter
即可添加过滤器。
答案 1 :(得分:0)
所以我设法解决了我的问题,删除了已被另一个插件放置的当前过滤器,然后只添加我自己的过滤器。正如泥所指出的那样。 GMEF应该返回功能。我现在看到这是有道理的。但现在我已经制作了删除函数的代码。如果您想稍后重新添加它们,只需将它们存储在变量中,直到完成为止,但我不会在我的答案中包含它。我也觉得我的回答有点偏离主题了。但要回答我自己的问题。它应该返回函数,你无法看到这些函数的内容。这是我用来删除另一个插件放在那里的函数的代码。
function rekkFilters()
local myFilters = ChatFrame_GetMessageEventFilters("CHAT_MSG_WHISPER_INFORM")
for i in pairs(myFilters) do
ChatFrame_RemoveMessageEventFilter("CHAT_MSG_WHISPER_INFORM", myFilters[i])
end
end
local myFilters = ChatFrame_GetMessageEventFilters("CHAT_MSG_WHISPER_INFORM")
rekkFilters()
local myFilters = ChatFrame_GetMessageEventFilters("CHAT_MSG_WHISPER_INFORM")
if myFilters[1] ~= nil then
rekkFilters()
end