The World of Layonara  Forums

Author Topic: Update to text/chat parsing  (Read 563 times)

Dorganath

Update to text/chat parsing
« on: July 13, 2009, 08:58:40 am »
[SIZE=-1]Hello Layonara Community!

Just over a month ago, when I released the current module revision (3.21.3), I included this comment at the end of the list of updates:

[/SIZE]
Quote from: Dorganath
Version 3.21.3 is online!
  • One other secret but really cool thing that I'll tell you all about once I'm sure it's working and not causing other problems *grins mysteriously*


[SIZE=-1]At the time, I was not ready to announce the feature, as I wanted to get some real, in-game testing done on it, both myself and with the assistance of the GM Team. Testing went very well, and now, as the title of this tread suggests, I'd like to introduce everyone to some rather nice changes to the text and chat parsing system.

Anyway, on to it (and yes, I know it's a bit long)...
 
 Background
With Bioware's 1.69 update, they added an OnPlayerChat event handler, which essentially intercepts typed text from a game client and allows a module to process the text and take actions on the text. When we went to 3.2 (and beyond) orth utilized this event to process  and *emotes*, which has been significantly faster than processing through our existing listener system. However, it didn't apply to all features, specifically those using self-tells (/o) and those that resulted in replacing typed text with something else entirely (i.e. language parsing).
 
 The Result
So, I got curious and did some experimenting, and in the course of an evening that led to having an alternate system for handling commands, language parsing, speaking through animal companions/familiars/summons/etc. and that whole set of stuff that you use /o something-something-something to accomplish.
 
The self-tell (/o) is still managed and intercepted by the listener, so what I did was come up with an alternate way to enact a self-tell so that the listener could be bypassed, letting the OnPlayerChat handler process the contents of that equivalent self-tell. Whatever is typed would then be processed and altered in some way before being displayed, if it was to be displayed at all.
 
To accomplish this, I chose a single character that is not ever likely to start any text chat in-game in any way and I used this as the indicator for special text processing. The character I chose is the equal sign (=).
 
 So how does it work?
Well, it's simple. Any place you'd have used a /o use = instead
 
So instead of /o c sits type =c sits
 
/o e waves
 ->  =e waves
 
 /o L Say something in another language -> =L [/SIZE]
[SIZE=-1]Say something in another language
 
[/SIZE][SIZE=-1](note, these are not case-sensitive, but I thought I'd use upper-case L in this example for clarity)[/SIZE]
[SIZE=-1]
The syntax is similar for familiars (=f), summons (=s), and so forth.
 
I hope that makes sense.
 
 
What else?
Part of my motivation for this was to see if the request for GM-spoken text to be highlighted could indeed be done.  Well, it can, and GMs now have the ability and option to highlight their spoken text, whether spoken directly or spoken through an NPC.  

I want to stress: This is an optional system.  A GM is in no way obligated or forced to use this highlighting, nor should anyone badger a GM to do so. Some GMs will use it, some will not.  There are compelling arguments on both sides, and in the end, I decided it would be best to have it be an option rather than "always on" sort of feature. The end decision as to whether or not to use the system and under what circumstances is entirely up to the GM.

When used, GM-spoken text will be highlighted in ORANGE.

It's worth noting that this only functions in the "Talk" and "Party" channels. DM and Whisper channels work as they have, and tells are still green.
 
 And finally, the extra added goodness
You may be wondering, why use the = method when the /o method is so ingrained and everyone knows it?
 
Well, there's two very good reasons.
1) It's faster....much faster.
2) It can handle longer strings of text than the /o method.
 
On the latter, yes, this means that the limit of approximately 100 characters on a typed text string, whether for language processing or speaking through a summons or familiar, simply does not apply using this new method.
 
To put this another way, gone are the days when you type out some well-written comment through a summons, hit ENTER and have nothing show up in the window because it's 3 characters too long. Gone is the need to limit your phrases when speaking in an alternate language to a shorter message so that the listener can handle it.
 
And did I mention it's faster?
 
So there it is.  It may take some retraining of everyone's habits, but I think in the end, you'll all be quite a bit happier with how it works than the prior self-tell (/o) system.  Self-tells are still going to be an option, at least for now, and both systems work just fine together, but once you use this one, you'll see a significant difference.
 
So enjoy!  And of course, if there are any questions, just ask.
[/SIZE]

Fidzy

Re: Update to text/chat parsing
« Reply #1 on: July 13, 2009, 01:06:48 pm »
I know this may be out of place - and let me know if this is the case...  

I already asked this in an other post but did not get an answer.  And now I learn there is command for summon and familiar...

Could you please list all possible player-usable commands?
In Lore maybe?

Please ??
 

Link092

Re: Update to text/chat parsing
« Reply #2 on: July 13, 2009, 01:16:16 pm »
*gives Dorg a hug*
 

ycleption

Re: Update to text/chat parsing
« Reply #3 on: July 13, 2009, 01:49:02 pm »
Quote from: Fidzy

Could you please list all possible player-usable commands?
In Lore maybe?


This is a great idea, actually. A list of [lore]emotes[/lore] is available, which I think is part of what you are asking for.

In addition, you can type "=c help" in game for a general guide, and "=c emotehelp" for emotes, "=c assochelp" for how to talk through familiars and companions, and "=c dicehelp" for the various dice rolling.

