回合制战斗的页游,需要将战斗过程在服务端全部计算完成后再下发给客户端,并且还需要将战斗过程保存起来,让第三方直接查看。 将战斗的过程以动作为单位分解成多种消息,之后将多种战斗消息封装在一个消息打包器中下发给客户端。客户端从打包消息中按字节流的方式还原 出战斗消息,再解析消息进行表现。保存战斗过程只需要保存被打包完的字节流消息即可。 MsgPacker
#pragma pack(push, 1)
typedef struct
{
MSGHEAD_DEFINE
USHORT usAction;
DWORD dwData;
DWORD dwAmount; //后面有几个消息
UCHAR ucMsg[0]; //各种战斗消息
}MSG_Info;
#pragma pack(pop)
```**MsgBattle**```
enum MSGBATTLE_ACTION
{
MSGBATTLE_None, = 0, //无效
MSGBATTLE_BattleStart = 1, //战斗开始
MSGBATTLE_BattleEnd = 2,