actor.proto 25 KB

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