Register to post in forums, or Log in to your existing account
 

Play RetroMUD
Post new topic  Reply to topic     Home » Forums » CMUD Beta Forum Goto page 1, 2  Next
The Raven
Magician


Joined: 13 Oct 2000
Posts: 463

PostPosted: Sat Oct 21, 2006 9:08 am   

[1.11] Disabling Special Characters
 
Disabling special characters does not appear to work.

Recreate:

Create a new MUD, and connect.
Goto Preferences->Scripting->Special Characters
Disable the walk character (the period).
Click Ok

Result:

Typing .nn into the command line will send 'n' and 'n' as two separate commands, rather than a plain

Expected:

Typing .nn into the command line should send '.nn' to the MUD without alteration.


I have not tested other special characters yet, since this is the only one I want to disable.
Reply with quote
The Raven
Magician


Joined: 13 Oct 2000
Posts: 463

PostPosted: Sat Oct 21, 2006 9:10 am   
 
I also tried changing the walk character (to =). No change in behavior... '.nn' still sends two separate 'n' commands.
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Sat Oct 21, 2006 2:42 pm   
 
I'll look into this, but I've been planning changes to the Special Characters that will only change them on the command line and not in scripts so I haven't been testing the existing special characters until I make this change. Also, I'm planning on eliminating many of the special character changes. The walk character is still the main one that people need to change. But I'll have to restrict what you can change it to. In your above example, changing it to =, for example, could interfere with the normal = variable assignment syntax. So it gets complicated.
Reply with quote
Zhiroc
Adept


Joined: 04 Feb 2005
Posts: 246

PostPosted: Sun Oct 22, 2006 4:29 am   
 
I don't really need to redefine the walk character, but I absolutely need to disable it. I define aliases all the time that start with ".", and the MUSH I play has code objects that have "." commands. The same is true of "!", ":", and ";"
Reply with quote
The Raven
Magician


Joined: 13 Oct 2000
Posts: 463

PostPosted: Sun Oct 22, 2006 4:46 am   
 
Ditto what Zhiroc said. MUX/MUSE/MUSH sites use more special characters than most flavors of MU*, so disabling or modifying special characters is essential.
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Mon Oct 23, 2006 7:38 pm   
 
Actually, most of the time using a . on the command line will work fine. Same thing with :, ;, etc. The new smart command line *tries* to be smart about this. For example, the following lines:

.hello
;hello
:hello

all work fine and send the expected text to the MUD. In other words, if you use . and the text following it is not a valid path name or speedwalk characters, then it gets sent to the MUD as plain text. This is a change from zMUD. So you shouldn't need to disable special characters as often as in zMUD. And you can always put double-quotes around the entire command line to force it to be sent to the MUD verbatim. Or toggle off parsing using Ctrl-R.
Reply with quote
The Raven
Magician


Joined: 13 Oct 2000
Posts: 463

PostPosted: Mon Oct 23, 2006 10:32 pm   
 
True... for example, .run works. But it's erratic... for example, .su (short for stand up) fails, because they are valid directions. I was able to work around this by disabling the English Directions packages. Obviously though, it's a pretty sub-optimal solution, and it only works for the speedwalk character.

I do notice that I've had less problems with : and ; than I recall. But I had new problems with the = key... I can't find a way to disable = assignment, so any phrase or speech with an = in it gives a syntax error.
Reply with quote
Zhiroc
Adept


Joined: 04 Feb 2005
Posts: 246

PostPosted: Tue Oct 24, 2006 4:25 am   
 
Just to be clear, here are some command lines that need to be sent to a MUSH

.s
!;'s eyes blink. "Hello Jane"
tt ;'s eyes blink. "Hello Jane"
@set me=!unfindable
"Hello

With zMUD, I can lilve with disabling the special characters, and not being able to do multiple commands on a line, or direct a command from a window, or use variable substitution in the line, or history substitution.

These commands, like the tt and ! ones above, might for long stretches of time dominate my command lines. I need to be able to enter these lines, without disabling parsing, or quoting.

If you can put quotes around a line, what happens if the line itself has quotes? So if you wanted to say:

tt ;'s eyes blink. "I thought you might be here; however I hoped not"

can you say:

"tt ;'s eyes blink. "I thought you might be here; however I hoped not""

Note that if you pair the quotes, you end up with a ';' outside of any quotes.


In fact, I have a command trigger:

t john ;'s eyes blink

so I can't disable parsing either.


If you think this is strange and unfriendly command syntax--you're right, it is. But I didn't define the syntax used by MUSHes...
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Tue Oct 24, 2006 4:44 am   
 
Zhiroc, thanks for the examples. It's always useful to get examples like this so that I can improve the smart command line.

