New Command: Lemote

Started by Eternal, October 01, 2006, 10:09:07 PM

Just a thought, I recently had a character who would regularly kneel, or sit, or tremble (i.e. changing position) and think it would be nifty if we could have our ldesc changes show as emotes.

Admittedly, this is easily worked around now buy just emoting then using change ldesc, but if I forget to change ldesc and someone walks in, well, I'd rather be kneeling than standing here.

So my thought is something along the lines of:

Lemote

This command changes your ldesc as specified.  The use of this command will be visible to all players who can see you.

lemote <emote-style description>

Example:

Lemote kneels before ~dragon.
Lemote kneels before the great steel dragon.

You see:  You kneel before the great steel dragon.
Others see:  The balding, one-eyed templar kneels before the great steel dragon.
Your ldesc becomes:  The balding, one-eyed templar kneels before the great steel dragon.

Honestly, I wouldn't see this as a code change with any great need, it's easy enough to (try to) remember to change ldesc whenever you kneel, tremble, do anything that would show obviously and be persistent.  Just a random idea that's been in my mind of late.

Given the ability to nest emotes into Position commands, I don't think this is needed.

> sit (kneeling on the sand)
Kneeling on the sand, you sit down.


However, I would like to see a Lock Ldesc capability, where the default long description is altered for a while.  This is primarily useful when engaging in repetitive tasks that alter the sdesc - primarily crafting and spellcasting, but possibly movement as well.

What would happen is that instead of the character's ldesc reverting to "The tall, muscular man is [position]ing here", it will return to what was previously set.


Ldesc: is standing here.> change ldesc * is preparing fruit baskets.
Your new ldesc (locked) is the tall, muscular man is preparing fruit baskets.

Ldesc: is preparing fruit baskets.> craft kalan into sliced kalan
You begin preparing the food...

Ldesc: is here, cooking.> [time passes]

You slice the fruit.
Ldesc: is preparing fruit baskets.>


With movements, it can help people doing patrols, as well as set the environment better when people go outdoors.  With crafting, it can help longer sessions.  With spellcasting, it can help a lot while practicing.

Because reverting the long description is just extremely tedious after a certain point.  Sorry to hijack your thread, Eternal, but I think this is similar enough a concept.
Quote from: Vesperas...You have to ask yourself... do you love your PC more than you love its contribution to the game?

While this isn't an exact fix, if you use a client, it's probably very easy to set up an alias to take care of this (until such a time as it's coded, if and when that ever happens). You can do something like the following (which would work in TinTin++):


>#alias lemote {em %0;change ldesc %0}
>#Ok. {lemote} aliases {em %0;change ldesc %0}.
>
>lemote dances across the floor.
>Tlaloc the Texan dances across the floor.
>Your new ldesc is:
>Tlaloc the Texan dances across the floor.


Again, that works in TT++, but I'm sure other clients have similar abilities to alias.
Tlaloc
Legend


Thanks Tlaloc!  You know, if I had half a mind for coding, I might have already thought of that.   :oops:

No worries, Larrath, I brought it up for discussion mainly because it's just a new idea.  Now to work with the newfangled GMUD aliases.

How would I do this with simplemu do you think?
Varak:You tell the mangy, pointy-eared gortok, in sirihish: "What, girl? You say the sorceror-king has fallen down the well?"
Ghardoan:A pitiful voice rises from the well below, "I've fallen and I can't get up..."

For all the zMUD users:
#ALIAS lemote {
 :%-1
 change ldesc %-1
 }

To be honest I don't think 'lemote' used in that fashion would really work. If you want to be more creative with your emotes then your going to run into grammatical errors being applied to your ldesc. For example:


> lemote sits in a corner.


Would work fine, however:


lemote walks over to the corner, then settles down, crosslegged.


Would not work as an ldesc also.

Perhaps making it so you can combine an emote with changing your ldesc all in one go. Not sure how, maybe with brackets that contain the 'ldesc' after the emote. However, you might as well just keep it the way it is?

Yeah, people using this would have to be careful about their emotes/ldescs. You can still get pretty creative, I think, while maintaining the parameters of a good ldesc (and emote).

For instance:

The miserable Byn runner cleans the latrines, covered in grime.
The uppity servant sweeps the floor, kicking up clouds of dust.
The hard-nosed templar scowls as his gaze sweeps the tavern.
Tlaloc
Legend


I think this works.

#ALIAS lemote {
 #IF (%pos( "(", %-1) != FALSE) {
   #VAR longdesc %copy( %-1, %pos( "(", %-1), %pos( ")", %-1) - %pos( "(", %-1) + 1)
   #VAR emotes %trimright( %replace( %-1, @longdesc, ""))
   #VAR longdesc %replace( @longdesc, "(", "")
   #VAR longdesc %replace( @longdesc, ")", "")
   emote @emotes
   change ldesc @longdesc
   }
 }


Syntax:lemote boogies.(is here, dancing foolishly.)
>
emote boogies.
change ldesc is here, dancing foolishly.



Hooray PARSING!

edit: made it trim trailing spaces.

I think I'm going to have to get a new MUD client... gmud doesn't do fancy stuff and it's only the 2nd I've ever used (Pueblo being the first)!   :cry:

Quote from: "rufus"I think this works.

#ALIAS lemote {
 #IF (%pos( "(", %-1) != FALSE) {
   #VAR longdesc %copy( %-1, %pos( "(", %-1), %pos( ")", %-1) - %pos( "(", %-1) + 1)
   #VAR emotes %trimright( %replace( %-1, @longdesc, ""))
   #VAR longdesc %replace( @longdesc, "(", "")
   #VAR longdesc %replace( @longdesc, ")", "")
   emote @emotes
   change ldesc @longdesc
   }
 }


Syntax:lemote boogies.(is here, dancing foolishly.)
>
emote boogies.
change ldesc is here, dancing foolishly.



Hooray PARSING!

edit: made it trim trailing spaces.

What clients will that work with?

Quote from: "Beux"
Quote from: "rufus"I think this works.

#ALIAS lemote {
 #IF (%pos( "(", %-1) != FALSE) {
   #VAR longdesc %copy( %-1, %pos( "(", %-1), %pos( ")", %-1) - %pos( "(", %-1) + 1)
   #VAR emotes %trimright( %replace( %-1, @longdesc, ""))
   #VAR longdesc %replace( @longdesc, "(", "")
   #VAR longdesc %replace( @longdesc, ")", "")
   emote @emotes
   change ldesc @longdesc
   }
 }


Syntax:lemote boogies.(is here, dancing foolishly.)
>
emote boogies.
change ldesc is here, dancing foolishly.



Hooray PARSING!

edit: made it trim trailing spaces.

What clients will that work with?

It works with zMUD, as I stated in my earlier post.. this code is a beefing up of the last one.