我有一个我试图启动的WoW / LUA脚本,但它似乎与Stubby插件冲突,我相信它是Auctioneer插件的一部分。这是我收到的消息:
发生错误:Stubby Count:1消息:错误:原始呼叫失败 运行挂钩后:ChatFrame_OnEvent用法: SendChatMessage(text [,type] [,language] [,targetPlayer])Debug:
(尾巴召唤): [string“:OnEvent”]:1: [string“:OnEvent”]:1
现在,冲突插件中唯一发生的事情是:
ChatFrame_AddMessageEventFilter("CHAT_MSG_PARTY", partyMsg)
partyMsg中的代码也非常简单:
local function partyMsg(msg,author,language,lineID,senderGUID)
if (store ~= msg) then
SendChatMessage(msg,"SAY",nil,nil);
end
store = msg;
end
这个错误是由于两个插件都试图过滤聊天框架吗?如果是这样,怎么办呢?对我来说,暴雪会有一个如此简单而又重要的概念仅限于一个插件,这似乎很奇怪。
答案 0 :(得分:1)
我想我看到这里发生了什么。
您使用的引用Events/Communication仅显示特定事件的特定参数,无论上下文如何。
上下文通常是OnEvent处理程序。
ChatFrame_AddMessageEventFilter功能允许您使用聊天框架的OnEvent处理程序而不是您自己的聊天框架事件,并为您添加的过滤器定义了明确的参数。
OnEvent处理程序可能如下所示:
function Foo_OnEvent(self, event, ...)
对于前两个参数,'ChatFrame'过滤器必须如下所示:
function Foo_ChatFrameFilter(self, event, msg, ...)
ChatFrame过滤器是特定的。但是对于OnEvent,你可以制作一个Lua'处理程序',它不关心它来自哪个框架:
<OnEvent>
MyEventHandler(event, ...)
</OnEvent>
答案 1 :(得分:0)
为了完成,我将包含此插件的完整来源:
local function partyMsg(someTable,msgType,msg,user,language,...)
if (store ~= msg) then
SendChatMessage(user .. " just said: ".. msg .. " using that sneaky " .. language .. " language.");
end
store = msg;
return false;
end
ChatFrame_AddMessageEventFilter("CHAT_MSG_PARTY", partyMsg)
ChatFrame_AddMessageEventFilter("CHAT_MSG_PARTY_LEADER",partyMsg)
原始代码存在一些问题:
1)我使用WoWWiki来获取我的信息,首先,我读错了。 lineID和senderGUID不是第4和第5个参数。然后,除此之外,WoWWiki在这个页面上总体上是不正确的。上面列出了正确的参数。第一个论点,一个表,我不确定它的目的。无论如何,这段代码现在可以完全运行。