def __character_login(dynamic_id): user = UsersManager().get_by_dynamic_id(dynamic_id) logger.info("user_id:%d", dynamic_id) if not user: return {'result': False} v_character = VCharacterManager().get_by_id(user.user_id) if v_character: v_character.dynamic_id = dynamic_id else: v_character = VirtualCharacter(user.user_id, dynamic_id) VCharacterManager().add_character(v_character) now_node = SceneSerManager().get_best_sceneid() # game服登录 child_node = GlobalObject().child(now_node) player_data = child_node.enter_scene_remote(dynamic_id, user.user_id) if not player_data: return {'result': False} v_character.node = now_node # pull message from transit GlobalObject().remote['transit'].pull_message_remote(user.user_id) SceneSerManager().add_client(now_node, dynamic_id) return {'result': True, 'player_data': player_data}
def __character_login(dynamic_id, pay_arg): user = UsersManager().get_by_dynamic_id(dynamic_id) logger.info("user_id:%d", dynamic_id) if not user: logger.error("user not exist!") return {'result': False, 'result_no': 4001} v_character = VCharacterManager().get_by_id(user.user_id) print("__character_login %s" % v_character) if v_character: old_dynamic_id = v_character.dynamic_id v_character.dynamic_id = dynamic_id VCharacterManager().update_dynamic_id(old_dynamic_id, v_character) print("old dynamic_id %s, new_dynamic_id %s" % (old_dynamic_id, dynamic_id)) v_character.state = 1 # 恢复掉线状态-> 正常状态 else: v_character = VirtualCharacter(user.user_id, dynamic_id) VCharacterManager().add_character(v_character) now_node = v_character.node if not now_node: now_node = SceneSerManager().get_best_sceneid() if not now_node: logger.error("can't find game server!") return {'result': False, 'result_no': 4002} v_character.node = now_node # game服登录 child_node = GlobalObject().child(now_node) res_data = child_node.enter_scene_remote(dynamic_id, user.user_id, pay_arg) if not res_data['player_data']: logger.error("enter scene error!") return {'result': False, 'result_no': 4003} if res_data['player_data'] == 4005: logger.debug("enter scene error, 4005!") VCharacterManager().drop_by_dynamic_id(dynamic_id) return {'result': False, 'result_no': 4005} # logger.debug("pull_message_remote") # # pull message from transit # GlobalObject().remote['transit'].pull_message_remote(user.user_id) SceneSerManager().add_client(now_node, dynamic_id) res_data['result'] = True return res_data
def __character_login(dynamic_id, pay_arg): user = UsersManager().get_by_dynamic_id(dynamic_id) logger.info("user_id:%d", dynamic_id) if not user: logger.error("user not exist!") return {'result': False, 'result_no': 4001} v_character = VCharacterManager().get_by_id(user.user_id) if v_character: v_character.dynamic_id = dynamic_id v_character.state = 1 # 恢复掉线状态-> 正常状态 else: v_character = VirtualCharacter(user.user_id, dynamic_id) VCharacterManager().add_character(v_character) now_node = v_character.node if not now_node: now_node = SceneSerManager().get_best_sceneid() if not now_node: logger.error("can't find game server!") return {'result': False, 'result_no': 4002} v_character.node = now_node # game服登录 child_node = GlobalObject().child(now_node) res_data = child_node.enter_scene_remote(dynamic_id, user.user_id, pay_arg) if not res_data['player_data']: logger.error("enter scene error!") return {'result': False, 'result_no': 4003} # logger.debug("pull_message_remote") # # pull message from transit # GlobalObject().remote['transit'].pull_message_remote(user.user_id) SceneSerManager().add_client(now_node, dynamic_id) res_data['result'] = True return res_data