def enter_scene_9(data, player): responsedata = GameLoginResponse() responsedata.res.result = True player.pvp.check_time() responsedata.pvp_times = player.pvp.pvp_times responsedata.pvp_refresh_count = player.pvp.pvp_refresh_count responsedata.pvp_overcome_index = player.pvp.pvp_overcome_current responsedata.pvp_overcome_stars = player.pvp.pvp_overcome_stars responsedata.pvp_overcome_refresh_count = player.pvp.pvp_overcome_refresh_count if rank_helper.flag_doublu_day(): rank_name = 'PowerRank2' else: rank_name = 'PowerRank1' rank_no = rank_helper.get_rank_by_key(rank_name, player.base_info.id) responsedata.fight_power_rank = rank_no player.stamina.check_time_all() buy_times_pb = responsedata.buy_times for item in player.stamina._stamina.stamina: item_pb = buy_times_pb.add() item_pb.resource_type = item.resource_type item_pb.buy_stamina_times = item.buy_stamina_times item_pb.last_gain_stamina_time = item.last_gain_stamina_time logger.debug( "stami %s buy_stamina_times %s last_gain_stamina_time %s" % (item.resource_type, item.buy_stamina_times, item.last_gain_stamina_time)) return responsedata.SerializeToString()
def enter_scene_9(data, player): responsedata = GameLoginResponse() responsedata.res.result = True player.pvp.check_time() responsedata.pvp_times = player.pvp.pvp_times responsedata.pvp_refresh_count = player.pvp.pvp_refresh_count responsedata.pvp_overcome_index = player.pvp.pvp_overcome_current responsedata.pvp_overcome_refresh_count = player.pvp.pvp_overcome_refresh_count if rank_helper.flag_doublu_day(): rank_name = 'PowerRank2' else: rank_name = 'PowerRank1' rank_no = rank_helper.get_rank_by_key(rank_name, player.base_info.id) responsedata.fight_power_rank = rank_no player.stamina.check_time_all() buy_times_pb = responsedata.buy_times for item in player.stamina._stamina.stamina: item_pb = buy_times_pb.add() item_pb.resource_type = item.resource_type item_pb.buy_stamina_times = item.buy_stamina_times item_pb.last_gain_stamina_time = item.last_gain_stamina_time logger.debug("stamina %s buy_stamina_times %s last_gain_stamina_time %s" % (item.resource_type, item.buy_stamina_times, item.last_gain_stamina_time)) return responsedata.SerializeToString()
def get_star_rank(first_no, last_no, player, response): rank_name, last_rank_name = rank_helper.get_star_rank_name() rank_num = first_no rank_info = rank_helper.get_rank(rank_name, first_no, last_no) for (pid, rankinfo) in rank_info: res_user_info = response.user_info.add() res_user_info.id = int(pid) res_user_info.star_num = int(rankinfo)/const.power_rank_xs res_user_info.level = int(rankinfo) % const.power_rank_xs res_user_info.rank = rank_num character_obj = tb_character_info.getObj(pid) character_info = character_obj.hmget(['nickname', 'heads', 'rank_stage_progress']) res_user_info.nickname = character_info['nickname'] res_user_info.stage_id = character_info['rank_stage_progress'] heads = Heads_DB() heads.ParseFromString(character_info['heads']) res_user_info.user_icon = heads.now_head rank_num += 1 if first_no == 1: rank_no = rank_helper.get_rank_by_key(rank_name, player.base_info.id) if rank_no: [(_id, rankinfo)] = rank_helper.get_rank(rank_name, rank_no, rank_no) res_my_rank_info = response.my_rank_info res_my_rank_info.rank = rank_no res_my_rank_info.star_num = int(rankinfo/const.power_rank_xs) res_my_rank_info.level = int(rankinfo % const.power_rank_xs) res_my_rank_info.stage_id = player.stage_component.rank_stage_progress last_rank_no = rank_helper.get_rank_by_key( last_rank_name, player.base_info.id) if last_rank_no: res_my_rank_info.last_rank = last_rank_no # 前100名有多少人 ranks = rank_helper.get_rank(rank_name, 1, 99999) response.all_num = len(ranks) response.res.result = True
def deal_response(player, response): rank_no = rank_helper.get_rank_by_key('LimitHeroRank', player.base_info.id) response.rank = rank_no rank_info = rank_helper.get_rank('LimitHeroRank', 1, 10) rank = 1 for (p_id, integral) in rank_info: nickname = tb_character_info.getObj(p_id).\ hget('nickname') limit_rank = response.limit_rank.add() limit_rank.rank = rank limit_rank.integral = int(integral) limit_rank.nickname = nickname rank += 1
def deal_player_infos(player, response): player_ids = player.pvp.rob_treasure rank_name, last_rank_name = rank_helper.get_power_rank_name() for player_id, ap in player_ids: if player_id >= 10000: player_data = tb_character_info.getObj(player_id) isexist = player_data.exists() if not isexist: logger.error('deal_player_infos, player id error') continue player_info = player_data.hmget( ['id', 'nickname', 'heads', 'vip_level', 'guild_id']) player_pb = response.player_info.add() player_pb.color = player.rob_treasure.get_target_color_info( player_id).id player_pb.id = player_info.get('id') player_pb.nickname = player_info.get('nickname', 'nickname') player_pb.vip_level = player_info.get('vip_level') if player_info.get('guild_id') and type( player_info.get('guild_id')) is types.StringType: player_pb.guild_id = player_info.get('guild_id') player_heads = Heads_DB() player_heads.ParseFromString(player_info['heads']) player_pb.now_head = player_heads.now_head rank_no = rank_helper.get_rank_by_key(rank_name, player_id) if not rank_no: logger.error('deal_player_infos, rank_no is None') continue [(_id, rankinfo)] = rank_helper.get_rank(rank_name, rank_no, rank_no) player_pb.power = int(rankinfo / const.power_rank_xs) player_pb.level = int(rankinfo % const.power_rank_xs) else: robot_obj = tb_character_info.getObj('robot') data = robot_obj.hget(player_id) player_pb = response.player_info.add() player_pb.color = player.rob_treasure.get_target_color_info( player_id).id player_pb.id = player_id player_pb.nickname = data.get('nickname') player_pb.vip_level = 0 player_pb.now_head = data.get('head_no', 0) player_pb.guild_id = '' player_pb.power = int(data.get('attackPoint')) player_pb.level = data.get('level')
def deal_player_infos(player, response): player_ids = player.pvp.rob_treasure rank_name, last_rank_name = rank_helper.get_power_rank_name() for player_id, ap in player_ids: if player_id >= 10000: player_data = tb_character_info.getObj(player_id) isexist = player_data.exists() if not isexist: logger.error('deal_player_infos, player id error') continue player_info = player_data.hmget(['id', 'nickname', 'heads', 'vip_level', 'guild_id']) player_pb = response.player_info.add() player_pb.color = player.rob_treasure.get_target_color_info(player_id).id player_pb.id = player_info.get('id') player_pb.nickname = player_info.get('nickname', 'nickname') player_pb.vip_level = player_info.get('vip_level') if player_info.get('guild_id') and type(player_info.get('guild_id')) is types.StringType: player_pb.guild_id = player_info.get('guild_id') player_heads = Heads_DB() player_heads.ParseFromString(player_info['heads']) player_pb.now_head = player_heads.now_head rank_no = rank_helper.get_rank_by_key(rank_name, player_id) if not rank_no: logger.error('deal_player_infos, rank_no is None') continue [(_id, rankinfo)] = rank_helper.get_rank(rank_name, rank_no, rank_no) player_pb.power = int(rankinfo/const.power_rank_xs) player_pb.level = int(rankinfo % const.power_rank_xs) else: robot_obj = tb_character_info.getObj('robot') data = robot_obj.hget(player_id) player_pb = response.player_info.add() player_pb.color = player.rob_treasure.get_target_color_info(player_id).id player_pb.id = player_id player_pb.nickname = data.get('nickname') player_pb.vip_level = 0 player_pb.now_head = data.get('head_no', 0) player_pb.guild_id = '' player_pb.power = int(data.get('attackPoint')) player_pb.level = data.get('level')
def enter_scene_remote(dynamic_id, character_id, pay_arg): """进入场景""" is_new_character = 0 player = PlayersManager().get_player_by_id(character_id) if not player: logger.debug('player login:%s', character_id) player = PlayerCharacter(character_id, dynamic_id=dynamic_id) if player.is_new_character() and not OPEN_REGISTER: PlayersManager().drop_player_by_id(character_id) logger.debug('player login, 4005 open register:%s', OPEN_REGISTER) return {'player_data': 4005} is_new_character = init_player(player) PlayersManager().add_player(player) else: if player.is_new_character() and not OPEN_REGISTER: PlayersManager().drop_player_by_id(character_id) logger.debug('player login, 4005 open register:%s', OPEN_REGISTER) return {'player_data': 4005} logger.debug('player exsit! player.dynamic_id %s new dynamic_id %s' % (player.dynamic_id, dynamic_id)) if player.dynamic_id != dynamic_id: logger.error('dynamic id is not same:%s,%s:%s', character_id, dynamic_id, player.dynamic_id) player.dynamic_id = dynamic_id player.pay.set_pay_arg(pay_arg) # 设置支付参数 player.base_info.plat_id = pay_arg.get("plat_id") # ios 0 android 1 logger.debug("plat_id %s" % pay_arg.get("plat_id")) remote_gate.pull_message_remote(character_id) remote_gate['push'].online_offline_remote(player.base_info.id, 1) responsedata = GameLoginResponse() responsedata.res.result = True responsedata.id = player.base_info.id responsedata.nickname = player.base_info.base_name print server_open_time, '======================' responsedata.server_open_time = server_open_time responsedata.level = player.base_info.level responsedata.exp = player.base_info.exp responsedata.gag = player.base_info.gag responsedata.closure = player.base_info.closure for k, i in enumerate(player.finance._finances): print(k, i) responsedata.finances.append(int(i)) responsedata.fine_hero = player.last_pick_time.fine_hero responsedata.excellent_hero = player.last_pick_time.excellent_hero responsedata.fine_equipment = player.last_pick_time.fine_equipment responsedata.excellent_equipment = player.last_pick_time.excellent_equipment responsedata.fine_hero_times = player.shop.single_coin_draw_times responsedata.excellent_hero_times = player.shop.single_gold_draw_times responsedata.pvp_times = player.pvp.pvp_times responsedata.pvp_refresh_count = player.pvp.pvp_refresh_count responsedata.pvp_overcome_index = player.pvp.pvp_overcome_current responsedata.pvp_overcome_stars = player.pvp.pvp_overcome_stars responsedata.pvp_overcome_refresh_count = player.pvp.pvp_overcome_refresh_count combat_power = player.line_up_component.combat_power responsedata.combat_power = combat_power hight_power = player.line_up_component.hight_power if hight_power and hight_power >= combat_power: responsedata.hight_power = hight_power else: responsedata.hight_power = combat_power player.line_up_component.hight_power = combat_power player.line_up_component.save_data() responsedata.hight_power = player.line_up_component.hight_power responsedata.newbee_guide_id = player.base_info.current_newbee_guide if player.guild.g_id != 0: responsedata.guild_id = player.guild.g_id responsedata.vip_level = player.base_info.vip_level # 体力 responsedata.get_stamina_times = player.stamina.get_stamina_times responsedata.buy_stamina_times = player.stamina.buy_stamina_times responsedata.last_gain_stamina_time = player.stamina.last_gain_stamina_time responsedata.server_time = int(time.time()) responsedata.register_time = player.base_info.register_time # responsedata.soul_shop_refresh_times = player.soul_shop.refresh_times buy_times_pb = responsedata.buy_times for item in player.stamina._stamina.stamina: item_pb = buy_times_pb.add() item_pb.resource_type = item.resource_type item_pb.buy_stamina_times = item.buy_stamina_times item_pb.last_gain_stamina_time = item.last_gain_stamina_time logger.debug( "stami %s buy_stamina_times %s last_gain_stamina_time %s" % (item.resource_type, item.buy_stamina_times, item.last_gain_stamina_time)) logger.debug("stamina %s" % buy_times_pb) if player.base_info.heads.head: for head in player.base_info.heads.head: responsedata.head.append(head) responsedata.now_head = player.base_info.heads.now_head for _id in player.base_info.first_recharge_ids: responsedata.first_recharge_ids.append(_id) responsedata.recharge = player.base_info.recharge # 累计充值 responsedata.tomorrow_gift = player.base_info.tomorrow_gift responsedata.battle_speed = player.base_info.battle_speed responsedata.story_id = player.base_info.story_id for k, i in enumerate(player.base_info._button_one_time): responsedata.button_one_time.append(int(i)) logger.debug("button_one_time %s" % player.base_info._button_one_time) # 战力排行 if rank_helper.flag_doublu_day(): rank_name = 'PowerRank2' else: rank_name = 'PowerRank1' rank_no = rank_helper.get_rank_by_key(rank_name, player.base_info.id) responsedata.fight_power_rank = rank_no responsedata.is_open_next_day_activity = player.base_info.is_open_next_day_activity responsedata.first_recharge_activity = player.base_info.first_recharge_activity responsedata.one_dollar_flowid = str(player.base_info.one_dollar_flowid) responsedata.q360_recharge_url = SDK360_RECHARGE_URL logger.debug("character info:----------------------id: %s" % player.base_info.id) logger.debug("stage_id: %s" % player.fight_cache_component.stage_id) logger.debug("vip_level:%d", player.base_info.vip_level) logger.debug("recharge:%d", player.base_info.recharge) logger.debug("register_time:%d", player.base_info.register_time) logger.debug("buy_stamina_times:%d", player.stamina.buy_stamina_times) logger.debug("first_recharge_activity:%d", player.base_info.first_recharge_activity) logger.debug("newbee_guide_id:%d", player.base_info.current_newbee_guide) # logger.debug("coin:%d", player.finance.coin) # logger.debug("gold:%d", player.finance.gold) # logger.debug("hero_soul:%d", player.finance.hero_soul) # logger.debug("soul_shop_refresh_times:%d", player.soul_shop.refresh_times) # mock guild # player.guild.g_id = 1989 # 更新7日奖励的状态 # player.start_target.update_29() if const.DEBUG: for slot_no, slot in player.line_up_component.line_up_slots.items(): hero = slot.hero_slot.hero_obj if not hero: continue combat_power_hero_lineup(player, hero, slot_no) # awake_hero = player.fight_cache_component.change_hero(hero, hero.hero_info["awakeHeroID"]) # combat_power_hero_lineup(player, awake_hero, slot_no, "awake") logger.debug('login:<%s>%s:%s %s:%s', player, character_id, responsedata.level, dynamic_id, player.dynamic_id) return { 'player_data': responsedata.SerializeToString(), 'is_new_character': is_new_character }
def enter_scene_remote(dynamic_id, character_id, pay_arg): """进入场景""" is_new_character = 0 player = PlayersManager().get_player_by_id(character_id) if not player: logger.debug('player login:%s', character_id) player = PlayerCharacter(character_id, dynamic_id=dynamic_id) is_new_character = init_player(player) PlayersManager().add_player(player) else: logger.debug('player exsit!========player.dynamic_id %s new dynamic_id %s' % (player.dynamic_id, dynamic_id)) if player.dynamic_id != dynamic_id: logger.error('dynamic id is not same:%s,%s:%s', character_id, dynamic_id, player.dynamic_id) player.dynamic_id = dynamic_id player.pay.set_pay_arg(pay_arg) # 设置支付参数 player.base_info.plat_id = pay_arg.get("plat_id") # ios 0 android 1 logger.debug("plat_id %s" % pay_arg.get("plat_id")) remote_gate.pull_message_remote(character_id) remote_gate['push'].online_offline_remote(player.base_info.id, 1) responsedata = GameLoginResponse() responsedata.res.result = True responsedata.id = player.base_info.id responsedata.nickname = player.base_info.base_name responsedata.level = player.base_info.level responsedata.exp = player.base_info.exp responsedata.gag = player.base_info.gag responsedata.closure = player.base_info.closure for k, i in enumerate(player.finance._finances): print(i) responsedata.finances.append(int(i)) responsedata.fine_hero = player.last_pick_time.fine_hero responsedata.excellent_hero = player.last_pick_time.excellent_hero responsedata.fine_equipment = player.last_pick_time.fine_equipment responsedata.excellent_equipment = player.last_pick_time.excellent_equipment responsedata.fine_hero_times = player.shop.single_coin_draw_times responsedata.excellent_hero_times = player.shop.single_gold_draw_times responsedata.pvp_times = player.pvp.pvp_times responsedata.pvp_refresh_count = player.pvp.pvp_refresh_count responsedata.pvp_overcome_index = player.pvp.pvp_overcome_current responsedata.pvp_overcome_refresh_count = player.pvp.pvp_overcome_refresh_count combat_power = player.line_up_component.combat_power responsedata.combat_power = combat_power hight_power = player.line_up_component.hight_power if hight_power and hight_power >= combat_power: responsedata.hight_power = hight_power else: responsedata.hight_power = combat_power player.line_up_component.hight_power = combat_power player.line_up_component.save_data() responsedata.hight_power = player.line_up_component.hight_power responsedata.newbee_guide_id = player.base_info.newbee_guide_id if player.guild.g_id != 0: responsedata.guild_id = player.guild.g_id responsedata.vip_level = player.base_info.vip_level # 体力 responsedata.get_stamina_times = player.stamina.get_stamina_times responsedata.buy_stamina_times = player.stamina.buy_stamina_times responsedata.last_gain_stamina_time = player.stamina.last_gain_stamina_time responsedata.server_time = int(time.time()) responsedata.register_time = player.base_info.register_time # responsedata.soul_shop_refresh_times = player.soul_shop.refresh_times buy_times_pb = responsedata.buy_times for item in player.stamina._stamina.stamina: item_pb = buy_times_pb.add() item_pb.resource_type = item.resource_type item_pb.buy_stamina_times = item.buy_stamina_times item_pb.last_gain_stamina_time = item.last_gain_stamina_time logger.debug("stamina %s buy_stamina_times %s last_gain_stamina_time %s" % (item.resource_type, item.buy_stamina_times, item.last_gain_stamina_time)) logger.debug("stamina %s" % buy_times_pb) if player.base_info.heads.head: for head in player.base_info.heads.head: responsedata.head.append(head) responsedata.now_head = player.base_info.heads.now_head for _id in player.base_info.first_recharge_ids: responsedata.first_recharge_ids.append(_id) responsedata.recharge = player.base_info.recharge # 累计充值 responsedata.tomorrow_gift = player.base_info.tomorrow_gift responsedata.battle_speed = player.base_info.battle_speed responsedata.story_id = player.base_info.story_id # 战力排行 if rank_helper.flag_doublu_day(): rank_name = 'PowerRank2' else: rank_name = 'PowerRank1' rank_no = rank_helper.get_rank_by_key(rank_name, player.base_info.id) responsedata.fight_power_rank = rank_no responsedata.is_open_next_day_activity = player.base_info.is_open_next_day_activity responsedata.first_recharge_activity = player.base_info.first_recharge_activity logger.debug("character info:----------------------id: %s" % player.base_info.id) logger.debug("stage_id: %s" % player.fight_cache_component.stage_id) logger.debug("vip_level:%d", player.base_info.vip_level) logger.debug("recharge:%d", player.base_info.recharge) logger.debug("register_time:%d", player.base_info.register_time) logger.debug("buy_stamina_times:%d", player.stamina.buy_stamina_times) logger.debug("first_recharge_activity:%d", player.base_info.first_recharge_activity) # logger.debug("coin:%d", player.finance.coin) # logger.debug("gold:%d", player.finance.gold) # logger.debug("hero_soul:%d", player.finance.hero_soul) # logger.debug("soul_shop_refresh_times:%d", player.soul_shop.refresh_times) if const.DEBUG: for slot_no, slot in player.line_up_component.line_up_slots.items(): hero = slot.hero_slot.hero_obj if not hero: continue combat_power_hero_lineup(player, hero, slot_no) awake_hero = player.fight_cache_component.change_hero(hero, hero.hero_info["awakeHeroID"]) combat_power_hero_lineup(player, awake_hero, slot_no, "awake") logger.debug('login:<%s>%s:%s %s:%s', player, character_id, responsedata.level, dynamic_id, player.dynamic_id) return {'player_data': responsedata.SerializeToString(), 'is_new_character': is_new_character}