def auth(self): """auth the client.""" if self.client in status.LOBBY: character = self.load_character(self.name) if character: if character.get_password() == self.password: origin_player = None #. check current in game? if self.player_was_login(self.name): self.client.send('\nThis name was login, kick the user!\n') origin_player = self.get_origin_player() character = copy.deepcopy(origin_player.character) #. copy the character object, because the origin character object wiil be drop #. send notice to origin player if origin_player: origin_player.send("Somebody login from %s, see you again!\n" % (self.client.addrport()) ) #. drop origin Player SCHEDULER.add(.2, origin_player.deactivate) #. become player self.promote(character) broadcast('%s enter the world.\n' % self.name ) print ('** Client %s login success with name: %s.' % (self.client.addrport(), self.name)) return True else: print ('!! Client %s login fail with name: %s.' % (self.client.addrport(), self.client) ) return False return False
def on_connect(client): """ Sample on_connect function. Handles new connections. """ client.request_naws() #. get Window Size: client.columns, client.rows print "++ Opened connection to %s" % client.addrport() broadcast('Unkown try to enter the world from %s.\n' % client.addrport() ) status.LOBBY[client] = Guest(client)
def register(self): """docstring for register""" character = Character(self.name) character.set_password(self.password) character.set_location(status.SERVER_CONFIG.recall_xy, status.SERVER_CONFIG.recall_map_name) #. become player player = self.promote(character) player.set_role(ROLE_USER) #. save data status.CHARACTER_LOADER.dump(character) broadcast('A new hero enter the chaos, welcome %s!\n' % self.name ) print ('** Client %s register success with name: %s.' % (self.client.addrport(), self.name))
def on_disconnect(client): """ Sample on_disconnect function. Handles lost connections. """ print "-- Lost connection to %s" % client.addrport() #. save user data if status._PLAYERS.has_key(client): player = status._PLAYERS[client] status.CHARACTER_LOADER.dump(player.character) broadcast('%s leaves the world.\n' % player.character.get_name()) clean_status(client)