/// <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); } }
/// <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); } }
/// <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); } }
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; //当次循环最大保存数量 } } } }