Welcome to the Achaea Forums! Please be sure to read the Forum Rules.

Since It's Apparently Some Secret:

CynlaelCynlael Member Posts: 3,257 @@ - Legendary Achaean
Apparently people feel some secrecy surrounding gmcp chat capture (or genuinely don't know how it's done), so I'll just post how to do it here.
Note, this'll work with virtually every form of chat capturing out there, it simply requires you to change the function line (which I'll detail what one to change)

Firstly: Add this to your login trigger.

sendGMCP([[Core.Supports.Add ["Comm.Channel 1"] ]])


Secondly: Make a new script, specifically called chat_capture, with the registered event handler of gmcp.Comm.Channel.Start

function chat_capture()
local ch = gmcp.Comm.Channel.Start if not chat_channels then check_channels() end
chat_channels.last = "Misc" for c, t in pairs(chat_channels.types) do if ch:find(c) then
chat_channels.last = t break
end end
enableTrigger("Chat Processor") end

function check_channels()
chat_channels = chat_channels or {}
chat_channels.last = chat_channels.last or ""
chat_channels.types = {
["newbie"] = "Misc", ["market"] = "Misc",
["ct"] = "Orgs", ["ht"] = "Orgs",
["hts"] = "Orgs", ["hnt"] = "Orgs",
["clt"] = "Tells", ["Party"] = "Tells",
["tell"] = "Tells", ["says"] = "Says",
["ot"] = "Misc" }
end

   The above table here should be reflected to how you want the messages to be processed. Change the values between the quotation marks to match your needs. (The names should be the same that appear on your chat capture)


Thirdly: Make another script specifically called chat_processed, with the registered event handler of: chat prompt processed

function chat_processed()
disableTrigger("Chat Processor")
end


Finally: Download and import the trigger which is included in this post. The function you need to change will be located within the 'Chat Parser' trigger.

     agui_process_chat(chat_channels.last)
The above is the line specifically, that you'll have to change. For those who use demonnic (the original tabbed chat), change the line to
     demonnic.chat:append(chat_channels.last)



You're welcome.

MannimarJhuiAkamaiMishgulTharvisZulahAustereShirszaeDrodakHalosPraxidesAchillesAereidhnaFendrelDochithaUtianimaExelethrilKesher
«1