As far as quotes, it doesn't matter if there are embedded quotes. CMUD doesn't count them or match them. If the command line starts and ends with " quotes then the first and last quote are stripped and the rest is sent to the MUD untouched.

But I want to try and get away from having so many "special character" options. Even if I end up having to leave the Speedwalk character so people can change it, many of the other special characters really don't need to be changed anymore (like #, @, %).

I'll take a look at the = issue. It should be easy to check for a space before the =. Basically I just need to be able to determine if it's a valid CMUD scripting line or not. But I'm trying to do it in a quick way without running the entire parser. Otherwise it's hard to tell the difference between a simple CMUD script syntax error that should be reported, vs a wierd MUSH command line that should be sent to the MUD and not parsed.
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Tue Oct 24, 2006 4:01 pm   
 
This morning when I was in the shower, I had a thought about this (yes, I'm *always* thinking about CMUD...it's a curse).

Putting double-quotes around the command line to force it to be sent to the MUD verbatim is a bit of a pain. a) there are two quotes needed, one at the beginning, one at the end, and b) the " character is a shifted character. So that's 4 keystrokes.

What if I made the ` character (the back-quote under the ~ character) a special "line escape" character. In other words, any line that begins with ` would be sent to the MUD verbatim (without the ` character of course). Since this character has no other meaning in CMUD, it is easy to support this on *both* the command line and in scripts. It's a single un-shifted character that's easy to type. And since ~ is the "character escape", making ` the "line escape" actually makes some sense.

This doesn't replace the need to improve the smart command line and the need to change other special characters like the speedwalking character, but I'd be interested in comments on this idea. It would be trivial to implement.
Reply with quote
Arminas
Wizard


Joined: 11 Jul 2002
Posts: 1265
Location: USA

PostPosted: Tue Oct 24, 2006 4:05 pm   
 
It would be Great! Very Happy
_________________
Arminas, The Invisible horseman
Windows 7 Pro 32 bit
AMD 64 X2 2.51 Dual Core, 2 GB of Ram
Reply with quote
Tech
GURU


Joined: 18 Oct 2000
Posts: 2733
Location: Atlanta, USA

PostPosted: Tue Oct 24, 2006 4:30 pm   
 
Nice!!
_________________
Asati di tempari!
Reply with quote
Seb
Wizard


Joined: 14 Aug 2004
Posts: 1269

PostPosted: Tue Oct 24, 2006 8:01 pm   
 
Just make sure the line escape character is configurable though, because that character is above the Tab key on a full UK keyboard, and next to the space character on my laptop keyboard. Which actually is fine in both cases. Hmm, I never use that key! Sounds good! Smile [Edit: But what do I know? I don't play any MUSHes.]


Last edited by Seb on Tue Oct 24, 2006 11:24 pm; edited 1 time in total
Reply with quote
Zhiroc
Adept


Joined: 04 Feb 2005
Posts: 246

PostPosted: Tue Oct 24, 2006 8:42 pm   
 
However, one problem with a "line escape" is like what I also mentioned previously: using aliases and command input triggers in conjunction with the funky MUSH syntax, which I do a lot. So, I want the command line parsed for these, but just not interpreted for other special characters... mostly ; and @

Luckily I don't use ` as a command prefix in my MUSH, nor does the MUSH I play use it either, by default. However, it could.... anybody could create such a command.
Reply with quote
The Raven
Magician


Joined: 13 Oct 2000
Posts: 463

PostPosted: Wed Oct 25, 2006 12:28 am   
 
Once again, I agree with Zhiroc... particularly, I often mix multiple commands on one line (;), while using other characters that would be special if I had them enabled. I would be sad to lose this functionality, or have to manually quote every special character used.
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Wed Oct 25, 2006 2:54 am   
 
Well, I can't make it a "line escape" if it still recognizes the ; character. That defeats the purpose and makes it impossible to send a ; to the MUD. You guys need to start using Shift-Enter and use a new line. Yeah, Shift-Enter is a little more work that using ; but I've gotten used to it myself and really like it a lot.

I *can* support the command input triggers. In fact, I've already added that piece to 1.12. However, I can't support aliases with a line-escape. Again, it defeats the purpose and is very difficult to do. While it's trivial to pass a command line to the input trigger processor, handling aliases means passing it to the regular script parser and the whole purpose of the line escape is to prevent the line from being parsed. However, with command input triggers you can easily simulate aliases, or create a command input that calls the alias. The entire line is sent to the command input processor *including* the ` character. So it's really easy to make a trigger pattern that starts with ` to match whatever you want to type.

And no, it's not going to be customizeable. As I've said, I'm trying to reduce the number of options that people rarely use to make CMUD a bit more accessible to new users. It has always been a support issue with zMUD dealing with people who have changed their special characters. You try to tell them to type `something, only to find out that they changed the special character and so your example doesn't work for them.

As people have noticed, the ` really isn't used anywhere. Which is pretty amazing since it's an unshifted key that is in a really easy place on the keyboard.
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Wed Oct 25, 2006 2:54 am   
 
Oh, and I should mention that the command line still processes aliases normally if the line doesn't start with a `. So your normal aliases and command input triggers will continue to work as normal.
Reply with quote
Rainchild
Wizard


Joined: 10 Oct 2000
Posts: 1551
Location: Australia

PostPosted: Wed Oct 25, 2006 5:09 am   
 
I use ` to sing techno (eg DOOF`ca`DOOF`ca`DOOF`ca`CSSH`ca`rattatatta`rattatatta`CSSH`ca`rattatatta`CSSH`CSSH`CSSH`CSSSSH`DDDDOOF) on OOC from time to time... err, anyway...

So long as I can customize/disable certain things I don't mind... I always change ; to | because I use ; a lot on the MUD (since our building tools use it, the immortal chat channel uses it, plus I like doing winky-pokeytongue-smileys ;P hehe
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Wed Oct 25, 2006 5:45 am   
 
As long as ` isn't the first character in your singing, then it should be fine. CMUD only cares if it's the first character on a line (after any whitespace).

Your last comment is exactly why I *want* to remove some of these options. The | character has a lot of other meaning in zMUD/CMUD these days. I'm sure there are some examples where CMUD could be confused and think | is a string list separator instead of your command separator. That's why I don't want people changing it since it just causes wierd side effects and is very difficult to support since many people with wierd problems often forget to mention that they have changed the special characters.

The whole idea of the smart command line is to make CMUD work properly without needing to change special characters. Have you tried ; in CMUD? CMUD already handles most smilies (although ;P isn't handled yet). And most MUDs that I've seem which use ; always have it as the first character, which works fine in CMUD. If the ; is used in other ways on the MUD, let me know and I'll see if I can support it.

But I'd really like to avoid changing important characters such a ; # @ % (which is why new features like local variables use special characters that cannot be changed).
Reply with quote
Zhiroc
Adept


Joined: 04 Feb 2005
Posts: 246

PostPosted: Wed Oct 25, 2006 6:20 am   
 
Zugg wrote:
And no, it's not going to be customizeable. As I've said, I'm trying to reduce the number of options that people rarely use to make CMUD a bit more accessible to new users. It has always been a support issue with zMUD dealing with people who have changed their special characters. You try to tell them to type `something, only to find out that they changed the special character and so your example doesn't work for them.

As people have noticed, the ` really isn't used anywhere. Which is pretty amazing since it's an unshifted key that is in a really easy place on the keyboard.


But on the other hand, if CMUD makes it difficult to support MUSHes, you're going to lose a lot of the same people you're trying to help. IMHO, it's a lot easier to tell people: If you're playing on a MUSH, set this and that option. You do it once, and they're golden. Telling a novice CMUD user: "Oh, every time you need to type a line with X, Y, or Z in it, begin it with this special character" is exactly how to lose users.

I agree that allowing too much customization hurts. For example, I can't export ZMUD scripts correctly because I disable ";". But I think the key thing is to not "throw out the baby with the bath water".

BTW, this is why some applications have "Advanced Preferences". It lets power users get in to tweak things that mere mortals shouldn't look at.

To play my MUSHes without ZMUD parsing getting in the way, I've found I have to disable (not redefine) the separator (;), focus (:), movement (.), and history (!) characters. BTW, on a MUSH, any sort of speedwalking is just about useless, as there are usually many, many exits that don't use cardinal directions (north, south, etc.)

But, if you still don't want to allow these characters to be disabled, let's see if we can come up with new ideas.

I don't really like the "leading character" idea for line escaping. Anyone on a MUSH could make it a command prefix pretty easily, and like you say, you're surprised it isn't more used. It will be. So, do line escaping with a control sequence. The advantage of this is that you don't have to reposition your cursor once you've realized you have to escape the current line, you can use the control sequence anywhere.

Or is line escaping like disabling parsing in ZMUD, except that as you say command input triggers will fire?

So, you have two commands in CMUD: CTRL-Q that will quote only the current line, and CTRL-R that will turn off parsing (which I hope will still leave triggers active). So someone like me can just turn off parsing, and change all the aliases to triggers.

And if this is the case, I'd love an option to make parsing be off by default.
Reply with quote
Zhiroc
Adept


Joined: 04 Feb 2005
Posts: 246

PostPosted: Wed Oct 25, 2006 6:26 am   
 
Zugg wrote:
The whole idea of the smart command line is to make CMUD work properly without needing to change special characters. Have you tried ; in CMUD? CMUD already handles most smilies (although ;P isn't handled yet). And most MUDs that I've seem which use ; always have it as the first character, which works fine in CMUD. If the ; is used in other ways on the MUD, let me know and I'll see if I can support it.

In a MUSH, the ';' character is used to start a pose where the character's name is prepended without a trailing space. Thus:

;'s eyes blink

emits the following pose (otherwise called an emote probably in MUDs):

Zhiroc's eyes blink

However, the problem is that ';' is not limited to use at the start of a line. There are often many commands that take a pose as an argument, and so this is where you come up with things like:

tt ;'s blink
!;'s eyes blink
+speak ;'s eyes blink
w john=;'s eyes blink
p john=;'s eyes blink
Reply with quote
Seb
Wizard


Joined: 14 Aug 2004
Posts: 1269

PostPosted: Wed Oct 25, 2006 9:07 am   
 
If disabling (and possibly changing) special characters was on a tab with a BIG warning saying that changing these settings makes CMUD much harder to support, and any attempts to get support should be accompanied by a text describing any changes they have made to the special characters, that might help. Also, IIRC, CMUD will have a Copy / Paste as phpBB code. If when you copied, it also copied some text (by default, set on the same preferences page) with any changes to the special characters, then it would at least help prevent confusion on the forums.

Just some ideas. I wouldn't want to change my special characters.
Reply with quote
Vijilante
SubAdmin


Joined: 18 Nov 2001
Posts: 5182

PostPosted: Wed Oct 25, 2006 10:25 am   
 
Some thoughts on the subject, and I know it maybe a little late in the game to implement them.

First a change in how turning off parsing works. It never made sense to me that turning off parsing would nearly entirely disable scripts in zMud. So the change I would suggest is that turning off parsing only affects the command line. Scripts are still subject to the parsing and compiling no matter what. The advantage of this is that new MUX and MUSH users with all the funky syntaxes for emotes only have to do 1 thing.

Second is have command input triggers still able to act when parsing is off. This allows more seasoned users to create a work around to not having aliases available to the command line. Many of us already do this anyway because it works as a very good first trigger state, reducing the number of #Tą commands. Again the full function of scripts would be available.

Third keep the line escape character, with the above changes it will still be needed in scripts to allow some of the wierd stuff to be sent. Again this becomes something more for seasoned players.

I think in total those changes come pretty close to satisfying the needs of all those that spoke up so far. It should also eliminate the need for changing/disabling special characters entirely.
_________________
The only good questions are the ones we have never answered before.
Search the Forums
Reply with quote
The Raven
Magician


Joined: 13 Oct 2000
Posts: 463

PostPosted: Wed Oct 25, 2006 4:15 pm   
 
I don't think there is a good answer to this. Every choice involves either pain for MUSH/MUSE/MUX players, or pain for Zugg.

I'll leave it up to Zugg.

I personally would be happy with the option to just disable (not redefine) special characters.

Myrddin
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Wed Oct 25, 2006 5:24 pm   
 
OK, I think I need to clarify some stuff.

a) First, the Ctrl-R to turn off parsing only effects the command line. Scripts and triggers still work. (or they should). It should be easy to enable input triggers even when parsing is toggled off, so I'll look into that.

b) There is no way to use a control sequence to turn off parsing for just the current line. The entire text of the command line is processed at once, so unless an actual character is added to the text, there is no way for the parser to tell which line parsing was enabled for. It's either going to effect the entire command line or not, which is what Ctrl-R already does.

c) Most of the problems with MUSHes in zMUD are already fixed for CMUD. Please try your examples in CMUD and let me know what needs to be improved. I'm well aware of the shortcomings in the zMUD command line. But this is the CMUD forum and we are talking about CMUD. For example, the ; examples that Zhiroc posted all work fine in CMUD. Things like:

tt ;'s blink

which didn't work in zMUD work fine in CMUD. It's only the certain lines with = that don't work yet.

So yes, I know that lots of stuff didn't work in zMUD. Please start testing CMUD and post those MUSH commands that still don't work. Just because you had to do stuff in zMUD to make it work doesn't mean you need to do it in CMUD. Keep your special characters enabled and lets fix the problems.

See, that's one of the problems with making preferences for things like special characters. It encourages people to just disable them and ignore the problems. Even if I eventually fix/implement the special character changing in CMUD, right now this is beta testing and I want to fix the problems and not just provide a workaround to ignore them.
Reply with quote
Display posts from previous:   
Post new topic   Reply to topic     Home » Forums » CMUD Beta Forum All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

© 2009 Zugg Software. Hosted by Wolfpaw.net