Posted by Vexryn on Sat, 16 Jan 2010 00:17:13
I am trying to create a script (in this case, inside of kgPanels) to toggle a ChatFrame to be visible or not visible, based on entering or leaving Trade Channel.
The basic script I have right now is as follows:
if event == "CHAT_MSG_CHANNEL_NOTICE" and arg8 == 2 then if ChatFrame3:IsVisible() then ChatFrame3:Hide() else ChatFrame3:Show() end end
However, if I somehow have a channel event when it was already visible - e.g., when I log into the game and join the channel - I lose the window.
The straightforward solution appears to be to also check arg2, which identifies the type of event as either "YOUJOINED" or "YOULEFT".
However, when I try to do this in practice, the event doesn't seem to trigger. Everything I've read says this should be transmitted on arg2, and that I have the return arguments of "YOUJOINED" and "YOULEFT" correct, but the code simply doesn't work. So I'm thinking that it's either not arg2 (anymore?), or the responses returned under arg2 have changed wording/syntax.
Does anyone have insight? Ideally, I want something like the code below... except for it to actually work. :)
if event == "CHAT_MSG_CHANNEL_NOTICE" and arg8 == 2 then if arg2 == "YOU_JOINED" then ChatFrame3:Show() else ChatFrame3:Hide() end end
In practice, the above script successfully causes the window to hide if it is visible when I left the city, but ALSO causes the window to hide when I enter the city (and never causes a hidden window to show). So it appears "YOU_JOINED" is not right, and/or it's not on arg2.
Insight would be welcome! :)
Posted by jnwhiteh on Sat, 16 Jan 2010 01:13:29
You'll need to check the arguments to the event yourself by printing them, or using the /eventtrace utility in-game. This will tell you which arguments contain which information which should help you figure out what to do next. Hope that helps.