def receive_mail_remote(mail_data, is_online, player): """接收邮件""" mail = Mail_PB() mail.ParseFromString(mail_data) logger.debug('receive_mail:%s', mail) if mail.mail_type == 1: if mail.sender_id in player.stamina.contributors: logger.error('this contributor has already given stamina:%s', mail.sender_id) return True else: player.stamina.contributors.append(mail.sender_id) if mail.config_id == game_configs.base_config.get('guildInviteMail'): mails = player.mail_component.get_mails() for mail_pb in mails: if mail.guild_id and mail_pb.guild_id == mail.guild_id: return True player.mail_component.add_mail(mail) player.mail_component.save_data() if is_online: response = mailbox_pb2.ReceiveMailResponse() response.mail.CopyFrom(mail) remote_gate.push_object_remote(1305, response.SerializePartialToString(), [player.dynamic_id]) return True
def send_mail(args): gain_info = [] if args.get('awards'): a = args.get('awards').split('|') for b in a: award = b.split(':') gain_info.append({award[0]: [award[2], award[2], award[1]]}) mail = Mail_PB() # mail.sender_id = player.base_info.id mail.sender_name = args['sender_name'] mail.sender_icon = int(args['sender_icon']) # mail.receive_name = '' mail.title = args['title'] mail.content = args['text'] mail.mail_type = 2 if gain_info: mail.prize = str(gain_info) mail.send_time = int(time.time()) # mail_data = mail.SerializePartialToString() if args['uids'] == '0': users = tb_character_info.smem('all') for uid in users: mail.receive_id = uid push_message('receive_mail_remote', uid, mail.SerializeToString()) else: for uid in args['uids'].split(';'): mail.receive_id = int(uid) mail_data = mail.SerializeToString() push_message('receive_mail_remote', int(uid), mail.SerializeToString()) return {'success': 1}
def init_data(self, c): pid = self.owner.base_info.id char_obj = tb_character_info.getObj(pid).getObj('mails') mails = char_obj.hgetall() for mid, mail_data in mails.items(): mail = Mail_PB() mail.ParseFromString(mail_data) self._mails[mail.mail_id] = mail
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)
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)
def init_mail(player): mail = Mail_PB() # 领取体力 mail.mail_id = '001' mail.character_id = 1 mail.sender_id = 2 mail.sender_name = 'player2' mail.title = 'mail1' mail.content = 'content1' mail.mail_type = 1 mail.is_readed = False mail.send_time = 100 player.mail_component.add_exist_mail(mail) mail.mail_id = '002' mail.character_id = 1 mail.sender_id = 2 mail.sender_name = 'player2' mail.title = 'mail2' mail.content = 'content2' mail.mail_type = 1 mail.is_readed = False mail.send_time = int(time.time()) player.mail_component.add_exist_mail(mail) # 领奖 mail.mail_id = '003' mail.character_id = 1 mail.sender_id = -1 mail.sender_name = 'system' mail.title = 'mail3' mail.content = 'content3' mail.mail_type = 2 mail.is_readed = False mail.send_time = int(time.time()) mail.prize = {1: [100, 100, 0]} player.mail_component.add_exist_mail(mail) mail.mail_id = '004' mail.character_id = 1 mail.sender_id = -1 mail.sender_name = 'system' mail.title = 'mail4' mail.content = 'content4' mail.mail_type = 2 mail.is_readed = False mail.send_time = int(time.time()) mail.prize = {1: [100, 100, 0]} player.mail_component.add_exist_mail(mail) # 公告 mail.mail_id = '005' mail.character_id = 1 mail.sender_id = -1 mail.sender_name = 'system' mail.title = 'mail5' mail.content = 'content5' mail.mail_type = 3 mail.is_readed = False mail.send_time = int(time.time()) player.mail_component.add_exist_mail(mail) mail.mail_id = '006' mail.character_id = 1 mail.sender_id = -1 mail.sender_name = 'system' mail.title = 'mail6' mail.content = 'content6' mail.mail_type = 3 mail.is_readed = True mail.read_time = int(time.time())-60*60*24*7 player.mail_component.add_exist_mail(mail) # 消息 mail.mail_id = '007' mail.character_id = 1 mail.sender_id = 2 mail.sender_name = 'player2' mail.title = 'mail7' mail.content = 'content7' mail.mail_type = 4 mail.is_readed = False mail.send_time = int(time.time()) player.mail_component.add_exist_mail(mail) mail.mail_id = '008' mail.character_id = 1 mail.sender_id = 2 mail.sender_name = 'player2' mail.title = 'mail8' mail.content = 'content8' mail.mail_type = 4 mail.is_readed = False mail.send_time = int(time.time()) player.mail_component.add_exist_mail(mail)
def deal_mail(conf_id=0, nickname='', receive_id=0, guild_name='', guild_p_num=0, guild_level=0, guild_id=0, pvp_rank=0, rune_num=0, rank=0, integral=0, boss_id=0): mail = Mail_PB() if conf_id: mail.config_id = conf_id if nickname: mail.nickname = nickname if boss_id: mail.boss_id = boss_id if guild_name: mail.guild_name = guild_name if guild_p_num: mail.guild_person_num = guild_p_num if guild_level: mail.guild_level = guild_level if guild_id: mail.guild_id = guild_id if pvp_rank: mail.pvp_rank = pvp_rank if rune_num: mail.rune_num = rune_num if rank: mail.rank = rank if integral: mail.integral = integral mail.send_time = int(time.time()) mail_data = mail.SerializePartialToString() return mail_data, receive_id
def init_mail(player): mail = Mail_PB() # 领取体力 mail.mail_id = '001' mail.character_id = 1 mail.sender_id = 2 mail.sender_name = 'player2' mail.title = 'mail1' mail.content = 'content1' mail.mail_type = 1 mail.is_readed = False mail.send_time = 100 player.mail_component.add_exist_mail(mail) mail.mail_id = '002' mail.character_id = 1 mail.sender_id = 2 mail.sender_name = 'player2' mail.title = 'mail2' mail.content = 'content2' mail.mail_type = 1 mail.is_readed = False mail.send_time = int(time.time()) player.mail_component.add_exist_mail(mail) # 领奖 mail.mail_id = '003' mail.character_id = 1 mail.sender_id = -1 mail.sender_name = 'system' mail.title = 'mail3' mail.content = 'content3' mail.mail_type = 2 mail.is_readed = False mail.send_time = int(time.time()) mail.prize = {1: [100, 100, 0]} player.mail_component.add_exist_mail(mail) mail.mail_id = '004' mail.character_id = 1 mail.sender_id = -1 mail.sender_name = 'system' mail.title = 'mail4' mail.content = 'content4' mail.mail_type = 2 mail.is_readed = False mail.send_time = int(time.time()) mail.prize = {1: [100, 100, 0]} player.mail_component.add_exist_mail(mail) # 公告 mail.mail_id = '005' mail.character_id = 1 mail.sender_id = -1 mail.sender_name = 'system' mail.title = 'mail5' mail.content = 'content5' mail.mail_type = 3 mail.is_readed = False mail.send_time = int(time.time()) player.mail_component.add_exist_mail(mail) mail.mail_id = '006' mail.character_id = 1 mail.sender_id = -1 mail.sender_name = 'system' mail.title = 'mail6' mail.content = 'content6' mail.mail_type = 3 mail.is_readed = True mail.read_time = int(time.time()) - 60 * 60 * 24 * 7 player.mail_component.add_exist_mail(mail) # 消息 mail.mail_id = '007' mail.character_id = 1 mail.sender_id = 2 mail.sender_name = 'player2' mail.title = 'mail7' mail.content = 'content7' mail.mail_type = 4 mail.is_readed = False mail.send_time = int(time.time()) player.mail_component.add_exist_mail(mail) mail.mail_id = '008' mail.character_id = 1 mail.sender_id = 2 mail.sender_name = 'player2' mail.title = 'mail8' mail.content = 'content8' mail.mail_type = 4 mail.is_readed = False mail.send_time = int(time.time()) player.mail_component.add_exist_mail(mail)
def deal_mail(conf_id=0, nickname='', receive_id=0, guild_name='', guild_p_num=0, guild_level=0, guild_id=0, pvp_rank=0, rune_num=0, rank=0, integral=0, boss_id=0, arg1='', prize=''): mail = Mail_PB() if arg1: mail.arg1 = arg1 if conf_id: mail.config_id = conf_id if nickname: mail.nickname = nickname if boss_id: mail.boss_id = boss_id if guild_name: mail.guild_name = guild_name if guild_p_num: mail.guild_person_num = guild_p_num if guild_level: mail.guild_level = guild_level if guild_id: mail.guild_id = guild_id if pvp_rank: mail.pvp_rank = pvp_rank if rune_num: mail.rune_num = rune_num if prize: mail.prize = prize if rank: mail.rank = rank if integral: mail.integral = integral mail.send_time = int(time.time()) mail_data = mail.SerializePartialToString() return mail_data, receive_id