Ghosting

Started by Harry Mudd, November 26, 2007, 06:24:10 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

I dont know if this topic has been brought up, but will post assuming if it has, then this topic can be deleted or moved.

I noticed that when you die, you will most often ghost, meaning the com portion of the send/receive routine isnt checking DTR (data terminal ready) to ensure carrier hasnt been dropped. The game thinks you are still there when in fact you are not. When I programmed telecommunication, a dtr check was done between sending every byte. I would imagine that may be a bit too often for multi-user data base of this size but dtr should be checked on each line on a periodic basis to assure integrity. A line status is normally ultra-fast unless the language being used it really slow in enterpretation to the processor.

Harry


Quote from: Harry Mudd on November 26, 2007, 06:24:10 PM
I dont know if this topic has been brought up, but will post assuming if it has, then this topic can be deleted or moved.

I noticed that when you die, you will most often ghost, meaning the com portion of the send/receive routine isnt checking DTR (data terminal ready) to ensure carrier hasnt been dropped. The game thinks you are still there when in fact you are not. When I programmed telecommunication, a dtr check was done between sending every byte. I would imagine that may be a bit too often for multi-user data base of this size but dtr should be checked on each line on a periodic basis to assure integrity. A line status is normally ultra-fast unless the language being used it really slow in enterpretation to the processor.

Harry
Thanks for the detailed feedback.

It is definitely a bug, but in this case the bug is actually in the GreaterMUD module.  The TGS Windows app actually shows the person hanging up (and removes them from the online users list), but the GMUD module isn't properly removing them when this event fires.  It's something I must have overlooked when I recently updated GMUD to use the new TGS.  I'll try to get a fix in by the end of this week, but I've already got a major change to the abilities system in progress and can't even compile until I get that finished, so it might take a bit longer.


TGS v1.0 (coming soon)

If this bug looses you too many lives to recover in 1 level let me know and I'll give you a few to make up for it.

DTR??  Dude, no one uses serial communication anymore!  ;D  You probably wanna check something more like socket.isConnected()
If we can hit that bulls-eye, the rest of the dominoes will fall like a house of cards.? Check-mate!

Quote from: Ian on November 27, 2007, 02:58:04 AM
DTR??  Dude, no one uses serial communication anymore!  ;D  You probably wanna check something more like socket.isConnected()
Yeah, fortunately most (not all) of the lower level socket stuff is handled for you in the kickass classes in the System.Net namespace in .NET.  You still have to deal with telnet handshaking (DO/DONT/WILL/WONT/IACs) and ANSI on your own, but the Socket class is pretty good about noticing incoming and dropped connections with nice clean events to hook into.


TGS v1.0 (coming soon)