Files
mir_server/Gateway/common/db/mail_data.h
aixianling 5c9f1dae4a init
2025-01-09 17:45:40 +08:00

89 lines
1.9 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef _MAIL_DATA_H_
#define _MAIL_DATA_H_
#include "common.h"
enum MailAwardType
{
MailAwardType_Currency,
MailAwardType_Item,
};
enum MailReadStatusType
{
MailReadStatusType_NotRead,
MailReadStatusType_HaveRead,
};
enum MailAwardStatusType
{
MailAwardStatusType_NoAward = -1, //无附件
MailAwardStatusType_CanAward = 0, //可领取
MailAwardStatusType_HaveAward = 1, //已领取
};
#pragma pack (push, 4)
union MailSeries
{
int64_t llId;
struct
{
unsigned int time_; //31-0位表示物品产生的日期和时间值为短日期类型单位是秒
uint16_t series_; //47-32位表示在一秒内的序列每产生一个物品则序列值+1一秒后序列值归零
uint16_t sid_; //55-48位表示服务器ID
} t;
public:
//inline operator int64_t () const { return llId; }
//inline bool operator == (const ItemSeries& series) const { return llId == series.llId; }
//inline bool operator != (const ItemSeries& series) const { return llId != series.llId; }
};
struct MailAwardData
{
int type; //附件类型
int id; //附件类型如果是物品的话就用来存物品id是货币的话就没用
int count; //数量
MailAwardData() :type(0), id(0), count(0) {}
};
struct MailAwardList
{
int awardCount; //附件数量
MailAwardData awardList[10]; //附件列表
};
struct MailData
{
static const int HEAD_SIZE = 128;
static const int CONTEXT_SIZE = 1024;
int uid; //邮件唯一系列号 MailSeries
int readStatus; //读取状态
int awardStatus; //领奖状态
int sendtime; //发送的时间
char head[128]; //邮件标题
char context[1024]; //邮件正文
MailAwardList award_data; // 大部分物品都是装备,且属性很少,不需要做优化
MailData()
{
memset(this, 0, sizeof(MailData));
}
public:
//修改useritem 注意需要修改以下3个函数 writeToPack, writeDbPack, writeCrcPack
//组装发送给客户端的包
void writeData(DataPacket& pack) {
pack.writeBuf(this, sizeof(MailData));
}
void readData(DataPacketReader& pack) {
pack.readBuf(this, sizeof(MailData));
}
};
#pragma pack(pop)
#endif