On Tue, 21 Dec 1999, Brandon Phelps wrote:
>First of all i want to say that It's an honor talkin to THE greerga
>himself, hehe OK now for the real email... Why is it that normally then
>if i get disconnected as long as I'm not in olc (or at the main menu
>even) when I reconnect it connects fine and says "You take over your
>body, already in use..."
The duplication bug only manifests itself when your character is in the
login stages of the game. When you are in CON_PLAYING, it is safe to
reconnect. The CircleMUD code checks for != CON_PLAYING when deciding
that. Technically, OasisOLC should have modified Valid_Name() in ban.c to
test for != CON_PLAYING and all of the other OLC states since they don't
have that problem. In fact, there is already an IS_PLAYING() macro in
utils.h to do so.
diff -up OasisOLCv2.0/ban.c OasisOLCv2.0.1/ban.c
--- OasisOLCv2.0/ban.c Tue May 4 00:36:36 1999
+++ OasisOLCv2.0.1/ban.c Tue Dec 21 01:50:41 1999
@@ -263,7 +263,7 @@ int Valid_Name(char *newname)
*/
for (dt = descriptor_list; dt; dt = dt->next)
if (dt->character && GET_NAME(dt->character) && !str_cmp(GET_NAME(dt->character), newname))
- return (STATE(dt) == CON_PLAYING);
+ return (IS_PLAYING(dt));
/* return valid if list doesn't exist */
if (!invalid_list || num_invalid < 1)
It appears to compile, so it should work. ;)
--
George Greer | CircleMUD Community Resources
greerga@circlemud.org | http://www.circlemud.net/
+------------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
+------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST