Beispiel #1
0
    def send_award_mail_kill(self):
        mail_id = game_configs.base_config.get('kill_rewards_worldboss')

        player_id = self._last_shot_item['player_id']
        mail = Mail_PB()
        mail.config_id = mail_id
        mail.receive_id = player_id
        mail.send_time = int(time.time())
        mail_data = mail.SerializePartialToString()
        remote_gate = GlobalObject().root.childsmanager.childs.values()[0]
        remote_gate.push_message_to_transit_remote('receive_mail_remote',
                                                   player_id, mail_data)
Beispiel #2
0
    def send_award_mail_damage(self):
        award_mail = game_configs.base_config.get('hurt_rewards_worldboss_rank')
        for up, down, mail_id in award_mail.values():
            ranks = self._rank_instance.get(up, down)
            for player_id, v in ranks:
                mail = Mail_PB()
                mail.config_id = mail_id
                mail.receive_id = int(player_id)
                mail.send_time = int(time.time())
                mail_data = mail.SerializePartialToString()

                remote_gate = GlobalObject().root.childsmanager.childs.values()[0]
                remote_gate.push_message_to_transit_remote('receive_mail_remote',
                                                           int(player_id), mail_data)
Beispiel #3
0
    def send_rank_reward_mails(self):
        """
        排行奖励
        """
        logger.debug("hjqy send_award_top_ten===========")
        award_info = game_configs.base_config.get("hjqyDayReward")
        for up, down, mail_id in award_info.values():
            ranks = self._rank_instance.get(up, down)
            for k, v in enumerate(ranks):
                player_id, val = v
                logger.debug("send_award_top_ten: player_id %s, value %s, mail_id %s" % (player_id, v, mail_id))
                mail_data, _ = deal_mail(conf_id=mail_id, receive_id=int(player_id))
                remote_gate = GlobalObject().child('gate')
                remote_gate.push_message_to_transit_remote('receive_mail_remote',
                                                           int(player_id), mail_data)

        #clear rankinfo
        self._rank_instance.clear_rank()
Beispiel #4
0
    def send_rank_reward_mails(self):
        """
        排行奖励
        """
        logger.debug("hjqy send_award_top_ten===========")
        award_info = game_configs.base_config.get("hjqyDayReward")
        for up, down, mail_id in award_info.values():
            ranks = self._rank_instance.get(up, down)
            for k, v in enumerate(ranks):
                player_id, val = v
                logger.debug(
                    "send_award_top_ten: player_id %s, value %s, mail_id %s" %
                    (player_id, v, mail_id))
                mail_data, _ = deal_mail(conf_id=mail_id,
                                         receive_id=int(player_id))
                remote_gate = GlobalObject().child('gate')
                remote_gate.push_message_to_transit_remote(
                    'receive_mail_remote', int(player_id), mail_data)

        #clear rankinfo
        self._rank_instance.clear_rank()
Beispiel #5
0
def hjqy_battle_remote(player_info, boss_id, str_red_units, red_unpar_data, attack_type, seed1, seed2):
    """开始战斗
    """
    logger.debug("hjqy_battle_remote======")
    red_units = cPickle.loads(str_red_units)
    result = False
    boss = hjqy_manager.get_boss(boss_id)
    player_id = player_info.get("player_id")
    player_level = player_info.get("level")
    blue_units = boss.blue_units

    origin_hp = boss.hp
    result = hjqy_start(red_units,  blue_units, red_unpar_data, {}, attack_type, seed1, seed2, player_level)

    logger.debug("blue unit length %s" % len(blue_units))
    boss.blue_units = blue_units

    current_damage_hp = origin_hp - boss.hp
    logger.debug("origin_hp %s, current_hp %s, current_damage_hp %s" % (origin_hp, boss.hp, current_damage_hp))

    player_info["damage_hp"] = current_damage_hp
    hjqy_manager.add_rank_item(player_info) # 添加排行

    is_kill = 0
    if boss.get_state() == const.BOSS_DEAD: # 击杀boss
        is_kill = 1
        # send last kill reward mail
        hjqyKillBossReward = game_configs.base_config.get("hjqyKillBossRewardID")
        mail_data, _ = deal_mail(conf_id=hjqyKillBossReward, receive_id=int(player_id))
        remote_gate = GlobalObject().child('gate')
        remote_gate.push_message_to_transit_remote('receive_mail_remote',
                                                   int(player_id), mail_data)
        result = True
    #return dict(result=result, state=boss.get_state())
    logger.debug("hjqy_battle_remote over===================")
    boss.save_data()
    return result, boss.get_state(), current_damage_hp, is_kill