ecs/proto/idl/mod_item.proto

150 lines
5.0 KiB
Protocol Buffer
Raw Normal View History

2025-06-04 18:17:39 +08:00
syntax = "proto3";
package Pb;
option go_package = "pb/";
import "enums.proto";
// ModId.ModuleItem: 6000;
// 物品模块消息定义
2025-06-04 18:17:39 +08:00
// 如果定义的消息内没有字段或者消息被注释掉了,说明该请求不需要参数,发送消息时仅发送包头即可,包体可为空, 返回的消息亦是如此。
message Item {
uint32 ItemId = 1; //物品ID多个道具物品在背包中是堆叠的可以用物品ID做为键
2025-06-05 17:48:23 +08:00
uint32 ItemNum = 2; //物品数量
int64 Expired = 3; //到期时间
2025-06-04 18:17:39 +08:00
}
// MsgId.ModItemList: 6001
// 物品列表返回, 玩家进入游戏时返回的所有物品列表
// 包括了所有的道具,包括装备、宝物等的各种碎片,显示于不同列表的物品需要按类型做一下分类,
// 但装备、宝物等会有多个相同物品的,会单独返回列表
2025-06-04 18:17:39 +08:00
message ItemListAck {
2025-06-05 17:48:23 +08:00
repeated Item ItemList = 1;
2025-06-04 18:17:39 +08:00
}
// 关于Change的消息有些数据会触发删除操作的。
// 才会有一个专门的Change消息即ChangeType=2时前端要从列表中删除数据项。
// 对于一些没有删除操作的数据List和Change虽然是两个不同的消息ID但返回的消息基本上是同一个ListAck。
// List和Change两个不同消息ID的区别在于List用于登录或者重连时一次性同步所有数据列表是完整的即清空源数据直接使用源返回的数据。
// 而Change消息ID用于发生变更时仅返回发了改变的数据通过Key查找字典中的数据变做修改即可。
// 其他类似带Change的消息基本都是这样的操作。
2025-06-04 18:17:39 +08:00
message ItemChange {
ChangeType ChangeType = 1;
2025-06-14 18:49:31 +08:00
Item Item = 2; //ChangeType=ChangeType.Delete时, Item中只有Uid有值用于索引删除
2025-06-04 18:17:39 +08:00
}
// MsgId.ModItemChange: 6002
2025-06-04 18:17:39 +08:00
// 物品变更列表返回
message ItemChangeListAck {
2025-06-05 17:48:23 +08:00
repeated ItemChange ChangeList = 1;
2025-06-04 18:17:39 +08:00
}
// MsgId.ModItemUse: 6003
// 物品使用请求, 若有弹窗提示需要,可与服务端协商返回一个
2025-06-04 18:17:39 +08:00
message ItemUseReq {
2025-06-05 17:48:23 +08:00
uint32 ItemId = 1; //物品ID
uint32 ItemNum = 2; //物品数量
2025-06-04 18:17:39 +08:00
}
// MsgId.ModItemUse: 6003
// 物品使用返回, 消息暂未使用通常物品发生改变由6002物品变更消息返回,用于触发对前端物品数据的操作。
// 但如果有弹窗提示的需要可与服务端协商另外返回一个ItemUseAck用于触发提示字段待商定
// 再有其他类似情况(如物品出售)不再一一注释,匀可与服务端协商。
//message ItemUseAck {
//}
// MsgId.ModItemSale: 6004
// 物品出售请求
message ItemSaleReq {
repeated Item ItemList = 1;
}
// MsgId.ModItemSale: 6004
// 物品出售返回
//message ItemSaleAck {
//}
2025-06-04 18:17:39 +08:00
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; //装备的英雄
2025-06-04 18:17:39 +08:00
}
// MsgId.ModEquipList: 6011
2025-06-04 18:17:39 +08:00
// 装备列表返回
message EquipListAck {
2025-06-05 17:48:23 +08:00
repeated Equip EquipList = 1;
2025-06-04 18:17:39 +08:00
}
message EquipChange {
2025-06-05 17:48:23 +08:00
ChangeType ChangeType = 1;
2025-06-14 18:49:31 +08:00
Equip Equip = 2; //ChangeType=ChangeType.Delete时, Equip中只有Uid有值用于索引删除
2025-06-04 18:17:39 +08:00
}
// MsgId.ModEquipChange: 6012
2025-06-04 18:17:39 +08:00
// 装备变更列表返回
message EquipChangeListAck {
2025-06-05 17:48:23 +08:00
repeated EquipChange ChangeList = 1;
2025-06-04 18:17:39 +08:00
}
// MsgId.ModEquipUpgrade: 6013
2025-06-04 18:17:39 +08:00
// 装备升级请求
message EquipUpgradeReq {
2025-06-05 17:48:23 +08:00
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;
2025-06-14 18:49:31 +08:00
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;
2025-06-04 18:17:39 +08:00
}