actor.proto 26 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102
  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 AssembleRequest {
  392. int64 playerID = 1; // 发起集结的玩家ID
  393. int64 leagueID = 2; // 发起集结的玩家的联盟ID
  394. int64 marchObjectID = 3; // 要集结的行军对象ID
  395. int64 targetObjectID = 4; // 集结攻打的目标ID
  396. int32 targetObjectType = 5; // 集结攻打的目标类型
  397. int64 assembleTime = 6; // 集结时间(毫秒)
  398. repeated Point path = 7; // 行军路径
  399. bool isAutoRetreat = 8; // 是否自动撤退
  400. MarchSync marchSync = 20; // 行军同步
  401. }
  402. // 行军同步
  403. message MarchSync {
  404. int64 playerID = 1; // 玩家ID
  405. int64 leagueID = 2; // 联盟ID
  406. int32 teamID = 3; // 队伍ID
  407. int64 objectID = 4; // 对象ID
  408. int32 marchState = 5; // 队伍状态
  409. Point point = 6; // 坐标
  410. repeated MarchMember members = 7; // 成员
  411. string gameNodeID = 8; // 游戏节点ID
  412. int64 injureEndTime = 9; // 重伤结束时间
  413. }
  414. // 行军同步兵力(增量同步)
  415. message MarchSyncTroops {
  416. int32 teamID = 1; // 队伍ID
  417. int64 objectID = 2; // 对象ID
  418. repeated MarchTroops troops = 3; // 兵力
  419. int32 killTroops = 4; // 杀敌兵数(暂只有讨伐会记录)
  420. }
  421. // 行军兵力
  422. message MarchTroops {
  423. int32 teamIndex = 1; // 队伍下标
  424. int32 troopsNum = 2; // 当前兵力
  425. int32 troopsMax = 3; // 最大兵力
  426. }
  427. // 部队战损
  428. message TeamBattleDamage {
  429. int32 teamID = 1; // 部队ID
  430. int64 objectID = 2; // 对象ID
  431. map<int32, TeamMemberDamage> members = 3; // 部队成员战损 key:teamIndex value:MemberDamage
  432. int32 killTroops = 4; // 杀敌兵数(暂只有讨伐会记录)
  433. }
  434. // 部队成员
  435. message TeamMemberDamage {
  436. int32 teamIndex = 1; // 队伍下标
  437. int32 troopsNum = 2; // 出战前的兵力
  438. int32 soldierNum = 3; // 剩余兵力
  439. int64 featNum = 4; // pvp功勋
  440. }
  441. // 行军成员
  442. message MarchMember {
  443. int32 teamIndex = 1; // 队伍下标
  444. int32 lineupIndex = 2; // 阵容下标
  445. int64 heroGUID = 10; // 英雄唯一ID
  446. int32 heroConfigID = 11; // 英雄配置ID
  447. int32 energy = 12; // 体力
  448. int32 armID = 20; // 兵种ID
  449. int64 armWeight = 21; // 兵种负重
  450. int32 troopsNum = 22; // 兵力数(全量同步)
  451. int32 troopsMax = 23; // 兵力上限
  452. }
  453. // 行军检测
  454. message MarchCheck {
  455. int64 marchObjectID = 1; // 行军对象ID
  456. int32 marchType = 2; // 行军类型
  457. int32 x = 3; // 行军x坐标
  458. int32 y = 4; // 行军y坐标
  459. }
  460. // 地图玩家建筑建造请求
  461. message BuildRequest {
  462. int32 configID = 1; // 建筑配置ID
  463. int64 playerID = 2; // 玩家ID
  464. int64 leagueID = 3; // 联盟ID
  465. int32 x = 4; // x坐标
  466. int32 y = 5; // y坐标
  467. int64 buildEndTime = 6; // 建造截至时间(ms)
  468. int32 buildLimit = 7; // 建筑数量上限
  469. }
  470. // 地图联盟建筑建造请求
  471. message BuildLeagueRequest {
  472. int32 configID = 1; // 建筑配置ID
  473. int64 leagueID = 2; // 联盟ID
  474. int32 level = 3; // 建筑等级 默认1级
  475. int32 x = 4; // x坐标
  476. int32 y = 5; // y坐标
  477. int64 buildEndTime = 6; // 建造截至时间(ms)
  478. }
  479. // 建筑更新
  480. message BuildUpdate {
  481. int32 configID = 1; // 建筑配置ID
  482. int64 objectID = 2; // 对象ID
  483. int32 x = 3; // x坐标
  484. int32 y = 4; // y坐标
  485. bool isAdd = 5; // 是否添加
  486. }
  487. // 建筑升级
  488. message BuildUpgradeRequest {
  489. int32 configID = 2; // 建筑配置ID
  490. int64 objectID = 1; // 建筑对象ID
  491. int32 level = 3; // 建筑升级等级
  492. int64 playerID = 4; // 玩家ID
  493. int64 leagueID = 5; // 联盟ID
  494. int64 upgradeEndTime = 6; // 升级截至时间 单位毫秒
  495. }
  496. // 攻城更新
  497. message SiegeUpdate {
  498. // 城池对象ID
  499. int64 castleObjectID = 1;
  500. // 阶段
  501. int32 siegeStage = 2;
  502. // 阶段结束时间
  503. int64 stageEndTime = 3;
  504. }
  505. // 玩家详细信息
  506. message PlayerDetailInfo {
  507. AccountInfo account = 1; // 账号信息
  508. PlayerInfo player = 2; // 玩家信息
  509. ChargeInfo charge = 3; // 充值信息
  510. repeated I32I64 items = 4; // 资源列表 key: 资源ID value: 资源数量
  511. repeated HeroData heroes = 5; // 英雄列表
  512. repeated Mail mails = 6; // 邮件列表
  513. }
  514. // 账号数据
  515. message AccountInfo {
  516. string accountID = 1; // 账号ID
  517. string facebookID = 2; // FaceBookID
  518. string googleID = 3; // googleID
  519. string appleID = 4; // 苹果ID
  520. string email = 5; // email
  521. string phone = 6; // 手机号码
  522. }
  523. // 玩家信息
  524. message PlayerInfo {
  525. string gameNodeID = 1; // 游戏节点ID
  526. int64 playerID = 2; // 玩家ID
  527. string playerName = 3; // 玩家名称
  528. int32 level = 4; // 玩家等级
  529. int64 power = 5; // 战力
  530. string leagueName = 6; // 联盟名称
  531. string registerIMEI = 7; // 注册IMEI
  532. string registerIP = 8; // 注册IP
  533. int64 registerTime = 9; // 注册时间
  534. string lastLoginIMEI = 10; // 最后登录IMEI
  535. string lastLoginIP = 11; // 最后登录IP
  536. int64 lastLoginTime = 12; // 最后登录时间
  537. bool isOnline = 13; // 是否在线
  538. }
  539. // 玩家充值数据
  540. message ChargeInfo {
  541. int32 totalCharge = 1; // 累计充值金额
  542. int32 ChargeCount = 2; // 累计充值次数
  543. }
  544. // 英雄基础数据
  545. message HeroData {
  546. int32 heroID = 1; // 英雄ID
  547. int32 star = 2; // 英雄星级
  548. int32 level = 3; // 英雄等级
  549. int32 count = 4; // 英雄数量
  550. }
  551. // 录像数据
  552. message RecordData {
  553. string recordID = 1; // 录像ID
  554. bytes data = 2; // 录像数据
  555. bool isFail = 3; // 是否是验证失败的录像
  556. }
  557. // 联盟改名
  558. message LeagueNameChange {
  559. int64 playerID = 1; // 玩家ID
  560. int64 leagueID = 2; // 联盟ID
  561. string newName = 3; // 新名称
  562. }
  563. message LeagueMemberRecordUpdateList {
  564. // 更新列表
  565. repeated LeagueMemberRecordUpdate list = 1;
  566. }
  567. // 更新联盟成员战绩
  568. message LeagueMemberRecordUpdate {
  569. int64 playerID = 1; // 玩家名称
  570. repeated I32I32 records = 2; // 联盟成员战绩 key 战绩类型 value 增加值
  571. }
  572. // 新集结信息
  573. message NewAssemble {
  574. // 集结的军团对象ID
  575. int64 legionObjectID = 1;
  576. // 发起集结的成员信息
  577. AssembleMember leadMember = 2;
  578. // 发起集结的玩家坐标
  579. Point point = 3;
  580. // 被集结的目标对象ID
  581. int64 targetObjectID = 10;
  582. // 被集结的目标配置ID
  583. int32 targetConfigID = 11;
  584. // 被集结的目标对象类型
  585. int32 targetObjectType = 12;
  586. // 被集结的目标坐标
  587. Point targetPoint = 13;
  588. // 集结结束时间
  589. int64 endTime = 20;
  590. }
  591. // 集结成员
  592. message AssembleMember {
  593. // 玩家ID
  594. int64 playerID = 1;
  595. // 玩家名
  596. string playerName = 2;
  597. // 集结的行军对象ID
  598. int64 marchObjectID = 3;
  599. // 部队ID
  600. int32 teamID = 4;
  601. // 兵力
  602. int32 troopsNum = 5;
  603. // 主将英雄的唯一ID
  604. int64 heroGUID = 6;
  605. // 到达时间(毫秒)
  606. int64 arriveTime = 7;
  607. }
  608. // 集结更新
  609. message AssembleUpdate {
  610. // 集结的军团对象ID
  611. int64 legionObjectID = 1;
  612. // 新加入的成员
  613. AssembleMember newMember = 2;
  614. // 退出的成员
  615. int64 quitMember = 3;
  616. // 是否出发
  617. bool isDepart = 4;
  618. // 是否解散
  619. bool isDisband = 5;
  620. }
  621. // 玩家登录地图请求
  622. message PlayerMapLoginRequest {
  623. // 玩家ID
  624. int64 playerID = 1;
  625. // 联盟ID
  626. int64 leagueID = 2;
  627. // 玩家拥有的地图对象ID,key:ObjectID, value:ObjectType
  628. map<int64, int32> objectIDs = 3;
  629. }
  630. // 更新联盟名称请求
  631. message UpdateLeagueNameRequest {
  632. // 联盟ID
  633. int64 leagueID = 1;
  634. // 联盟名称
  635. string name = 2;
  636. // 联盟简称
  637. string abbName = 3;
  638. }
  639. message LeagueDiplomacyHandle {
  640. // 处理玩家ID
  641. int64 playerID = 1;
  642. // 处理联盟ID
  643. int64 handleLeagueID = 2;
  644. // 处理申请类型 1友盟 2联邦
  645. int32 applyType = 3;
  646. // 是否同意 true同意 false拒绝
  647. bool agree = 4;
  648. }
  649. message LeagueDiplomacyResult {
  650. // 处理联盟ID
  651. int64 leagueID = 1;
  652. // 处理联盟名称
  653. string leagueName = 2;
  654. // 处理申请类型 1友盟 2联邦
  655. int32 applyType = 3;
  656. }
  657. // 部队城外征兵成员数据
  658. message TeamOutsideTroopsMember {
  659. // 兵种等级表ID
  660. int32 troopsID = 1;
  661. // 当前兵力
  662. int32 troopsNum = 2;
  663. // 兵力上限
  664. int32 troopsLimit = 3;
  665. }
  666. // 部队城外征兵数据更新
  667. message TeamOutsideTroopsUpdate {
  668. // 玩家ID
  669. int64 playerID = 1;
  670. // 部队ID
  671. int32 teamID = 2;
  672. // 征兵结束时间(最长)
  673. int64 conscriptEndTime = 3;
  674. }
  675. // 同步地图玩家信息请求
  676. message SyncMapPlayerRequest {
  677. // 玩家ID
  678. int64 playerID = 1;
  679. // 玩家名称
  680. string playerName = 2;
  681. // 玩家头像ID
  682. int32 iconID = 3;
  683. // 玩家头像框ID
  684. int32 frameID = 4;
  685. // 游戏节点ID
  686. string gameNodeID = 10;
  687. }
  688. // 同步地图玩家vip
  689. message SyncMapPlayerVip {
  690. // 玩家ID
  691. int64 playerID = 1;
  692. // 等级
  693. int32 level = 2;
  694. // 属性
  695. Attrs attrs = 3;
  696. // 到期时间
  697. int64 expireTime = 4;
  698. }
  699. // 观察者的数据集合
  700. message MapWatcherData {
  701. // 观察者ID
  702. int64 objectID = 1;
  703. // 观察者坐标点
  704. Point point = 2;
  705. // 地图对象列表
  706. repeated MapObject objectList = 3;
  707. // 军团列表
  708. repeated MapLegion legionList = 4;
  709. }
  710. // 玩家交易物品
  711. message PlayerExchangeItem {
  712. // 玩家ID
  713. int64 playerID = 1;
  714. // 玩家游戏服节点ID
  715. string gameNodeID = 2;
  716. // 玩家赛季ID
  717. int32 seasonID = 3;
  718. // 交易材料或资源信息
  719. ExchangeItem itemInfo = 4;
  720. // 出售的装备信息
  721. ExchangeEquipSell equipSell = 5;
  722. // 求购已达上限状态
  723. bool isWishLimit = 6;
  724. }
  725. // 玩家购买商品
  726. message PlayerExchangeBuyItem {
  727. // 玩家ID
  728. int64 playerID = 1;
  729. // 玩家游戏服节点ID
  730. string gameNodeID = 2;
  731. // 商品流水号
  732. string transID = 3;
  733. // 购买数量
  734. int64 count = 4;
  735. }
  736. // 交易成功商品详情
  737. message ExchangeDeliverDetail {
  738. // 买方玩家ID
  739. int64 playerID = 1;
  740. // 交易商品详情
  741. ExchangeDetail detail = 2;
  742. // 交易数量
  743. int64 count = 3;
  744. // 求购单价
  745. int32 wishPrice = 4;
  746. }
  747. // 给玩家发货信息
  748. message PlayerExchangeItemDeliver {
  749. // 玩家ID
  750. int64 playerID = 1;
  751. // 发货的商品流水号
  752. string transID = 2;
  753. // 交易商品ID
  754. int32 goodsID = 3;
  755. // 单价
  756. int32 price = 4;
  757. // 交易数量
  758. int64 count = 5;
  759. // 求购单价
  760. int32 wishPrice = 6;
  761. // 是否是买方
  762. bool isBuyer = 7;
  763. }
  764. // 查询我的交易物品请求
  765. message PlayerExchangeMyItem {
  766. // 玩家ID
  767. int64 playerID = 1;
  768. // 类型 1:出售 2:求购
  769. int32 actType = 2;
  770. // 流水号ID列表
  771. StrList transIDs = 3;
  772. }
  773. // 更新我的交易物品请求
  774. message PlayerExchangeItemUpdate {
  775. // 玩家ID
  776. int64 playerID = 1;
  777. // 更新类型
  778. int32 updateType = 2;
  779. // 交易类型 1:出售 2:求购
  780. int32 actType = 3;
  781. // 流水号ID
  782. string TransID = 4;
  783. // 求购已达上限状态
  784. bool isWishLimit = 5;
  785. }
  786. // 玩家再起
  787. message PlayerComeback {
  788. // 玩家ID
  789. int64 playerID = 1;
  790. // 是否重新选州
  791. bool rechoose = 2;
  792. // 选的州ID
  793. int32 stateID = 3;
  794. }
  795. // 玩家进入地图请求
  796. message MapEnterRequest {
  797. // 玩家ID
  798. int64 playerID = 1;
  799. // 联盟ID
  800. int64 leagueID = 2;
  801. // 是否新玩家
  802. bool isNewPlayer = 3;
  803. // 玩家名称
  804. string playerName = 10;
  805. // 玩家头像ID
  806. int32 iconID = 11;
  807. // 玩家头像框ID
  808. int32 frameID = 12;
  809. }
  810. // [请求] 选择出生州
  811. message SelectStateRequest {
  812. // 出生州ID
  813. int32 stateID = 1;
  814. // 玩家ID
  815. int64 playerID = 2;
  816. // 联盟ID
  817. int64 leagueID = 3;
  818. // 玩家名称
  819. string playerName = 4;
  820. // 玩家头像ID
  821. int32 iconID = 5;
  822. // 玩家头像框ID
  823. int32 frameID = 6;
  824. }
  825. // [响应] 选择出生州
  826. message SelectStateResponse {
  827. // 观察者对象ID
  828. int64 objectID = 1;
  829. // 出生坐标
  830. Point point = 2;
  831. }
  832. // 自动撤退
  833. message AutoRetreat {
  834. // 队伍ID
  835. int32 teamID = 1;
  836. // 撤退的行军状态
  837. int32 marchState = 2;
  838. // 是否移除调动点
  839. bool isRemoveRedeploy = 3;
  840. }
  841. // 自动防守
  842. message AutoDefend {
  843. // 建筑对象ID
  844. int64 buildObjectID = 1;
  845. // 行军对象ID列表
  846. repeated AutoDefendMember members = 2;
  847. }
  848. // 自动防守成员
  849. message AutoDefendMember {
  850. // 行军对象ID
  851. int64 marchObjectID = 1;
  852. // 是否同步
  853. MarchSync marchSync = 2;
  854. }
  855. // 更新观察者坐标点
  856. message UpdateWatcherPoint {
  857. // 坐标
  858. Point point = 1;
  859. // 是否失败
  860. bool isFailed = 2;
  861. }
  862. // 更新部队
  863. message UpdateTeam {
  864. // 更新的部队ID
  865. int32 teamID = 1;
  866. // 根据更新类型读取下面的数据
  867. int32 teamUpdateType = 2;
  868. // 调动点的对象ID
  869. int64 redeployObjectID = 10;
  870. // 调动点的对象类型
  871. int32 redeployObjectType = 11;
  872. // TODO 其它
  873. }
  874. // 寻路请求
  875. message FindPathRequest {
  876. // 起点X坐标
  877. int32 startX = 1;
  878. // 起点Y坐标
  879. int32 startY = 2;
  880. // 终点X坐标
  881. int32 endX = 3;
  882. // 终点Y坐标
  883. int32 endY = 4;
  884. // 玩家ID
  885. int64 playerID = 10;
  886. // 联盟ID
  887. int64 leagueID = 11;
  888. // 行军类型
  889. int32 marchType = 20;
  890. }
  891. // 多重寻路请求
  892. message FindMultiPathRequest {
  893. // 所有请求
  894. repeated FindPathRequest requests = 1;
  895. // 寻路类型:0=所有请求成功返回,1=任意寻路成功返回,2=只返回成功路径
  896. int32 findType = 2;
  897. }
  898. // 自动防守请求
  899. message AutoDefendRequest {
  900. // 建筑对象ID
  901. int64 buildObjectID = 1;
  902. // teamIDs
  903. repeated int32 teamIDs = 2;
  904. }
  905. // 侦察检测
  906. message CheckScoutResult {
  907. // 侦察玩家ID
  908. int64 targetPlayerID = 1;
  909. // 侦察玩家名称
  910. string targetPlayerName = 2;
  911. // 侦察坐标
  912. Point point = 3;
  913. // 返回当前目标状态 1保护 暂时无用 后续定义更新
  914. int32 targetState = 4;
  915. }
  916. // 侦察请求
  917. message ScoutRequest {
  918. // 侦察队列ID
  919. int32 queueID = 1;
  920. // 侦察类型 1:侦察-行军 2:侦察开始
  921. int32 scoutType = 2;
  922. // 侦察玩家ID
  923. int64 playerID = 3;
  924. // 结束时间戳 单位毫秒
  925. int64 endTime = 4;
  926. }
  927. // 侦察状态更新通知
  928. message ScoutUpdateNotice {
  929. // 侦察开启队列列表
  930. repeated int32 starts = 1;
  931. // 侦察结束队列列表
  932. repeated int32 ends = 2;
  933. }
  934. // 侦察结果
  935. message ScoutSearchResult {
  936. // 侦察队列ID
  937. int32 queueID = 1;
  938. // 被侦察玩家ID
  939. int64 targetPlayerID = 2;
  940. // 被侦察玩家名称
  941. string targetPlayerName = 3;
  942. // 侦察结果 资源列表
  943. AssetList assets = 4;
  944. }
  945. message LeagueJoinNotice {
  946. // 联盟ID
  947. int64 leagueID = 1;
  948. // 联盟名称
  949. string leagueName = 2;
  950. // 占领的城池ID列表
  951. repeated int32 castleConfigIDs = 3;
  952. }
  953. // 自动行军请求
  954. message AutoMarchRequest {
  955. // 自动行军列表
  956. repeated AutoMarchReqestData list = 1;
  957. // 玩家ID
  958. int64 playerID = 2;
  959. // 队伍ID
  960. int64 ObjectID = 3;
  961. // 联盟ID
  962. int64 leagueID = 4;
  963. }
  964. // 自动行军
  965. message AutoMarchReqestData {
  966. // 行军类型
  967. int32 marchType = 1;
  968. // 起点
  969. Point start = 2;
  970. // 终点
  971. Point end = 3;
  972. }
  973. // 自动行军请求
  974. message AutoMarchResult {
  975. // 自动行军列表
  976. repeated AutoMarchResultData list = 1;
  977. // 玩家ID
  978. int64 playerID = 2;
  979. // 队伍ID
  980. int64 ObjectID = 3;
  981. }
  982. // 自动行军
  983. message AutoMarchResultData {
  984. // 行军类型
  985. int32 marchType = 1;
  986. // 路径
  987. repeated Point path = 2;
  988. }
  989. // 建筑攻城点
  990. message BuildSiegePoint {
  991. // 攻城点
  992. repeated Point points = 1;
  993. // 最小距离
  994. int32 minDistance = 2;
  995. // 最大距离
  996. int32 maxDistance = 3;
  997. }