五、MMO游戏的Proto3协议

MsgIDClientServer描述
1-SyncPid同步玩家本次登录的ID(用来标识玩家)
2Talk-世界聊天
3Position-移动
200-BroadCast广播消息(Tp 1 世界聊天 2 坐标(出生点同步) 3 动作 4 移动之后坐标信息更新)
201-SyncPid广播消息 掉线/aoi消失在视野
202-SyncPlayers同步周围的人位置信息(包括自己)

MsgID:1

SyncPid

  • 同步玩家本次登录的ID(用来标识玩家), 玩家登陆之后,由Server端主动生成玩家ID发送给客户端

  • 发起者: Server

  • Pid: 玩家ID

  1. message SyncPid{
  2. int32 Pid=1;
  3. }

MsgID:2

Talk:

  • 同步玩家本次登录的ID(用来标识玩家), 玩家登陆之后,由Server端主动生成玩家ID发送给客户端

  • 发起者: Client

  • Content: 聊天信息

  1. message Talk{
  2. string Content=1;
  3. }

MsgID:3

MovePackege:

  • 移动的坐标数据

  • 发起者: Client

  • P: Position类型,地图的左边点

  1. message Position{
  2. float X=1;
  3. float Y=2;
  4. float Z=3;
  5. float V=4;
  6. }

MsgID:200

BroadCast:

  • 广播消息

  • 发起者: Server

  • Tp: 1 世界聊天, 2 坐标, 3 动作, 4 移动之后坐标信息更新

  • Pid: 玩家ID

  1. message BroadCast{
  2. int32 Pid=1;
  3. int32 Tp=2;
  4. oneof Data {
  5. string Content=3;
  6. Position P=4;
  7. int32 ActionData=5;
  8. }
  9. }

MsgID:201

SyncPid

  • 广播消息 掉线/aoi消失在视野

  • 发起者: Server

  • Pid: 玩家ID

  1. message SyncPid{
  2. int32 Pid=1;
  3. }

MsgID:202

  • 同步周围的人位置信息(包括自己)

  • 发起者: Server

  • ps: Player 集合,需要同步的玩家

  1. message SyncPlayers{
  2. repeated Player ps=1;
  3. }
  4. message Player{
  5. int32 Pid=1;
  6. Position P=2;
  7. }