Further extended output methods? (special channels only hit the default chat frame) #62


  • Accepted
  • Enhancement
Open
  • _ForgeUser3346498 created this issue Oct 3, 2009

    What is the enhancement in mind? How should it look and feel?

    I'd like to see the ability to select a duplicated boss or monster whisper as a role-player's option for private self-messages.  It would be a nice addition to the current options of the self-only Raid Warning and the simple addon message.  Ideally, it would behave just like boss/monster whispers normally do, appearing in all appropriate windows and fading in normal time, etc.

    Please provide any additional information below.

    Effectively, the idea behind this is a desire to be able to duplicate the feeling you get early in a Death Knight's life with The Lich King whispering you in combat, or certain bosses trying to drive you insane.  The largest technical issue I see ahead of time would be telling the thing what to call the source of the message you're posting to yourself.

    EDIT: 3.2.2.11 added Boss Whisper and Mysterious Voice as channel options, however they only come out in the default chat frame.  This ticket remains open to enhance these special channels to appear in all customized chat frames, as appropriate to the player's chat frame settings, instead of just the default frame.

  • _ForgeUser3346498 added the tags New Enhancment Oct 3, 2009
  • rismisner posted a comment Oct 3, 2009

    I think this is an intriguing line of thought.

    I can see a couple of approaches...

    A) <target> whispers...
    • <target> whispers: mwuhhahaha I have debuffed you with my special trick!

    no "SpeakinSpell:" prefix, and match the color to a whisper.

    This would be a way to inform you of things your target is doing to you, in the voice of your target.

    B) Schizophrenia
    • <fictional character> whispers...
    • <user input name> whispers...
    • The Lich King whispers...
    • George, the voice in your head whispers...
    • etc.

    Like above, but instead of your target, this is the Lich King whispering in your mind ... or some other fictional character acting like schizophrenia - hearing voices.

    This character could be the Big Red Button Demon who inhabits SpeakinSpell (find the easter egg :P )

    Could also be the Lich King, or other dungeon bosses or in-lore characters. The character (name and speeches) would have to be associated with the event that triggers this speech.

    Implementation...

    This equates to a channel option. As an alternative to Channel: "Self-Chat (SpeakinSpell:)" we could add 2 more options: Self-Chat (target voice) and Self-Chat (Schizophrenia). If you select the Schizophrenia channel, an additional text box would appear to let you type in the schizo personality's name.

    This could be the same option I suppose. Self-Chat (Custom Voice) If selected, the additional text box opens to let you name that voice, and you can type the name "<target>" or "The Lich King" or "George, the voice in your head" or whatever.

    Raid Warnings...

    The OP also mentions self-only raid warnings to emulate boss emotes that show up as raid warnings for special tricks like Emalon's Overcharge. I don't have any initial thoughts on that aspect of it. I'm a little fuzzy on the specific differences between those and normal raid warnings - the difference is just the color of the text, and a different sound (or no sound?)

    Roleplaying a schizophrenic or multiple personality...

    I like the idea of creating a content pack around this concept, to use SpeakinSpell to make you blurt out things said by your other personality. This is possible in the current features of SpeakinSpell if you're talking out loud. Features here would enhance the voice in your head aspect of it, so SpeakinSpell would talk to you in this character's voice in between periodically talking out loud too.

    Along these lines, I'm reminded that I used to play an AD&D character who had narcolepsy and a 25% chance to fall asleep on entering combat. That's already possible in the current version of SpeakinSpell, to set up Entering Combat with a 25% chance to /sleep.

    Entertaining yourself...

    I see a general push for enhancements in the direction of using SpeakinSpell to entertain yourself without bothering the rest of your group ... i.e. self-chat features.

    It's not a bad idea. SpeakinSpell is a lot of fun if you enjoy that kind of thing, but it's quite annoying to some people who don't like when their group members are spamming too many macros in chat all the time. Shifting speeches into self-chat channels allows you to continue getting a chuckle out of it for yourself and nobody else has to know.


    Edited Oct 3, 2009
  • rismisner removed a tag New Oct 3, 2009
  • rismisner added a tag Accepted Oct 3, 2009
  • _ForgeUser3346498 posted a comment Oct 3, 2009

    Having slept on the idea, I realize that it could be done much more easily than adding a text box. If the output posts into your chat windows just as if it were the boss whisper or monster whisper (cropping up in the appropriate windows using the color settings you've set in the chat options) and does so exactly as you've typed it in the random message box, with no prefix, then it's a simple matter of making sure that your custom text includes the prefix appropriately.

    Thus, if I wanted to see in my chat window the Boss Whisper "[Mysterious Voice] whispers: Tell yourself again that they are not your friends." then that's exactly what I type in the message box as one of my random possibilities, and I just select the Boss Whisper output. If, instead, I want to see something said when I get debuffed with Tug Soul, then I could select Monster Whisper and type "[<caster>] whispers: Your soul is mine!" and see the source of the debuff as the source of the monster whisper when it happens.

  • rismisner posted a comment Oct 7, 2009

    Of course! Yes.

    I have the function in my head, it's so simple

    function SpeakinSpell:SayBossWhisper( line )
        DEFAULT_CHAT_FRAME:AddMessage( Whisper-Color-Code .. line )
    end
    

    I'm not happy with the name Channel="Boss Whisper" but I also can't think of anything better.

    The only problem I have with that name is that it's not obvious how you're supposed to write your own prefix "[mysterious voice] whispers: "

    But it's a start anyway and that's a subtle details ... functionality first, then fuss with what to call it.

    So TODO: 1) add to the GUI and SayOneLine function: channel="Boss Whisper" option to use the function defined above

    2) figure out the whisper color code - unfortunately I don't know how to make it just use the assigned colors from the chat frame settings. That should actually get its own ticket.

    3) update the Big Red Button to work like this instead of saying "SpeakinSpell" ... why didn't I think of this before??? "[Mysterious Voice] whispers: " is even the perfect thing to use with this.

    4) Add Channel="Mysterious Voice" which auto-prefixes literally the Mysterious Voice whispers part, as follows

    function SpeakinSpell:SayBossWhisper( line )
        DEFAULT_CHAT_FRAME:AddMessage( Whisper-Color-Code .. L["[Mysterious Voice] whispers: "] .. line )
    end
    

    This should be very easy to do if using a hard-coded color for this "channel".

    I spun off a separate ticket for matching the color to the user-defined colors for the chat frame: 66 - Customized Chat Frame Colors

  • _ForgeUser3346498 posted a comment Oct 7, 2009

    If I'm reading your methodology right, then it should be relatively simple to add the option to run Boss Whisper or Monster Whisper (the two do use different colors, if you look in your chat frame settings) or both. The hard parts are finding the right color and testing whether each frame really wants to display said whispers.

    I have a clue for finding the colors in the comments for 66.

  • rismisner posted a comment Oct 7, 2009

    Increased priority because this should be easy to implement for the benefit it provides

  • rismisner posted a comment Oct 10, 2009

    3.2.2.11 adds 2 new channels: Boss Whisper, and Mysterious Voice

  • rismisner removed a tag Accepted Oct 10, 2009
  • rismisner added a tag Fixed Oct 10, 2009
  • rismisner closed issue Oct 10, 2009
  • _ForgeUser3346498 posted a comment Oct 10, 2009

    I know you've changed this to complete, but I thought it may be wise to continue the discussion where it began.

    The Boss Whisper function mimics the color perfectly for me, but still only pops in one tab that should show them, not both. I was curious as to whether there may be any possibility within the loop:

    for i=1,NUM_CHAT_WINDOWS do
    getglobal("ChatFrame" .. i ):AddMessage(message, info.r, info.g, info.b, info.id);
    end
    

    Is there no API available to do something in the vein of this pseudocode?

    for i=1,NUM_CHAT_WINDOWS do
    if getglobal("ChatFrame" .. i):MessageTypeEnabled("BOSS_WHISPER")
    getglobal("ChatFrame" .. i ):AddMessage(message, info.r, info.g, info.b, info.id);
    end
    end
    

    The chat windows have to have some way to know whether they should display each message type! I just don't know what the actual function is.

  • rismisner posted a comment Oct 10, 2009

    My thoughts exactly and that's exactly my problem with it too - I don't know that API either.

    I wrote a TODO comment in the code for this idea as I was creating the feature.

    The "Mysterious Whisper" channel uses the MONSTER_WHISPER chat type ID and should also go into the appropriate chat frames.

    I tried an experiment to SendChatMessage to "RAID_BOSS_WHISPER" and as I suspected it threw a LUA error: SendChatMessage(): Unknown chat type

    So the approach described below to loop through all the chat frames appears to be the only solution... but how to check if a chat type ID is enabled for a given frame?

    I agree there must be a way

  • rismisner removed a tag Fixed Oct 10, 2009
  • rismisner added a tag Accepted Oct 10, 2009
  • rismisner reopened issue Oct 10, 2009
  • rismisner edited description Oct 10, 2009
  • rismisner posted a comment Oct 10, 2009

    Reopened the ticket and adjusted the title and description to specify expanded requirements to close the issue again.

  • rismisner posted a comment Oct 11, 2009

    Dropping priority back down to medium because the basic function is there and the remaining issue is tricky with unknowns.

  • rismisner removed a tag Defect Apr 17, 2010
  • rismisner posted a comment Apr 17, 2010

    Changed the type from "defect" to "enhancement" to satisfy my search criteria because I feel that 3.3.3.02 is working as intended in this area, but limited in its ability to direct text to different chat frames (default chat frame only at this time).

  • rismisner added a tag Enhancement Apr 17, 2010
  • rismisner removed their assignment Jan 16, 2013
  • rismisner assigned issue to _ForgeUser228323 Jan 16, 2013
  • rismisner posted a comment Jan 16, 2013

    I'm re-assigning all my tickets to Duerma

  • rismisner posted a comment May 7, 2015

    Unassigning tickets that are not actively being worked on

  • rismisner unassigned issue from _ForgeUser228323 May 7, 2015

To post a comment, please login or register a new account.