一般游戏中有两种邮件,系统发给某个人的私人邮件、一个是发给全服玩家的公共邮件(比如活动邮件、补偿邮件)。
1、系统发给某个人的私人邮件,很简单,玩家在线就推给玩家并加入玩家邮件列表,如果玩家不在线,就发到玩家邮箱中。
2、系统是发给全服玩家的邮件,这种邮件需要单独处理,先在内存中保存,同时插入全服邮件箱中。
(1)如果玩家在线,则推给玩家,同时插入玩家邮件列表
(2)如果玩家不在线,则不用处理。
3、玩家登录上线邮件处理
玩家上线加载自己的邮件列表信息,同时对比服务器内存中的全服邮件是否在玩家列表里,没有,则将全服邮件发给玩家,并通知。如果全服邮件都在玩家身上则不用处理。
4、玩家领取奖励
玩家邮件信息中保存领取状态即可。
5、邮件删除
玩家删除只能删除自己的私人邮件,不能删除全服邮件。只有全服邮件过期之后,玩家才可以删除全服邮件。这里还要在邮件信息里保存邮件类型。另一种方式是设置全服邮件不可见,并不是真正删除,待全服邮件过期时,删除玩家身上的全服邮件。
6、还有一种邮件是某个人发给另一个人的邮件,直接按照私人邮件处理即可。
7、如果是邮件特别多的游戏,建议是单独拿出来保存,就不要保存到玩家身上了,比如保存到mongodb中更合理一些。