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

Play RetroMUD
Post new topic  Reply to topic     Home » Forums » CMUD General Discussion
oldguy2
Wizard


Joined: 17 Jun 2006
Posts: 1201

PostPosted: Wed Nov 12, 2008 12:35 pm   

Input Causing Display Error?
 
Quote:
35e
00h, 3850m, 16370e, 16400w cexkdb-


That's my prompt. Today I logged in and at random times when I entered a direction such as "e for east" as above it chopped off my prompt and displayed in the next line. This of course causes problems making me think I have only 35 health because somehow it still fires the trigger, which I don't understand.

My prompt trigger is:

Code:
^(\d+)h, (\d+)m, (\d+)e, (\d+)w ([cexkdbs]*)\-
Reply with quote
Zugg
MASTER


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

PostPosted: Wed Nov 12, 2008 2:58 pm   
 
You need to open the Script Debugger and turn on the Raw Input/output message and then try to capture this happening in the debugger so that I can see exactly what control codes the MUD is sending and exactly where the network packet boundaries are. My guess is that it's a network package boundary.
Reply with quote
oldguy2
Wizard


Joined: 17 Jun 2006
Posts: 1201

PostPosted: Wed Nov 12, 2008 4:04 pm   
 
Code:
0.0012 | a    Achaea ]3500h, 3850m, 16394e,
0.2092 | ---
0.0006 | c    Achaea |[57] Achaea Comline : start :
0.0007 | f    Achaea |  Command Input: ^\b(?:n[ew]?|e|s[ew]?|w|in|out|u|d)\b$
0.0005 | c    Achaea |  exec : Command Input "^\b(?:n[ew]?|e|s[ew]?|w|in|out|u|d)\b$" : ...
0.0004 | a    Achaea |3500h, 3850m, 16394e, e
0.0052 | i    Achaea >e<CR><LF>
0.0001 | d    Achaea |[57] Achaea Comline : stopped
0.0524 | i    Achaea <2m16400w <ESC>[37mcexkdb-<IAC><EOR><IAC><SB><200>Room.Brief Hillwalk Way<IAC><SE><IAC><SB><200>Room.Exits e,w,u<IAC><SE><ESC>[33mHillwalk Way.<CR><LF>
0.0000 | <ESC>[37m<IAC><SB><200>Room.Brief Hillwalk Way<IAC><SE><ESC>[36mThe bright sun shines down, blanketing you with its life-giving warmth.<ESC>[37m<ESC>[36m A rune resembling a horse has been sketched into the ground here.<ESC>[37m<ESC>[36m A runic totem is planted solidly in the ground.<ESC>[37m<CR><LF>
0.0000 | <ESC>[33mYou see exits leading<ESC>[37m<IAC><SB><200>Room.Exits ne,w<IAC><SE><ESC>[33m northeast and west.<CR><LF>
0.0000 | <ESC>[37m<IAC><SB><200>Char.Vitals<LF>
0.0000 | H:3500/3500 M:3850/3850 E:16392/16400 W:16400/16400 NL:54/100 <IAC><SE><ESC>[32m3500h, <ESC>[37m<ESC>[32m3850m, <ESC>[3
0.0001 | a    Achaea #Telnet 200: Room.Brief Hillwalk Way
0.0005 | a    Achaea #Telnet 200: Room.Exits e,w,u
0.0005 | a    Achaea #Telnet 200: Room.Brief Hillwalk Way
0.0005 | a    Achaea #Telnet 200: Room.Exits ne,w
0.0005 | a    Achaea #Telnet 200: Char.Vitals<LF>H:3500/3500 M:3850/3850 E:16392/16400 W:16400/16400 NL:54/100
0.0006 | a    Achaea ]16400w cexkdb-
0.0006 | a    Achaea |16400w cexkdb-
Reply with quote
Zugg
MASTER


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

PostPosted: Wed Nov 12, 2008 8:23 pm   
 
Hmm, I don't see anything in that example that would cause the line break that you mentioned in the original post. Are you sure the line break after the "35e" happened with that specific debugger output?

The only thing unusual that I see is that you have a command #input trigger that is firing. You might try disabling that to see if it has any effect.
Reply with quote
oldguy2
Wizard


Joined: 17 Jun 2006
Posts: 1201

PostPosted: Thu Nov 13, 2008 3:28 am   
 
Well in that example the prompt ended up just like it shows there as the following:

3500h, 3850m, 16394e, e
16400w cexkdb-

It's just random. Here it put the "e for east" toward the end and cut the rest of the prompt and put it on the next line of display.

The input trigger is for when I move it resets some stuff. I'm not sure else how to do that. If you have an idea on how I could reset something only when I move let me know.
Reply with quote
Zugg
MASTER


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

PostPosted: Thu Nov 13, 2008 5:15 am   
 
OK, looking at the debug output more closely, I can see that there definitely was a network packet break between the 16394e, and the 16400w. In fact, it was a packet break in the middle of the ANSI color sequence.

So this is normal. CMUD cannot tell the difference between a packet break and a MUD prompt. On your specific MUD, the MUD is using the IAC EOR to mark the end of a prompt, but many MUDs do not send anything at all at the end of a prompt. So CMUD allows any output generated by your script or command echo to be displayed between packets. As far as CMUD can tell, it is adding the "e" movement echo to the end of a prompt.

While a future version might add more support for IAC EOR/GA codes to better handle the end of prompts, the current version is working as designed.

There might be ways to mess around with your network buffer sizes to reduce packet splitting, but I'm no expert on that. I don't believe the MUD itself is splitting the packets, so it's something between the server and your computer. Anything is allowed to break packets, but most network devices are set with large enough buffers that it's not that common. So it might be something your ISP is doing, or something in your Windows network settings. Somebody else might be able to offer more help for that.
Reply with quote
Display posts from previous:   
Post new topic   Reply to topic     Home » Forums » CMUD General Discussion All times are GMT
Page 1 of 1

 
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