Between those, I think most of the commands are covered - but you're right, this info should be on LORE.



Quote from: Dorganath
gone are the days when you type out some well-written comment through a summons, hit ENTER and have nothing show up in the window because it's 3 characters too long.


Hooray!
 

Hellblazer

Re: Update to text/chat parsing
« Reply #4 on: July 13, 2009, 01:49:09 pm »
Bro all the commands are the same but instead of using /o you use the = to replace it. So lets say you want to sit and don't want people to see the emote? well instead of using the /o c sit, you would use the =c sit.

And Dorg THANK YOU!!! I took a lousy habit to make short sentences even when I was speaking common because of the inability to make long sentences using the alternate language. This is a really good improvement.

Wow didn't even know that list existed. hehe.

Drizzlin

Re: Update to text/chat parsing
« Reply #5 on: July 13, 2009, 04:03:43 pm »
Great work!
 

Fidzy

Re: Update to text/chat parsing
« Reply #6 on: July 13, 2009, 11:28:37 pm »
You have my thanks
 
 =e waves my joy  ;-)
 

Chazzler

Re: Update to text/chat parsing
« Reply #7 on: July 27, 2009, 07:19:29 pm »
Thanks for the tip!
Just ran into the /o L too long sentence thingy today when talking as Unther in dwarven. :)
 

silverdraco

Re: Update to text/chat parsing
« Reply #8 on: October 28, 2009, 12:05:11 pm »
I am wondering about some new emotes that i noticed the other day at the player quest becoming the beasts done by the angels guild. I saw someone bend down Like a cat ready to attack. and sitting like that for a loooong time. does anyone know what emote that is? I can't find it anywhere.
 

miltonyorkcastle

Re: Update to text/chat parsing
« Reply #9 on: October 28, 2009, 12:30:08 pm »
"=c poise" or "/o c poise" should work for the emote you're asking about.
 

Hellblazer

Re: Update to text/chat parsing
« Reply #10 on: October 28, 2009, 07:57:50 pm »
It could also be *lowers* that does that. if you check at one of the picks of Tyillaan, Genna was bending down almost in the ready to tackle way, when she wrote that in her emote.

silverdraco

Re: Update to text/chat parsing
« Reply #11 on: October 29, 2009, 04:14:35 am »
I have tried to use the emote *lowers* several times but it's not the same as *poise*. *lowers* only lets you stay down for a moment and doesn't look like an animal ready to attack/jump someone. But *poise* does. I'll try to post a screen shot of it somewhere today.
 

Fidzy

Re: Update to text/chat parsing
« Reply #12 on: October 29, 2009, 01:10:21 pm »
Do I remember someone was supposed to create a commands list?  ;)
 
 Would it be possible to include the emotes?
 

Hellblazer

Re: Update to text/chat parsing
« Reply #13 on: October 29, 2009, 02:49:11 pm »
=c + LORE: emotes*
 
 =c + str, in, con, dex, cha, wis*
 
 =c + name of a skill in the skill list*
 
 * = without the stars infront and behind the emote.
 
 if you want the emote to be seen
 
 *int check*
 
 *bluff check*
 
 *sit*
 
 are exemple of emotes that will be seen in party. the =c will make a self tell command that the players will not see the emote, but will see the result, wither it be a roll, or your character will perform an action. Don't type in the + if you use the =c command
 
 
 =L blah blah blah
 
 will enable you to use the secondary language of a character without suffering the character typed limit.
 
 =c setlang + elf, orc, darkelf, dwarf, animal ear ...etc will activate the language ear.
 
 =c toggle check_silent will set your rolls to be invisible to all but you and the gms. Typing it again will make the rolls visible again to other people.
 
 =c save will save your character the same way using the orb does.
 
 /o s *emote* will have your summon make an emote. If the emote is compatible the summon might do the command as your char would. Don't type in the *.
 
 /o f *emote* will have your Familiar make an emote. If the emote is compatible the familiar might do the command as your char would. Don't type in the *.
 
 /o a *emote* will have your animal companion make an emote. If the emote is compatible the aniimal companion might do the command as your char would. Don't type in the *.
 
 /o h *emote* will have your henchmen (ox) make an emote. If the emote is compatible the henchmen might do the command as your char would. Note that I never tested an actual action on my oxes, could be interesting to see if they would fall lon the ground, or sleep or stuff like that. Don't type in the *.
 
 Hmm can't think of any other one, dorg or anyone more familiar with the emotes and command might point out some that I missed.

Dorganath

Re: Update to text/chat parsing
« Reply #14 on: October 29, 2009, 03:03:28 pm »
Any place you use /o (letter) you can use =(letter)

So to speak through one's summon, it's:

=s Hello!

And lastly try this in-game:

=c help

Information is given in the game/combat window.  There's other help options, but that should get you started.
 

Hellblazer

Re: Update to text/chat parsing
« Reply #15 on: October 29, 2009, 03:04:58 pm »
that only works for the summons though, not for the henchmen or the familiar/animal companion right?

Hellblazer

Re: Update to text/chat parsing
« Reply #16 on: October 29, 2009, 03:06:00 pm »
Thanks didn't know about the =c help one.

Jilseponie Wyndon

Re: Update to text/chat parsing
« Reply #17 on: August 28, 2012, 12:45:43 pm »
*Blonde Moment*
 

 

anything