def do_goto(self, session, line): try: self.room = Select.getRoom(line) Update.setLocation(self.room[0], session.p_id) session.is_in = self.room[0] session.push(tpl.GOTO) except: session.push(tpl.GOTO_ERR)
def add(self, session): self.ival = ipsessions.items() if session.addr[0] != "127.0.0.1" and session.addr[0] in self.ival: # Allow multiusers for the admin. session.push(tpl.LOGIN_ALREADY_IN) raise EndSession sessions[session.p_id] = session ipsessions[session.p_id] = session.addr[0] Update.setIP(session.addr[0], session.p_id) #Store the player's starting location in the socket object. session.is_in = 1 Update.setLocation(session.p_id, 1) # Check if the user supports ANSI colors if Select.getColors(session.p_id) == "on": Actions.do_setansi(session, "on") else: Actions.do_setansi(session, "off") for i in sessions: try: i.push(tpl.ENTER_GAME % (session.pname,)) except: pass print "%s logged in." % session.pname Log("%s logged in from %s" % (session.pname,session.addr[0])) Actions.do_look(session, '') # To be replaced with something nicer. session.push("> ")
def do_go(self, session, line): if not line: session.push(tpl.DONT_GO) else: try: self.isexit = Select.getExit(session.is_in, line.lower()) except: session.push(tpl.NO_EXIT) try: # Actually move Update.setLocation(session.p_id , self.isexit[1]) #Effects.RoomBroadcast(session, session.is_in, " leaves %s." % str(self.isexit[2])) session.is_in = self.isexit[1] #Effects.RoomBroadcast(session, session.is_in, " enters the room.") self.do_look(session, '') # Force a look, to be replaced by something nicer. except: session.push(tpl.CANT_MOVE)