actor.proto 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044
  1. // message结构的属性名请使用 驼峰小写字母开始
  2. syntax = "proto3";
  3. option go_package = "/pb";
  4. package pb;
  5. import "base_type.proto";
  6. import "mail.proto";
  7. import "battle.proto";
  8. import "map.proto";
  9. import "exchange.proto";
  10. // 注册开发帐号
  11. message DevRegister {
  12. string accountName = 1; // 帐号名
  13. string password = 2; // 密码
  14. string ip = 3; // ip地址
  15. }
  16. // 用户信息
  17. message User {
  18. int32 sdkID = 1; // sdk配置id
  19. int32 PID = 2; // sdk包id
  20. string openID = 3; // 平台openid
  21. int64 uid = 4; // 用户id
  22. string ip = 5; // 请求ip
  23. }
  24. // 更新支付订单
  25. message UpdateOrder {
  26. string gameNodeID = 1; // 游戏节点id
  27. int64 orderID = 2; // 游戏内部订单id
  28. string sdkOrderID = 3; // 第三方sdk平台订单id
  29. int32 amount = 4; // 支付回调金额(单位分)
  30. bool checkAmount = 5; // 是否检查金额
  31. int32 origin = 6; // 订单来源
  32. }
  33. // 创建支付订单
  34. message CreateOrder {
  35. int32 PID = 1; // sdk包id
  36. int64 UID = 2; // 用户唯一id
  37. string gameNodeID = 3; // 游戏节点id
  38. int64 playerID = 4; // 玩家id
  39. int32 chargeID = 5; // 充值id
  40. int32 amount = 6; // 金额(分)
  41. int32 clientOS = 7; // 客户端os
  42. string ip = 8; // 客户端ip
  43. map<string, string> extra = 9; // 扩展参数
  44. }
  45. // 订单发货
  46. message OrderDeliver {
  47. int64 orderID = 1; // 游戏内部订单id
  48. string sdkOrderID = 2; // 第三方sdk平台订单id
  49. int32 pid = 3; // sdk包id
  50. int64 uid = 4; // 用户唯一id
  51. string gameNodeID = 5; // 游戏节点id
  52. int64 playerID = 6; // 玩家id
  53. int32 chargeID = 7; // 充值id
  54. int32 money = 8; // 金额(分)
  55. int64 paymentTime = 9; // 支付时间
  56. map<string, string> extra = 10; // 扩展参数
  57. }
  58. // DB队列报表
  59. message DBQueueReport {
  60. string tableName = 1; // db表名
  61. int64 remainCount = 2; // 级存剩余数量
  62. int64 submitCount = 3; // 提交db数量
  63. }
  64. message DBQueueReportList { repeated DBQueueReport list = 1; }
  65. // 发送邮件
  66. message SendMail {
  67. int64 fromPlayerID = 1; // 发送玩家ID
  68. string fromPlayerName = 2; // 发送玩家名
  69. int64 toPlayerID = 3; // 接收玩家ID
  70. int32 templateID = 4; // 邮件模板ID
  71. repeated string templateParams = 5; // 邮件模板参数
  72. repeated Asset Rewards = 6; // 附件列表
  73. }
  74. // 添加批量邮件
  75. message AddMailBulk {
  76. int32 sendType = 1; // 发送类型
  77. repeated int64 toPlayerIDList = 2; // 接收的玩家列表
  78. int32 templateID = 3; // 邮件模板ID
  79. repeated string templateParams = 4; // 邮件模板参数
  80. repeated Asset Rewards = 5; // 附件列表
  81. int64 startTime = 6; // 生效时间
  82. int64 expireTime = 7; // 过期时间
  83. }
  84. // 通用玩家信息
  85. message PlayerData {
  86. // 个人信息
  87. int64 playerID = 1; // 玩家ID
  88. string playerName = 2; // 玩家名
  89. int32 lordLevel = 3; // 领主等级
  90. int32 iconID = 4; // 头像ID
  91. int32 frameID = 5; // 头像框ID
  92. int32 bgID = 6; // 主页背景
  93. string desc = 7; // 个人简介
  94. int32 totalLoginDays = 8; // 累计登录天数
  95. bool isOnline = 10; // 是否在线
  96. int32 stateID = 11; // 所属州
  97. int32 x = 12; // 玩家主城x位置
  98. int32 y = 13; // 玩家主城y位置
  99. int32 prestige = 14; // 玩家声望值
  100. // 联盟信息
  101. int64 leagueID = 51; // 联盟ID
  102. string leagueName = 52; // 联盟名
  103. string leagueAbbName = 53; // 联盟简称
  104. int32 leagueJob = 54; // 联盟职位
  105. // 赛季信息
  106. int32 seasonID = 61; // 赛季ID
  107. // 内部信息
  108. string PID = 101; // sdk id
  109. int64 UID = 102; // 用户ID
  110. string agentPath = 103; // actor path
  111. string IP = 104; // ip
  112. string gameNodeID = 105; // 所属 GameNode
  113. string mapNodeID = 106; // 所属 MapNode
  114. }
  115. // 玩家添加资产
  116. message PlayerAddAssets {
  117. repeated Asset addAssets = 1; // 添加的资产
  118. int32 origin = 2; // 来源
  119. }
  120. message ArenaPlay {
  121. int64 playerID = 1; // 玩家id
  122. bool isWin = 2; // 是否胜利
  123. int32 score = 3; // 积分
  124. }
  125. // 更新最后登录的玩家信息
  126. message UpdateLastPlayer {
  127. int32 PID = 1; // sdk包id
  128. string openID = 2; // 平台openid
  129. int64 UID = 3; // 用户唯一id
  130. string gameNodeID = 4; // 游戏服id
  131. int64 playerID = 5; // 玩家id
  132. string playerName = 6; // 玩家昵称
  133. int32 playerLevel = 7; // 玩家等级
  134. int32 icon = 8; // 图标
  135. int64 power = 9; // 战力
  136. }
  137. message LastPlayerList {
  138. repeated LastPlayer list = 1;
  139. }
  140. // 最新更新玩家信息
  141. message LastPlayer {
  142. int64 playerID = 1;
  143. string playerName = 2;
  144. int32 playerIcon = 3;
  145. int32 playerLevel = 4;
  146. string gameNodeID = 5;
  147. int64 upTime = 6;
  148. int64 power = 7;
  149. }
  150. // 玩家添加资产
  151. message AddAssets {
  152. int64 playerID = 1; // 玩家ID
  153. repeated Asset assets = 2; // 添加的资产
  154. int32 origin = 3; // 来源
  155. }
  156. // 创建联盟
  157. message CreateLeague {
  158. int64 playerID = 1; // 创建联盟玩家ID
  159. int64 leagueID = 2; // 联盟唯一ID
  160. string leagueName = 3; // 联盟名称
  161. string leagueAbbName = 4; // 联盟简称
  162. int32 flagBg = 5; // 联盟背景ID L-联盟-旗帜表旗帜ID
  163. int32 flagIcon = 6; // 联盟图标ID L-联盟-旗帜表旗帜ID
  164. }
  165. // 联盟基础信息
  166. message LeagueBaseInfo {
  167. int64 leagueID = 1; // 联盟唯一ID
  168. string leagueName = 2; // 联盟名称
  169. string leagueAbbName = 3; // 联盟简称
  170. }
  171. // 联盟信息
  172. message LeagueInfo {
  173. int64 leagueID = 1; // 联盟唯一ID
  174. int64 leaderID = 2; // 盟主玩家ID
  175. string leagueName = 3; // 联盟名称
  176. string leagueAbbName = 4; // 联盟简称
  177. int32 level = 5; // 联盟当前等级
  178. repeated int64 members = 6; // 联盟成员ID列表
  179. }
  180. // 玩家联盟信息
  181. message PlayerLeagueInfo {
  182. int64 playerID = 1; // 玩家ID
  183. int64 leagueID = 2; // 联盟唯一ID
  184. string leagueName = 3; // 联盟名称
  185. string leagueAbbName = 4; // 联盟简称
  186. int32 leagueJob = 5; // 联盟职位
  187. }
  188. // 聊天群组玩家修改
  189. message ChatGroupPlayerChange {
  190. int64 chatID = 1; // 群组聊天室ID
  191. string name = 2; // 群组聊天室名称
  192. int64 OwnerPlayerID = 3; // 群组所属者ID
  193. repeated int64 playerIDList = 4; // 最新的玩家ID列表
  194. }
  195. // 聊天室关联玩家加入和退出
  196. message PlayerChatRoomUpdate {
  197. int32 chatType = 1; // 聊天室类型
  198. int64 chatID = 2; // 聊天室ID
  199. bool isExit = 3; // 是否退出
  200. }
  201. // 好友添加结果
  202. message AddFriendResult {
  203. int64 playerID = 1; // 玩家ID
  204. bool result = 2; // 添加结果
  205. int32 errCode = 3; // 提示码
  206. }
  207. // 网关推送数据包
  208. message GatePusher {
  209. Type type = 1; // 推送类型
  210. repeated int64 i64List = 2; // 根据type,可能是playerID
  211. string strValue = 3; // 根据type,对应的字符串值
  212. int32 i32Value = 4; // 根据type,对应的int32值
  213. int64 i64Value = 5; // 根据type,对应的int64值
  214. string route = 6; // 路由
  215. bytes data = 7; // 数据
  216. enum Type {
  217. Player = 0; // 根据玩家id过滤推送
  218. GameNode = 1; // 根据游戏节点过滤推送
  219. Map = 2; // 根据地图id过滤推送
  220. }
  221. }
  222. // 网关踢人数据包
  223. message GateKick {
  224. Type type = 1; // 踢人类型
  225. repeated int64 i64List = 2; // 根据type,有可能是playerID,也有可能是uid
  226. string strValue = 3; // 根据type,对应的字符串值
  227. string route = 4; // 路由
  228. bytes reason = 5; // 踢人原因
  229. bool closed = 6; // 是否断开连接
  230. repeated string filterNodeIDS = 7; // 过滤的节点ID列表
  231. enum Type {
  232. Player = 0; // 根据玩家id过滤踢人
  233. GameNode = 1; // 根据游戏节点过滤踢人
  234. UID = 2; // 根据uid过滤踢人
  235. MapNode = 3; // 根据地图节点过滤踢人
  236. }
  237. }
  238. // 行军消耗
  239. message MarchCost {
  240. // 部队ID
  241. int32 teamID = 1;
  242. // 行军对象ID
  243. int64 marchObjectID = 2;
  244. // 行军类型
  245. int32 marchType = 3;
  246. }
  247. // 战斗部队
  248. message BattleTeam {
  249. // 部队ID
  250. int32 teamID = 1;
  251. // 成员
  252. map<int64, BattleTeamMember> members = 2;
  253. // 城建属性
  254. Attrs facilityAttrs = 3;
  255. }
  256. // 战斗部队成员
  257. message BattleTeamMember {
  258. // 队伍位置 (1-3) 默认1为主将位置
  259. int32 teamIndex = 1;
  260. // 阵容位置(0-8)
  261. int32 index = 2;
  262. // 英雄唯一 ID
  263. int64 heroGUID = 3;
  264. // 英雄配置ID
  265. int32 heroConfigID = 4;
  266. // 上阵士兵ID 士兵-等级表士兵ID
  267. int32 troopsID = 5;
  268. // 兵力数量
  269. int32 troopsNum = 6;
  270. // 统兵上限
  271. int32 troopsLimit = 7;
  272. // 属性
  273. Attrs fetterAttrs = 8;
  274. }
  275. // 战斗请求数据
  276. message BattleReq {
  277. // 战斗类型
  278. int32 battleType = 1;
  279. // 当前进攻对象的行军类型
  280. int32 marchType = 2;
  281. // 组队进攻方
  282. repeated BattleTeamData attackers = 3;
  283. // 防守方
  284. BattleTeamData defender = 4;
  285. // 地块数据
  286. BattleTileData tile = 5;
  287. // 战斗时间
  288. int64 battleTime = 6;
  289. // 获取的资源
  290. AssetList rewards = 7;
  291. // 扣除的耐久
  292. int32 durability = 8;
  293. // 战斗ID(回传)
  294. int64 battleID = 9;
  295. }
  296. // 玩家英雄
  297. message PlayerHero {
  298. // 唯一ID
  299. int64 id = 1;
  300. // 配置ID
  301. int32 configID = 3;
  302. // 英雄属性列表
  303. Attrs attrs = 5;
  304. // 技能列表
  305. repeated uint32 skills = 6;
  306. // 等级
  307. int32 level = 7;
  308. // 英雄星级
  309. int32 star = 8;
  310. }
  311. // 战斗队伍信息
  312. message BattleTeamData {
  313. // 对象ID
  314. int64 objectID = 1;
  315. // 玩家ID
  316. int64 playerID = 2;
  317. // 玩家名称
  318. string playerName = 3;
  319. // 联盟ID
  320. int64 leagueID = 4;
  321. // 联盟名称
  322. string leagueName = 5;
  323. // 联盟简称
  324. string leagueAbbName = 6;
  325. // 部队ID
  326. int32 teamID = 7;
  327. // 战报组ID
  328. string reportGroupID = 8;
  329. // 部队英雄列表
  330. repeated int64 teamHeros = 9;
  331. // 城建属性值
  332. Attrs attrs = 10;
  333. }
  334. // 战斗地块数据
  335. message BattleTileData {
  336. // 地块ID
  337. int32 id = 1;
  338. // 地块对象
  339. int32 objectType = 2;
  340. // 地块对象ID
  341. int64 objectID = 3;
  342. // 地块对象配置ID
  343. int32 objectConfigID = 4;
  344. // 位置
  345. Point point = 5;
  346. // NPC 怪物组
  347. repeated int32 monsters = 6;
  348. }
  349. // 战斗返回数据
  350. message BattleRsp {
  351. // 战斗结果
  352. bool isWin = 1;
  353. // 行军对象兵力增量同步 key:objectID value:MarchSyncTroops
  354. repeated MarchSyncTroops marchTroops = 2;
  355. // 战斗请求数据 TODO:根据实际需要返回
  356. BattleReq data = 3;
  357. // 掠夺的资源
  358. repeated Asset snatchRes = 4;
  359. }
  360. // 服务器战斗参数
  361. message ServerBattleCampParam {
  362. // 战斗参数
  363. BattleCampParam param = 1;
  364. // 英雄部队位置
  365. I64I32Map heroTeamIndex = 2;
  366. }
  367. // AOI 对象
  368. message AOIObject {
  369. int64 objectID = 1; // 对象ID
  370. int32 objectType = 2; // 对象类型
  371. int32 x = 3; // x
  372. int32 y = 4; // y
  373. int64 onwerID = 5; // 所有者ID
  374. bool isWatcher = 6; // 是否观察者
  375. bool isMarker = 7; // 是否被观察者
  376. }
  377. // 行军请求
  378. message MarchRequest {
  379. int32 teamID = 1; // 队伍ID
  380. int64 objectID = 2; // 对象ID
  381. int32 marchType = 3; // 行军类型
  382. Point point = 4; // 坐标
  383. int64 targetObjectID = 5; // 目标对象ID
  384. int32 retreatState = 6; // 类型为撤退时的状态
  385. repeated Point path = 10; // 路径
  386. bool isMainForce = 11; // 攻城集结时是否作为主力部队
  387. bool isAutoRetreat = 12; // 是否自动撤退
  388. MarchSync marchSync = 20; // 行军同步
  389. }
  390. // 自动行军请求
  391. message AutoMarchRequest {
  392. int32 teamID = 1; // 队伍ID
  393. int64 objectID = 2; // 对象ID
  394. int32 marchType = 3; // 行军类型
  395. Point start = 4; // 起始坐标
  396. Point end = 5; // 终点坐标
  397. }
  398. // 集结请求
  399. message AssembleRequest {
  400. int64 playerID = 1; // 发起集结的玩家ID
  401. int64 leagueID = 2; // 发起集结的玩家的联盟ID
  402. int64 marchObjectID = 3; // 要集结的行军对象ID
  403. int64 targetObjectID = 4; // 集结攻打的目标ID
  404. int32 targetObjectType = 5; // 集结攻打的目标类型
  405. int64 assembleTime = 6; // 集结时间(毫秒)
  406. repeated Point path = 7; // 行军路径
  407. bool isAutoRetreat = 8; // 是否自动撤退
  408. MarchSync marchSync = 20; // 行军同步
  409. }
  410. // 行军同步
  411. message MarchSync {
  412. int64 playerID = 1; // 玩家ID
  413. int64 leagueID = 2; // 联盟ID
  414. int32 teamID = 3; // 队伍ID
  415. int64 objectID = 4; // 对象ID
  416. int32 marchState = 5; // 队伍状态
  417. Point point = 6; // 坐标
  418. repeated MarchMember members = 7; // 成员
  419. string gameNodeID = 8; // 游戏节点ID
  420. int64 injureEndTime = 9; // 重伤结束时间
  421. }
  422. // 行军同步兵力(增量同步)
  423. message MarchSyncTroops {
  424. int32 teamID = 1; // 队伍ID
  425. int64 objectID = 2; // 对象ID
  426. repeated MarchTroops troops = 3; // 兵力
  427. int32 killTroops = 4; // 杀敌兵数(暂只有讨伐会记录)
  428. }
  429. // 行军兵力
  430. message MarchTroops {
  431. int32 teamIndex = 1; // 队伍下标
  432. int32 troopsNum = 2; // 当前兵力
  433. int32 troopsMax = 3; // 最大兵力
  434. }
  435. // 部队战损
  436. message TeamBattleDamage {
  437. int32 teamID = 1; // 部队ID
  438. int64 objectID = 2; // 对象ID
  439. map<int32, TeamMemberDamage> members = 3; // 部队成员战损 key:teamIndex value:MemberDamage
  440. int32 killTroops = 4; // 杀敌兵数(暂只有讨伐会记录)
  441. }
  442. // 部队成员
  443. message TeamMemberDamage {
  444. int32 teamIndex = 1; // 队伍下标
  445. int32 troopsNum = 2; // 出战前的兵力
  446. int32 soldierNum = 3; // 剩余兵力
  447. int64 featNum = 4; // pvp功勋
  448. }
  449. // 行军成员
  450. message MarchMember {
  451. int32 teamIndex = 1; // 队伍下标
  452. int32 lineupIndex = 2; // 阵容下标
  453. int64 heroGUID = 10; // 英雄唯一ID
  454. int32 heroConfigID = 11; // 英雄配置ID
  455. int32 energy = 12; // 体力
  456. int32 armID = 20; // 兵种ID
  457. int64 armWeight = 21; // 兵种负重
  458. int32 troopsNum = 22; // 兵力数(全量同步)
  459. int32 troopsMax = 23; // 兵力上限
  460. }
  461. // 行军检测
  462. message MarchCheck {
  463. int64 marchObjectID = 1; // 行军对象ID
  464. int32 marchType = 2; // 行军类型
  465. int32 x = 3; // 行军x坐标
  466. int32 y = 4; // 行军y坐标
  467. }
  468. // 地图玩家建筑建造请求
  469. message BuildRequest {
  470. int32 configID = 1; // 建筑配置ID
  471. int64 playerID = 2; // 玩家ID
  472. int64 leagueID = 3; // 联盟ID
  473. int32 x = 4; // x坐标
  474. int32 y = 5; // y坐标
  475. int64 buildEndTime = 6; // 建造截至时间(ms)
  476. int32 buildLimit = 7; // 建筑数量上限
  477. }
  478. // 地图联盟建筑建造请求
  479. message BuildLeagueRequest {
  480. int32 configID = 1; // 建筑配置ID
  481. int64 leagueID = 2; // 联盟ID
  482. int32 level = 3; // 建筑等级 默认1级
  483. int32 x = 4; // x坐标
  484. int32 y = 5; // y坐标
  485. int64 buildEndTime = 6; // 建造截至时间(ms)
  486. }
  487. // 建筑更新
  488. message BuildUpdate {
  489. int32 configID = 1; // 建筑配置ID
  490. int64 objectID = 2; // 对象ID
  491. int32 x = 3; // x坐标
  492. int32 y = 4; // y坐标
  493. bool isAdd = 5; // 是否添加
  494. }
  495. // 建筑升级
  496. message BuildUpgradeRequest {
  497. int32 configID = 2; // 建筑配置ID
  498. int64 objectID = 1; // 建筑对象ID
  499. int32 level = 3; // 建筑升级等级
  500. int64 playerID = 4; // 玩家ID
  501. int64 leagueID = 5; // 联盟ID
  502. int64 upgradeEndTime = 6; // 升级截至时间 单位毫秒
  503. }
  504. // 攻城更新
  505. message SiegeUpdate {
  506. // 城池对象ID
  507. int64 castleObjectID = 1;
  508. // 阶段
  509. int32 siegeStage = 2;
  510. // 阶段结束时间
  511. int64 stageEndTime = 3;
  512. }
  513. // 玩家详细信息
  514. message PlayerDetailInfo {
  515. AccountInfo account = 1; // 账号信息
  516. PlayerInfo player = 2; // 玩家信息
  517. ChargeInfo charge = 3; // 充值信息
  518. repeated I32I64 items = 4; // 资源列表 key: 资源ID value: 资源数量
  519. repeated HeroData heroes = 5; // 英雄列表
  520. repeated Mail mails = 6; // 邮件列表
  521. }
  522. // 账号数据
  523. message AccountInfo {
  524. string accountID = 1; // 账号ID
  525. string facebookID = 2; // FaceBookID
  526. string googleID = 3; // googleID
  527. string appleID = 4; // 苹果ID
  528. string email = 5; // email
  529. string phone = 6; // 手机号码
  530. }
  531. // 玩家信息
  532. message PlayerInfo {
  533. string gameNodeID = 1; // 游戏节点ID
  534. int64 playerID = 2; // 玩家ID
  535. string playerName = 3; // 玩家名称
  536. int32 level = 4; // 玩家等级
  537. int64 power = 5; // 战力
  538. string leagueName = 6; // 联盟名称
  539. string registerIMEI = 7; // 注册IMEI
  540. string registerIP = 8; // 注册IP
  541. int64 registerTime = 9; // 注册时间
  542. string lastLoginIMEI = 10; // 最后登录IMEI
  543. string lastLoginIP = 11; // 最后登录IP
  544. int64 lastLoginTime = 12; // 最后登录时间
  545. bool isOnline = 13; // 是否在线
  546. }
  547. // 玩家充值数据
  548. message ChargeInfo {
  549. int32 totalCharge = 1; // 累计充值金额
  550. int32 ChargeCount = 2; // 累计充值次数
  551. }
  552. // 英雄基础数据
  553. message HeroData {
  554. int32 heroID = 1; // 英雄ID
  555. int32 star = 2; // 英雄星级
  556. int32 level = 3; // 英雄等级
  557. int32 count = 4; // 英雄数量
  558. }
  559. // 录像数据
  560. message RecordData {
  561. string recordID = 1; // 录像ID
  562. bytes data = 2; // 录像数据
  563. bool isFail = 3; // 是否是验证失败的录像
  564. }
  565. // 联盟改名
  566. message LeagueNameChange {
  567. int64 playerID = 1; // 玩家ID
  568. int64 leagueID = 2; // 联盟ID
  569. string newName = 3; // 新名称
  570. }
  571. message LeagueMemberRecordUpdateList {
  572. // 更新列表
  573. repeated LeagueMemberRecordUpdate list = 1;
  574. }
  575. // 更新联盟成员战绩
  576. message LeagueMemberRecordUpdate {
  577. int64 playerID = 1; // 玩家名称
  578. repeated I32I32 records = 2; // 联盟成员战绩 key 战绩类型 value 增加值
  579. }
  580. // 新集结信息
  581. message NewAssemble {
  582. // 集结的军团对象ID
  583. int64 legionObjectID = 1;
  584. // 发起集结的成员信息
  585. AssembleMember leadMember = 2;
  586. // 发起集结的玩家坐标
  587. Point point = 3;
  588. // 被集结的目标对象ID
  589. int64 targetObjectID = 10;
  590. // 被集结的目标配置ID
  591. int32 targetConfigID = 11;
  592. // 被集结的目标对象类型
  593. int32 targetObjectType = 12;
  594. // 被集结的目标坐标
  595. Point targetPoint = 13;
  596. // 集结结束时间
  597. int64 endTime = 20;
  598. }
  599. // 集结成员
  600. message AssembleMember {
  601. // 玩家ID
  602. int64 playerID = 1;
  603. // 玩家名
  604. string playerName = 2;
  605. // 集结的行军对象ID
  606. int64 marchObjectID = 3;
  607. // 部队ID
  608. int32 teamID = 4;
  609. // 兵力
  610. int32 troopsNum = 5;
  611. // 主将英雄的唯一ID
  612. int64 heroGUID = 6;
  613. // 到达时间(毫秒)
  614. int64 arriveTime = 7;
  615. }
  616. // 集结更新
  617. message AssembleUpdate {
  618. // 集结的军团对象ID
  619. int64 legionObjectID = 1;
  620. // 新加入的成员
  621. AssembleMember newMember = 2;
  622. // 退出的成员
  623. int64 quitMember = 3;
  624. // 是否出发
  625. bool isDepart = 4;
  626. // 是否解散
  627. bool isDisband = 5;
  628. }
  629. // 玩家登录地图请求
  630. message PlayerMapLoginRequest {
  631. // 玩家ID
  632. int64 playerID = 1;
  633. // 联盟ID
  634. int64 leagueID = 2;
  635. // 玩家拥有的地图对象ID,key:ObjectID, value:ObjectType
  636. map<int64, int32> objectIDs = 3;
  637. }
  638. // 更新联盟名称请求
  639. message UpdateLeagueNameRequest {
  640. // 联盟ID
  641. int64 leagueID = 1;
  642. // 联盟名称
  643. string name = 2;
  644. // 联盟简称
  645. string abbName = 3;
  646. }
  647. message LeagueDiplomacyHandle {
  648. // 处理玩家ID
  649. int64 playerID = 1;
  650. // 处理联盟ID
  651. int64 handleLeagueID = 2;
  652. // 处理申请类型 1友盟 2联邦
  653. int32 applyType = 3;
  654. // 是否同意 true同意 false拒绝
  655. bool agree = 4;
  656. }
  657. message LeagueDiplomacyResult {
  658. // 处理联盟ID
  659. int64 leagueID = 1;
  660. // 处理联盟名称
  661. string leagueName = 2;
  662. // 处理申请类型 1友盟 2联邦
  663. int32 applyType = 3;
  664. }
  665. // 部队城外征兵成员数据
  666. message TeamOutsideTroopsMember {
  667. // 兵种等级表ID
  668. int32 troopsID = 1;
  669. // 当前兵力
  670. int32 troopsNum = 2;
  671. // 兵力上限
  672. int32 troopsLimit = 3;
  673. }
  674. // 部队城外征兵数据更新
  675. message TeamOutsideTroopsUpdate {
  676. // 玩家ID
  677. int64 playerID = 1;
  678. // 部队ID
  679. int32 teamID = 2;
  680. // 征兵结束时间(最长)
  681. int64 conscriptEndTime = 3;
  682. }
  683. // 同步地图玩家信息请求
  684. message SyncMapPlayerRequest {
  685. // 玩家ID
  686. int64 playerID = 1;
  687. // 玩家名称
  688. string playerName = 2;
  689. // 玩家头像ID
  690. int32 iconID = 3;
  691. // 玩家头像框ID
  692. int32 frameID = 4;
  693. // 游戏节点ID
  694. string gameNodeID = 10;
  695. }
  696. // 同步地图玩家vip
  697. message SyncMapPlayerVip {
  698. // 玩家ID
  699. int64 playerID = 1;
  700. // 等级
  701. int32 level = 2;
  702. // 属性
  703. Attrs attrs = 3;
  704. // 到期时间
  705. int64 expireTime = 4;
  706. }
  707. // 观察者的数据集合
  708. message MapWatcherData {
  709. // 观察者ID
  710. int64 objectID = 1;
  711. // 观察者坐标点
  712. Point point = 2;
  713. // 地图对象列表
  714. repeated MapObject objectList = 3;
  715. // 军团列表
  716. repeated MapLegion legionList = 4;
  717. }
  718. // 玩家交易物品
  719. message PlayerExchangeItem {
  720. // 玩家ID
  721. int64 playerID = 1;
  722. // 玩家游戏服节点ID
  723. string gameNodeID = 2;
  724. // 玩家赛季ID
  725. int32 seasonID = 3;
  726. // 交易材料或资源信息
  727. ExchangeItem itemInfo = 4;
  728. // 出售的装备信息
  729. ExchangeEquipSell equipSell = 5;
  730. // 求购已达上限状态
  731. bool isWishLimit = 6;
  732. }
  733. // 玩家购买商品
  734. message PlayerExchangeBuyItem {
  735. // 玩家ID
  736. int64 playerID = 1;
  737. // 玩家游戏服节点ID
  738. string gameNodeID = 2;
  739. // 商品流水号
  740. string transID = 3;
  741. // 购买数量
  742. int64 count = 4;
  743. }
  744. // 交易成功商品详情
  745. message ExchangeDeliverDetail {
  746. // 买方玩家ID
  747. int64 playerID = 1;
  748. // 交易商品详情
  749. ExchangeDetail detail = 2;
  750. // 交易数量
  751. int64 count = 3;
  752. // 求购单价
  753. int32 wishPrice = 4;
  754. }
  755. // 给玩家发货信息
  756. message PlayerExchangeItemDeliver {
  757. // 玩家ID
  758. int64 playerID = 1;
  759. // 发货的商品流水号
  760. string transID = 2;
  761. // 交易商品ID
  762. int32 goodsID = 3;
  763. // 单价
  764. int32 price = 4;
  765. // 交易数量
  766. int64 count = 5;
  767. // 求购单价
  768. int32 wishPrice = 6;
  769. // 是否是买方
  770. bool isBuyer = 7;
  771. }
  772. // 查询我的交易物品请求
  773. message PlayerExchangeMyItem {
  774. // 玩家ID
  775. int64 playerID = 1;
  776. // 类型 1:出售 2:求购
  777. int32 actType = 2;
  778. // 流水号ID列表
  779. StrList transIDs = 3;
  780. }
  781. // 更新我的交易物品请求
  782. message PlayerExchangeItemUpdate {
  783. // 玩家ID
  784. int64 playerID = 1;
  785. // 更新类型
  786. int32 updateType = 2;
  787. // 交易类型 1:出售 2:求购
  788. int32 actType = 3;
  789. // 流水号ID
  790. string TransID = 4;
  791. // 求购已达上限状态
  792. bool isWishLimit = 5;
  793. }
  794. // 玩家再起
  795. message PlayerComeback {
  796. // 玩家ID
  797. int64 playerID = 1;
  798. // 是否重新选州
  799. bool rechoose = 2;
  800. // 选的州ID
  801. int32 stateID = 3;
  802. }
  803. // 玩家进入地图请求
  804. message MapEnterRequest {
  805. // 玩家ID
  806. int64 playerID = 1;
  807. // 联盟ID
  808. int64 leagueID = 2;
  809. // 是否新玩家
  810. bool isNewPlayer = 3;
  811. // 玩家名称
  812. string playerName = 10;
  813. // 玩家头像ID
  814. int32 iconID = 11;
  815. // 玩家头像框ID
  816. int32 frameID = 12;
  817. }
  818. // [请求] 选择出生州
  819. message SelectStateRequest {
  820. // 出生州ID
  821. int32 stateID = 1;
  822. // 玩家ID
  823. int64 playerID = 2;
  824. // 联盟ID
  825. int64 leagueID = 3;
  826. // 玩家名称
  827. string playerName = 4;
  828. // 玩家头像ID
  829. int32 iconID = 5;
  830. // 玩家头像框ID
  831. int32 frameID = 6;
  832. }
  833. // [响应] 选择出生州
  834. message SelectStateResponse {
  835. // 观察者对象ID
  836. int64 objectID = 1;
  837. // 出生坐标
  838. Point point = 2;
  839. }
  840. // 自动撤退
  841. message AutoRetreat {
  842. // 队伍ID
  843. int32 teamID = 1;
  844. // 撤退的行军状态
  845. int32 marchState = 2;
  846. // 是否移除调动点
  847. bool isRemoveRedeploy = 3;
  848. }
  849. // 自动防守
  850. message AutoDefend {
  851. // 建筑对象ID
  852. int64 buildObjectID = 1;
  853. // 行军对象ID列表
  854. repeated AutoDefendMember members = 2;
  855. }
  856. // 自动防守成员
  857. message AutoDefendMember {
  858. // 行军对象ID
  859. int64 marchObjectID = 1;
  860. // 是否同步
  861. MarchSync marchSync = 2;
  862. }
  863. // 更新观察者坐标点
  864. message UpdateWatcherPoint {
  865. // 坐标
  866. Point point = 1;
  867. // 是否失败
  868. bool isFailed = 2;
  869. }
  870. // 更新部队
  871. message UpdateTeam {
  872. // 更新的部队ID
  873. int32 teamID = 1;
  874. // 根据更新类型读取下面的数据
  875. int32 teamUpdateType = 2;
  876. // 调动点的对象ID
  877. int64 redeployObjectID = 10;
  878. // 调动点的对象类型
  879. int32 redeployObjectType = 11;
  880. // TODO 其它
  881. }
  882. // 寻路请求
  883. message FindPathRequest {
  884. // 起点X坐标
  885. int32 startX = 1;
  886. // 起点Y坐标
  887. int32 startY = 2;
  888. // 终点X坐标
  889. int32 endX = 3;
  890. // 终点Y坐标
  891. int32 endY = 4;
  892. // 玩家ID
  893. int64 playerID = 10;
  894. // 联盟ID
  895. int64 leagueID = 11;
  896. // 行军类型
  897. int32 marchType = 20;
  898. }
  899. // 自动防守请求
  900. message AutoDefendRequest {
  901. // 建筑对象ID
  902. int64 buildObjectID = 1;
  903. // teamIDs
  904. repeated int32 teamIDs = 2;
  905. }
  906. // 侦察检测
  907. message CheckScoutResult {
  908. // 侦察玩家ID
  909. int64 targetPlayerID = 1;
  910. // 侦察玩家名称
  911. string targetPlayerName = 2;
  912. // 侦察坐标
  913. Point point = 3;
  914. // 返回当前目标状态 1保护 暂时无用 后续定义更新
  915. int32 targetState = 4;
  916. }
  917. // 侦察请求
  918. message ScoutRequest {
  919. // 侦察队列ID
  920. int32 queueID = 1;
  921. // 侦察类型 1:侦察-行军 2:侦察开始
  922. int32 scoutType = 2;
  923. // 侦察玩家ID
  924. int64 playerID = 3;
  925. // 结束时间戳 单位毫秒
  926. int64 endTime = 4;
  927. }
  928. // 侦察状态更新通知
  929. message ScoutUpdateNotice {
  930. // 侦察开启队列列表
  931. repeated int32 starts = 1;
  932. // 侦察结束队列列表
  933. repeated int32 ends = 2;
  934. }
  935. // 侦察结果
  936. message ScoutSearchResult {
  937. // 侦察队列ID
  938. int32 queueID = 1;
  939. // 被侦察玩家ID
  940. int64 targetPlayerID = 2;
  941. // 被侦察玩家名称
  942. string targetPlayerName = 3;
  943. // 侦察结果 资源列表
  944. AssetList assets = 4;
  945. }