Beispiel #1
0
        /// <summary>
        /// 邮件操作
        /// </summary>
        private void OnMailCommand(PacketBase packet)
        {
            ss2db.MailCommand msg = packet as ss2db.MailCommand;

            MailboxCache mail_box = MailCacheManager.Instance.GetMailbox(msg.char_idx);

            if (mail_box != null)
            {
                mail_box.HandleCommandMail(msg.mail_idx, msg.command_type);
                //mail_box.HandleCommandMail(31, msg.command_type);
                //mail_box.HandleCommandMail(32, msg.command_type);
            }
        }
Beispiel #2
0
        /// <summary>
        /// 写邮件
        /// </summary>
        private void OnMailWrite(PacketBase packet)
        {
            ss2db.MailWrite msg = packet as ss2db.MailWrite;

            //判断接收者是否正确

            MailboxCache mail_box = MailCacheManager.Instance.GetMailbox(msg.char_idx);

            if (mail_box != null)
            {
                mail_box.HandleWriteMail(msg.mail_info);
            }
        }
Beispiel #3
0
        /// <summary>
        /// 读取玩家邮箱
        /// </summary>
        /// <param name="char_idx"></param>
        public void LoadMailbox(long char_idx)
        {
            if (m_mailboxs.ContainsKey(char_idx))
            {
                return;
            }

            MailboxCache mail_box = CommonObjectPools.Spawn <MailboxCache>();

            if (mail_box.Setup(char_idx))
            {
                m_mailboxs.Add(char_idx, mail_box);
            }
            else
            {
                CommonObjectPools.Despawn(mail_box);
            }
        }
Beispiel #4
0
        public void Tick()
        {
            int          update_count = 0;
            MailboxCache mail_box     = null;

            foreach (var obj in m_mailboxs)
            {
                mail_box = obj.Value;
                if (mail_box.NeedSave())
                {
                    mail_box.Save();
                    if (++update_count > 60)
                    {
                        break;                     //当次循环最大保存数量
                    }
                }
            }
        }