11-20-08, 04:31 AM | #1 |
Please help with ChatFrame_OnEvent
Hi,
I use an addon (GuildBanker) to manage my guild bank (vault and bank reroll). This addons wasn't updated since 2.10. He works until 2.4.3 but since 3.0.2 it's broken. I never made an addon before, but I need it, so I try to debug it ! For now, my big problem is function ChatFrame_OnEvent This is the code in the LUA : Code:
function GuildBanker_ChatFrame_OnEvent(event) local lang = GetLanguageByIndex(1); local isQuery = false; local Cmd, qrCommand, qrSubCommand; Cmd, qrCommand = GuildBanker_GetCmd(arg1); if(Cmd == "GUILDBANKERQUERY") then isQuery = true; qrCommand,qrSubCommand = GuildBanker_GetCmd(qrCommand); end if (strsub(event,1,23) == "CHAT_MSG_WHISPER_INFORM") then if(not isQuery) then gbOrgChatFrame_OnEvent(event); end elseif (strsub(event, 1, 16) == "CHAT_MSG_WHISPER") then if(isQuery) then if(qrCommand == "broadcastoffer") then if(gbBroadcasting > 0) then SendChatMessage("GUILDBANKERQUERY broadcastbusy", "WHISPER", lang, arg2); else gbBroadcasting = GBBROADCAST_RECEIVEQUERY; gbBroadcastTarget = arg2; GuildBanker_DisplayYesOrNoQuestion(GUILDBANKERMSG_BROADCASTTITLE, gbBroadcastTarget.." is offering to broadcast GuildBanker data to you. This will replace your existing GuildBanker data and cannot be reversed. Do you want to accept?", GuildBanker_BroadcastAccept); end elseif(qrCommand == "broadcastbusy") then local msg = arg2.." is already sending or receiving a GuildBanker broadcast."; DEFAULT_CHAT_FRAME:AddMessage(msg); UIErrorsFrame:AddMessage(msg, 1,0,0, 1, 5); gbBroadcasting = 0; GuildBankerOptionsBroadcastButton:Enable(); GuildBankerMessageFrame:Hide(); elseif(gbBroadcastTarget == arg2) then if(qrCommand == "broadcastaccept") then GuildBanker_DisplayMessage(GUILDBANKERMSG_BROADCASTTITLE, "GuildBanker Broadcast Accepted By "..gbBroadcastTarget.."."); gbTimeSinceLast = 0; gbBroadcasting = GBBROADCAST_SENDING; gbBroadcastStockExpected = table.getn(GUILDBANKER_STOCK[gbRealm]); gbBroadcastRosterExpected = table.getn(GUILDBANKER_ROSTER[gbRealm]); gbBroadcastStockSent = 0; gbBroadcastRosterSent = 0; SendChatMessage("GUILDBANKERQUERY broadcastcounts stockcount="..gbBroadcastStockExpected.." rostercount="..gbBroadcastRosterExpected, "WHISPER", lang, gbBroadcastTarget); GuildBanker_UpdateProgressMessage(); elseif(qrCommand == "broadcastoffertimeout") then gbBroadcasting = 0; GuildBankerYesOrNoFrame:Hide(); GuildBankerMessageFrame:Hide(); elseif(qrCommand == "broadcastreject") then gbBroadcasting = 0; GuildBankerMessageFrame:Hide(); local msg = gbBroadcastTarget.." did not accept GuildBanker broadcast."; DEFAULT_CHAT_FRAME:AddMessage(msg); UIErrorsFrame:AddMessage(msg, 1,0,0, 1, 5); elseif(gbBroadcasting == GBBROADCAST_RECEIVEQUERY) then if(qrCommand == "broadcastcounts" and qrSubCommand) then gbTimeSinceLast = 0; qrCommand = qrSubCommand; repeat qrCommand,qrSubCommand = GuildBanker_GetCmd(qrCommand); local Argument, Answer = GuildBanker_GetArgument(qrCommand); if(Argument == "stockcount") then gbBroadcastStockExpected = Answer+0; elseif(Argument == "rostercount") then gbBroadcastRosterExpected = Answer+0; end qrCommand = qrSubCommand; until(not qrCommand) if(gbBroadcastStockExpected >= 0 and gbBroadcastRosterExpected >= 0) then gbBroadcasting = GBBROADCAST_RECEIVING; gbTimeSinceLast = 0; GuildBankerMessageFrameTitle:SetText(GUILDBANKERMSG_BROADCASTTITLE); GuildBanker_UpdateProgressMessage(); end end elseif(gbBroadcasting == GBBROADCAST_RECEIVING) then if(qrCommand == "stock" and qrSubCommand) then gbTimeSinceLast = 0; qrCommand,qrSubCommand = GuildBanker_GetCmd(qrSubCommand); local i = qrCommand+0; if(gbBroadcastStock == nil) then gbBroadcastStock[i] = {}; end qrCommand,qrSubCommand = GuildBanker_GetCmd(qrSubCommand); if(qrCommand == "id") then gbBroadcastStock[i][GUILDSTOCKN_ID] = qrSubCommand+0; elseif(qrCommand == "link") then gbBroadcastStock[i][GUILDSTOCKN_HYPERLINK] = qrSubCommand; elseif(qrCommand == "name") then gbBroadcastStock[i][GUILDSTOCKN_NAME] = qrSubCommand; elseif(qrCommand == "value") then gbBroadcastStock[i][GUILDSTOCKN_VALUE] = qrSubCommand+0; elseif(qrCommand == "quantity") then gbBroadcastStock[i][GUILDSTOCKN_QUANTITY] = qrSubCommand+0; elseif(qrCommand == "location") then gbBroadcastStock[i][GUILDSTOCKN_LOCATION] = qrSubCommand; elseif(qrCommand == "time") then gbBroadcastStock[i][GUILDSTOCKN_TIME] = qrSubCommand+0; elseif(qrCommand == "category") then gbBroadcastStock[i][GUILDSTOCKN_CATEGORY] = qrSubCommand; elseif(qrCommand == "textlink") then gbBroadcastStock[i][GUILDSTOCKN_TEXTLINK] = qrSubCommand; end if(gbBroadcastStock[i][GUILDSTOCKN_ID] ~= nil and gbBroadcastStock[i][GUILDSTOCKN_HYPERLINK] ~= nil and gbBroadcastStock[i][GUILDSTOCKN_NAME] ~= nil and gbBroadcastStock[i][GUILDSTOCKN_VALUE] ~= nil and gbBroadcastStock[i][GUILDSTOCKN_QUANTITY] ~= nil and gbBroadcastStock[i][GUILDSTOCKN_LOCATION] ~= nil and gbBroadcastStock[i][GUILDSTOCKN_TIME] ~= nil and gbBroadcastStock[i][GUILDSTOCKN_CATEGORY] ~= nil and gbBroadcastStock[i][GUILDSTOCKN_TEXTLINK] ~= nil) then gbBroadcastStockSent = i; GuildBanker_UpdateProgressMessage(); end elseif(qrCommand == "roster" and qrSubCommand) then gbTimeSinceLast = 0; qrCommand,qrSubCommand = GuildBanker_GetCmd(qrSubCommand); local i = qrCommand+0; if(gbBroadcastRoster[i] == nil) then gbBroadcastRoster[i] = {}; end qrCommand,qrSubCommand = GuildBanker_GetCmd(qrSubCommand); if(qrCommand == "name") then gbBroadcastRoster[i][GUILDROSTERN_NAME] = qrSubCommand; gbBroadcastRoster[i][GUILDROSTERN_NOTE] = ""; elseif(qrCommand == "funds") then gbBroadcastRoster[i][GUILDROSTERN_FUNDS] = qrSubCommand+0; end if(gbBroadcastRoster[i][GUILDROSTERN_NAME] ~= nil and gbBroadcastRoster[i][GUILDROSTERN_FUNDS] ~= nil) then gbBroadcastRosterSent = i; GuildBanker_UpdateProgressMessage(); end end end end else gbOrgChatFrame_OnEvent(event); end else gbOrgChatFrame_OnEvent(event); end end I know that I must use what is explain here :http://www.wowwiki.com/API_ChatFrame...ageEventFilter but I don't understand how to implement it in my case. Someone can help me ? Thanks you |
|
WoWInterface » Developer Discussions » Lua/XML Help » Please help with ChatFrame_OnEvent |
«
Previous Thread
|
Next Thread
»
|
Display Modes |
Linear Mode |
Switch to Hybrid Mode |
Switch to Threaded Mode |
|
|