syntax = "proto3"; package Pb; option go_package = "pb/"; import "enums.proto"; // ModId.ModuleItem: 6000; // 物品模块消息定义 // 如果定义的消息内没有字段或者消息被注释掉了,说明该请求不需要参数,发送消息时仅发送包头即可,包体可为空, 返回的消息亦是如此。 message Item { uint32 ItemId = 1; //物品ID,多个道具物品在背包中是堆叠的,可以用物品ID做为键 uint32 ItemNum = 2; //物品数量 int64 Expired = 3; //到期时间 } // MsgId.ModItemList: 6001 // 物品列表返回, 玩家进入游戏时返回的所有物品列表 // 包括了所有的道具,包括装备、宝物等的各种碎片,显示于不同列表的物品需要按类型做一下分类, // 但装备、宝物等会有多个相同物品的,会单独返回列表 message ItemListAck { repeated Item ItemList = 1; } // 关于Change的消息,有些数据会触发删除操作的。 // 才会有一个专门的Change消息,即ChangeType=2时,前端要从列表中删除数据项。 // 对于一些没有删除操作的数据,List和Change虽然是两个不同的消息ID,但返回的消息基本上是同一个ListAck。 // List和Change两个不同消息ID的区别在于,List用于登录或者重连时一次性同步所有数据,列表是完整的,即清空源数据直接使用源返回的数据。 // 而Change消息ID用于发生变更时仅返回发了改变的数据,通过Key查找字典中的数据变做修改即可。 // 其他类似带Change的消息基本都是这样的操作。 message ItemChange { ChangeType ChangeType = 1; Item Item = 2; //ChangeType=ChangeType.Delete时, Item中只有Uid有值,用于索引删除 } // MsgId.ModItemChange: 6002 // 物品变更列表返回 message ItemChangeListAck { repeated ItemChange ChangeList = 1; } // MsgId.ModItemUse: 6003 // 物品使用请求, 若有弹窗提示需要,可与服务端协商返回一个 message ItemUseReq { uint32 ItemId = 1; //物品ID uint32 ItemNum = 2; //物品数量 } // MsgId.ModItemUse: 6003 // 物品使用返回, 消息暂未使用,通常物品发生改变由6002物品变更消息返回,用于触发对前端物品数据的操作。 // 但如果有弹窗提示的需要,可与服务端协商另外返回一个ItemUseAck用于触发提示(字段待商定)。 // 再有其他类似情况(如物品出售)不再一一注释,匀可与服务端协商。 //message ItemUseAck { //} // MsgId.ModItemSale: 6004 // 物品出售请求 message ItemSaleReq { repeated Item ItemList = 1; } // MsgId.ModItemSale: 6004 // 物品出售返回 //message ItemSaleAck { //} message Equip { uint64 Uid = 1; //玩家装备在列表中的唯一ID,列表中会有多个相同装备, 故不能用Id做为键 uint32 Id = 2; //配置表ID uint32 Level = 3; //等级经验 uint32 RefineExp = 4; //强化等级 uint32 RefineLevel = 5; //精炼等级 repeated uint64 Holes1 = 6; //普通孔镶嵌 repeated uint64 Holes2 = 7; //特殊孔镶嵌 uint64 HeroUid = 8; //装备的英雄 } // MsgId.ModEquipList: 6011 // 装备列表返回 message EquipListAck { repeated Equip EquipList = 1; } message EquipChange { ChangeType ChangeType = 1; Equip Equip = 2; //ChangeType=ChangeType.Delete时, Equip中只有Uid有值,用于索引删除 } // MsgId.ModEquipChange: 6012 // 装备变更列表返回 message EquipChangeListAck { repeated EquipChange ChangeList = 1; } // MsgId.ModEquipUpgrade: 6013 // 装备升级请求 message EquipUpgradeReq { uint64 EquipUid = 1; } // MsgId.ModEquipRefine: 6014 // 装备精炼请求 message EquipRefineReq { uint64 EquipUid = 1; uint32 Type = 2; //类型1:按等级精炼,2:按物品精炼 uint32 Value = 3; //Type == 1 精炼等级(填1), Type == 2 物品ID } message Treasure { uint64 Uid = 1; //玩家宝物在列表中的唯一ID,列表中会有多个相同宝物, 故不能用Id做为键 uint32 Id = 2; //配置表ID uint32 Exp = 3; //等级经验 uint32 Level = 4; //强化等级 uint32 RefineLevel = 5; //精炼等级 repeated uint64 Holes1 = 6; //普通孔镶嵌 repeated uint64 Holes2 = 7; //特殊孔镶嵌 uint64 HeroUid = 8; //装备的英雄 } // MsgId.ModItemTreasureList = 6021; // 宝物列表返回 message TreasureListAck { repeated Treasure TreasureList = 1; } message TreasureChange { ChangeType ChangeType = 1; Treasure Treasure = 2; //ChangeType=ChangeType.Delete时, Treasure中只有Uid有值,用于索引删除 } // MsgId.ModItemTreasureChange = 6022; // 宝物变更列表返回 message TreasureChangeListAck { repeated TreasureChange ChangeList = 1; } // MsgId.ModTreasureUpgrade: 6023 // 宝物精炼请求 message TreasureUpgradeReq { uint64 TreasureUid = 1; uint32 Type = 2; //类型1:按等级精炼,2:按物品精炼 uint32 Value = 3; //Type == 1 精炼等级(填1), Type == 2 物品ID } // MsgId.ModTreasureRefine: 6024 // 宝物升级请求 message TreasureRefineReq { uint64 TreasureUid = 1; }