Comments

  • CynlaelCynlael Member Posts: 3,257 @@ - Legendary Achaean
    Forgot to note. Within the same Chat Parser trigger, is the
    local ignore = {"halfling" ,"cyclops","gnoll", "mingruk", "tsol'aa ", "Talus, the caveman", "e glubber", "arcadian", "Adalgar"}


    You can add whatever you want to this, and it'll simply not process any line that has the above things within the first match (The part which captures WHO is saying the line, not the words which are spoken)

  • AkamaiAkamai Member Posts: 6 ✭✭ - Stalwart
    edited May 2015
    Any idea why I'm capturing room inventory in my chat console after doing this?
    whut.jpg 514.7K
  • CynlaelCynlael Member Posts: 3,257 @@ - Legendary Achaean
    edited May 2015
    No clue! Make sure the Chat Processor folder is 'locked' when you install it. If it's not, it'll keep doing that until you do lock it.

    In hindsight, I probably should've mentioned that.

  • CynlaelCynlael Member Posts: 3,257 @@ - Legendary Achaean
    edited May 2015
    Okay so, I'm an idiot, sorry...

    function Geyser.MiniConsole:append()
    appendBuffer(self.name) end

    You'll also need to add the above function into scripts, for it to work properly (demonnic SHOULD have this by default, but the thing I'm going to post below won't have it)

    Since I've been asked, and because I'm nice... Those of you using @Zulah's D3 GUI will need an additional function, since he uses a different way of copying.

    Firstly, you'll have to adjust the table to reflect the actual miniconsoles themselves. For instance

       ["ct"] = "d3citychat",
    ["tells"] = "d3tellschat",

    etcetera.

    Following that, where I said to change:

    agui_process_chat(chat_channels.last
    You'll want to instead make the trigger as follows.
    if not ignoret then
    selectString(line,1)
    copy()
    chat_channels.last:append()
    d3allchat:append()
     end


    Aaaaaand, for those using his other free GUI. You'll have to edit the tables as follows
       ["ct"] = "cityChat_1",
    ["ht"] = "houseChat_1",

    etcetera.

    As for the trigger:
    if not ignoret then
    selectString(line,1)
    copy()
    chat_channels.last:append()
    allChat_1:append()
     end




    Kasya
  • CynlaelCynlael Member Posts: 3,257 @@ - Legendary Achaean
    Also as a final note, you'll want to remove all the other previous chat triggers. Or at the very least, turn them off, to prevent double capturing or cock-ups with it.

  • KasyaKasya TennesseeMember Posts: 657 @ - Epic Achaean
    @Cynlael - as I'm working to build off both your and Zulah's GUIs to get mine set up the way I want, I love you for this. :)
  • SiduriSiduri Member Posts: 1,572 @@ - Legendary Achaean
    @Zulah - If at all possible, care to package it as an external plugin for those of us who have already heavily tweaked your GUi and just want to add the chat?

    image
    UtianimaKasya
  • KardKard Member Posts: 27 ✭✭ - Stalwart
    This seriously was a secret. Only been looking for this for the past 2-3 years...Thanks!
  • AustereAustere TennesseeMember Posts: 2,245 @@ - Legendary Achaean
    Okay, I added this last night after a raid and I just want to say: you're awesome. Now if only it worked for deathsight.  
  • CynlaelCynlael Member Posts: 3,257 @@ - Legendary Achaean
    just use a colour trigger for deathsight, that's not linked to any other channel. (Have to use base 15 colours, though)

  • YaeYae Member Posts: 307 @@ - Legendary Achaean
    Is it possible to capture the GMCP message without using says/sing/whatever triggers to capture it?
    Art commissions are closed! I am (practically) dormant.   :s
  • TharvisTharvis The Land of Beer and Chocolate!Member Posts: 3,107 @@ - Legendary Achaean
    Yae said:
    Is it possible to capture the GMCP message without using says/sing/whatever triggers to capture it?

    gmcp.Comm.Channel.Text.text 

    Says/sings etc show up on there, too. Basically anything that isn't an illusion/membrane/event denizen shouts (like tharos, his shouts don't show up in there)/some denizen yells

    Aurora says, "Tharvis, why are you always breaking things?!"
    Artemis says, "You are so high maintenance, Tharvis, gosh."
    Tecton says, "It's still your fault, Tharvis."

  • CynlaelCynlael Member Posts: 3,257 @@ - Legendary Achaean
    edited June 2015
    Shouts aren't tracked via GMCP, is why they don't. Otherwise they'd default to the 'misc' tab. Same with yells.

    Tharvis
  • KasyaKasya TennesseeMember Posts: 657 @ - Epic Achaean
    I've messed up at some stage somewhere. Will need to give this another go soon.
  • KasyaKasya TennesseeMember Posts: 657 @ - Epic Achaean
    Alright, I've done everything in this thing, left Zulah's Free GUI scripts alone other than to disable triggers. Made sure I had the right labels in the chat_capture script. And it captures nothing. Any ideas?
    Trilliana
  • CynlaelCynlael Member Posts: 3,257 @@ - Legendary Achaean
    Make sure to read my other posts in the thread. I missed some things. If no dice, then show errors log.

  • KasyaKasya TennesseeMember Posts: 657 @ - Epic Achaean
    it may have something to do with the fact that the GUI doesn't load on startup?

    *** starting new session ***
    [ERROR:] object:<Prompt Detect & Update> function:<Trigger2890>
             <[string "function Trigger2890()..."]:2: attempt to index field 'Char' (a nil value)>
    [ERROR:] object:<Prompt Detect & Update> function:<Trigger2890>
             <[string "function Trigger2890()..."]:2: attempt to index field 'Char' (a nil value)>
    [ERROR:] object:<Prompt Detect & Update> function:<Trigger2890>
             <[string "function Trigger2890()..."]:21: attempt to index global 'hpbar' (a nil value)>
    [ERROR:] object:<Prompt Detect & Update> function:<Trigger2890>
             <[string "function Trigger2890()..."]:21: attempt to index global 'hpbar' (a nil value)>
    [ERROR:] object:<Prompt Detect & Update> function:<Trigger2890>
             <[string "function Trigger2890()..."]:21: attempt to index global 'hpbar' (a nil value)>
    [ERROR:] object:<Prompt Detect & Update> function:<Trigger2890>
             <[string "function Trigger2890()..."]:21: attempt to index global 'hpbar' (a nil value)>
    [ERROR:] object:<Prompt Detect & Update> function:<Trigger2890>
             <[string "function Trigger2890()..."]:21: attempt to index global 'hpbar' (a nil value)>
    [ERROR:] object:<Prompt Detect & Update> function:<Trigger2890>
             <[string "function Trigger2890()..."]:21: attempt to index global 'hpbar' (a nil value)>
    [ERROR:] object:<Prompt Detect & Update> function:<Trigger2890>
             <[string "function Trigger2890()..."]:21: attempt to index global 'hpbar' (a nil value)>
    [ERROR:] object:<Prompt Detect & Update> function:<Trigger2890>
             <[string "function Trigger2890()..."]:21: attempt to index global 'hpbar' (a nil value)>
    [ERROR:] object:<Prompt Detect & Update> function:<Trigger2890>
             <[string "function Trigger2890()..."]:21: attempt to index global 'hpbar' (a nil value)>
    [ERROR:] object:<Prompt Detect & Update> function:<Trigger2890>
             <[string "function Trigger2890()..."]:21: attempt to index global 'hpbar' (a nil value)>
    [ERROR:] object:<Prompt Detect & Update> function:<Trigger2890>
             <[string "function Trigger2890()..."]:21: attempt to index global 'hpbar' (a nil value)>
    [ERROR:] object:<Prompt Detect & Update> function:<Trigger2890>
             <[string "function Trigger2890()..."]:21: attempt to index global 'hpbar' (a nil value)>
    [ERROR:] object:<Prompt Detect & Update> function:<Trigger2890>
             <[string "function Trigger2890()..."]:21: attempt to index global 'hpbar' (a nil value)>
    [ERROR:] object:<Prompt Detect & Update> function:<Trigger2890>
             <[string "function Trigger2890()..."]:21: attempt to index global 'hpbar' (a nil value)>
    [ERROR:] object:<Prompt Detect & Update> function:<Trigger2890>
             <[string "function Trigger2890()..."]:21: attempt to index global 'hpbar' (a nil value)>
    [ERROR:] object:<Prompt Detect & Update> function:<Trigger2890>
             <[string "function Trigger2890()..."]:21: attempt to index global 'hpbar' (a nil value)>
    [ERROR:] object:<Prompt Detect & Update> function:<Trigger2890>
             <[string "function Trigger2890()..."]:21: attempt to index global 'hpbar' (a nil value)>
    [ERROR:] object:<event handler function> function:<keneanung.bashing.roomItemCallback>
             <...ara\.config\mudlet\profiles\Kasya\Bashing\script.lua:590: attempt to index field 
    'Room' (a nil value)>
    [ERROR:] object:<Prompt Detect & Update> function:<Trigger2890>
             <[string "function Trigger2890()..."]:21: attempt to index global 'hpbar' (a nil value)>
    [ERROR:] object:<Prompt Detect & Update> function:<Trigger2890>
             <[string "function mapswap()..."]:2: attempt to index field 'Room' (a nil value)>
    [ERROR:] object:<event handler function> function:<keneanung.bashing.roomItemCallback>
             <...ara\.config\mudlet\profiles\Kasya\Bashing\script.lua:590: attempt to index field 
    'Room' (a nil value)>
    [ERROR:] object:<Chat Parser> function:<Trigger2924>
             <[string "function Trigger2924()..."]:14: attempt to call method 'append' (a nil value)>
    [ERROR:] object:<Chat Parser> function:<Trigger2924>
             <[string "function Trigger2924()..."]:14: attempt to call method 'append' (a nil value)>
    [ERROR:] object:<Chat Parser> function:<Trigger2924>
             <[string "function Trigger2924()..."]:14: attempt to call method 'append' (a nil value)>
    [ERROR:] object:<Chat Parser> function:<Trigger3583>
             <[string "function Trigger3583()..."]:12: attempt to call global 'agui_process_chat' (a 
    nil value)>
    [ERROR:] object:<Chat Parser> function:<Trigger3583>
             <[string "function Trigger3583()..."]:12: attempt to call global 'agui_process_chat' (a 
    nil value)>
    [ERROR:] object:<Chat Parser> function:<Trigger3583>
             <[string "function Trigger3583()..."]:12: attempt to call global 'agui_process_chat' (a 
    nil value)>
    [ERROR:] object:<Chat Parser> function:<Trigger3583>
             <[string "function Trigger3583()..."]:14: attempt to call method 'append' (a nil value)>
    [ERROR:] object:<Chat Parser> function:<Trigger3583>
             <[string "function Trigger3583()..."]:14: attempt to call method 'append' (a nil value)>
    [ERROR:] object:<Chat Parser> function:<Trigger3583>
             <[string "function Trigger3583()..."]:14: attempt to call method 'append' (a nil value)>
    [ERROR:] object:<Target gone> function:<Trigger159>
             <[string "function Trigger159()..."]:2: attempt to index field 'Modes' (a nil value)>
    [ERROR:] object:<Target gone> function:<Trigger159>
             <[string "function Trigger159()..."]:2: attempt to index field 'Modes' (a nil value)>
    [ERROR:] object:<shielded> function:<Trigger173>
             <...ara\.config\mudlet\profiles\Kasya\Bashing\script.lua:421: attempt to index field '?' 
    (a nil value)>
    [ERROR:] object:<shielded> function:<Trigger173>
             <...ara\.config\mudlet\profiles\Kasya\Bashing\script.lua:421: attempt to index field '?' 
    (a nil value)>
    [ERROR:] object:<shielded> function:<Trigger173>
             <...ara\.config\mudlet\profiles\Kasya\Bashing\script.lua:421: attempt to index field '?' 
    (a nil value)>
    [ERROR:] object:<shielded> function:<Trigger173>
             <...ara\.config\mudlet\profiles\Kasya\Bashing\script.lua:421: attempt to index field '?' 
    (a nil value)>
    [ERROR:] object:<shielded> function:<Trigger173>


  • KasyaKasya TennesseeMember Posts: 657 @ - Epic Achaean
    okay where does this get added?

    function Geyser.MiniConsole:append()
    appendBuffer(self.name) end
  • CynlaelCynlael Member Posts: 3,257 @@ - Legendary Achaean
    In a blank script will be fine.

  • KasyaKasya TennesseeMember Posts: 657 @ - Epic Achaean
    edited June 2015
    Ahh. Okay! Trying that.


    And... still getting this:

    [ERROR:] object:<Chat Parser> function:<Trigger2928>
             <[string "function Trigger2928()..."]:15: attempt to call method 'append' (a nil value)>
    [ERROR:] object:<Chat Parser> function:<Trigger2928>
             <[string "function Trigger2928()..."]:15: attempt to call method 'append' (a nil value)>
    [ERROR:] object:<Chat Parser> function:<Trigger2928>
             <[string "function Trigger2928()..."]:15: attempt to call method 'append' (a nil value)>

  • KasyaKasya TennesseeMember Posts: 657 @ - Epic Achaean
    This is going to get worse when I try and add your crit hit tracker in, isn't it? :(
  • CynlaelCynlael Member Posts: 3,257 @@ - Legendary Achaean
    Possibly. No promises. :3

  • KasyaKasya TennesseeMember Posts: 657 @ - Epic Achaean
    Okay, going to leave everything I've done and start from scratch. Maybe I typed something wrong in there...
  • KasyaKasya TennesseeMember Posts: 657 @ - Epic Achaean
    The other method wouldn't work, but this did:

    if not ignoret then
       selectString(line,1)
       copy()
        _G[chat_channels.last]:appendBuffer()
       allChat_1:appendBuffer()
     end
    SiduriTrilliana
  • SiduriSiduri Member Posts: 1,572 @@ - Legendary Achaean
    Kasya said:
    The other method wouldn't work, but this did:

    if not ignoret then
       selectString(line,1)
       copy()
        _G[chat_channels.last]:appendBuffer()
       allChat_1:appendBuffer()
     end
    You fixed my issues, but party doesn't work though :(

    image
  • SiduriSiduri Member Posts: 1,572 @@ - Legendary Achaean
    edited June 2015
    Deleted, bad code.

    image
  • KasyaKasya TennesseeMember Posts: 657 @ - Epic Achaean
    @Siduri make the P in Party a p, and restart. That worked for me.
  • KasyaKasya TennesseeMember Posts: 657 @ - Epic Achaean
    So what I have, cause I use party and group at times:

    ["party"] = "partyChat_1",
    ["gt"] = "partyChat_1",
  • KasyaKasya TennesseeMember Posts: 657 @ - Epic Achaean
    And if anyone has the other channels, feel free to add them here. I checked the GMCP documentation and couldn't find them.
Sign In to Comment.