More bugfixes.

This commit is contained in:
Griatch 2013-02-03 21:38:37 +01:00
parent b82a75d816
commit ab5b9116df
2 changed files with 10 additions and 7 deletions

View file

@ -752,7 +752,7 @@ class CmdOOCLook(MuxCommandOOC, CmdLook):
# get all our characters
characters = player.db._playable_characters
string = "You are logged in as {g%s{n." % player.key
string += " Use {w@ic <character>{n to enter the game."
string += "\nUse {w@ic <character>{n to enter the game, {w@occ{n to get back here."
if characters:
string += "\n\nAvailable character%s:" % (len(characters) > 1 and "s" or "")
for char in characters:
@ -760,7 +760,7 @@ class CmdOOCLook(MuxCommandOOC, CmdLook):
if csessid:
# character is already puppeted
if player.get_session(csessid):
string += "\n - {G%s{n (played by you in another session)"
string += "\n - {G%s{n (played by you in another session)" % char.key
else:
string += "\n - {R%s{n (played by someone else)" % char.key
else:
@ -802,7 +802,7 @@ class CmdCharCreate(MuxCommandOOC):
return
key = self.lhs
desc = self.rhs
if player.db._playeable_characters and len(player.db._playable_characters) >= self.MAX_NR_CHARACTERS:
if player.db._playable_characters and len(player.db._playable_characters) >= self.MAX_NR_CHARACTERS:
player.msg("You may only create a maximum of %i characters." % self.MAX_NR_CHARACTERS)
return
# create the character
@ -934,8 +934,8 @@ class CmdOOC(MuxCommandOOC):
old_char.location = None
# disconnect
caller.disconnect_character(caller)
err = caller.disconnect_character(caller)
print "err:", err
caller.msg("\n{GYou go OOC.{n\n")
caller.execute_cmd("look")

View file

@ -465,6 +465,7 @@ class PlayerDB(TypedObject):
if not sessid:
return
char = _GA(self, "get_character")(sessid=sessid, return_dbobj=True)
print "disonnect session:", char
if char:
# call hook before disconnecting
_GA(char.typeclass, "at_disconnect")()
@ -511,7 +512,9 @@ class PlayerDB(TypedObject):
return char and (char == character.dbobj and (return_dbobj and char or char.typeclass)) or None
return char and (return_dbobj and char or char.typeclass) or None
elif character:
print character, character.dbobj, _GA(self,"db_objs").all()
char = _GA(self, "db_objs").filter(id=_GA(character.dbobj, "id"))
print "character:", character, char
return char and (return_dbobj and char[0] or char[0].typeclass) or None
else:
# no sessid given - return all available characters
@ -552,11 +555,11 @@ class PlayerDB(TypedObject):
if not character:
return
char = _GA(self, "get_character")(character=character, return_dbobj=True)
print "disconnect_char:", char
if char:
_GA(self, "disconnect_session_from_character")(char.sessid)
print _GA(self, "disconnect_session_from_character")(char.sessid)
_GA(self, "db_objs").remove(char)
del char.player
del char.sessid
self.save()
# clear cache
cache = get_prop_cache(self, "_characters") or {}