crossserver.proto 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  1. syntax = "proto3";
  2. package serverproto;
  3. import "user.proto";
  4. //该proto下文件会使用router节点进行转发
  5. ///////////////局部跨服 section cross
  6. //远航试炼
  7. message SSCrossYuanHangTrialViewListReq { //project crossserver //RouteRule crossserver
  8. }
  9. message SSCrossYuanHangTrialViewListAck { //project game
  10. int32 error = 1;
  11. repeated YuanHangTrialData trial_view_list = 2; //界面上可视列表
  12. }
  13. message SSCrossYuanHangTrialSelfReq { //project crossserver //RouteRule crossserver
  14. uint64 self_uid = 1; //获取自身当前的远航数据(有可能已经结束)
  15. //意外情况下导致远航没有出现在跨服,在每次获取自身数据时重新设置一遍
  16. int32 trial_type = 2;
  17. uint64 end_time_stamp = 3;
  18. FightRoleInfo self_fight_info = 4;
  19. int32 duration_time = 5; //持续时间(分钟)
  20. }
  21. message SSCrossYuanHangTrialSelfAck { //project game
  22. YuanHangTrialData self_info = 1; //自身远航数据(和玩家个人保存数据有区别)
  23. }
  24. //发起远航试炼
  25. message SSCrossYuanHangTrialReq { //project crossserver //RouteRule crossserver
  26. int32 trial_type = 1;
  27. uint64 end_time_stamp = 2;
  28. FightRoleInfo self_fight_info = 3;
  29. int32 duration_time = 4; //持续时间(分钟)
  30. }
  31. message SSCrossYuanHangTrialAck {
  32. }
  33. //远航试炼挑战
  34. message SSCrossYuanHangTrialChallengeReq { //project crossserver //RouteRule crossserver
  35. uint64 challenge_uid = 1;
  36. uint64 challenge_uid_end_time = 2;
  37. int32 be_challenge_max_num = 3; //最大被挑战次数
  38. }
  39. message SSCrossYuanHangTrialChallengeAck { //project game
  40. int32 error = 1; //错误码
  41. uint64 challenge_uid = 2;
  42. uint64 challenge_uid_end_time = 3;
  43. FightRoleInfo fight_info = 5; //被挑战玩家战斗数据
  44. }
  45. //变更列表通知
  46. message SSCrossYuanHangTrialViewNtf { //project social|game
  47. repeated YuanHangTrialData trial_view_list = 1; //界面上可视列表
  48. }
  49. //挑战结果通知
  50. message SSCrossYuanHangTrialChallengeResultReq { //project crossserver //RouteRule crossserver
  51. uint64 challenged_uid = 1;
  52. uint64 challenged_uid_end_time = 2;
  53. int32 fight_time = 3; //战斗持续时间(判断合法性)
  54. bool win = 4;
  55. string self_nick_name = 5; //玩家自己昵称
  56. int32 self_zone = 6; //顽疾自己所在区服ID
  57. FightRoleInfo fight_info = 7; //挑战玩家战斗数据
  58. }
  59. message SSCrossYuanHangTrialChallengeResultAck { //project game
  60. int32 error = 1; //错误码
  61. bool win = 2;
  62. int32 ship_trial_level = 3; //远航试炼登记
  63. YuanHangTrialLogData log_data = 4; //有则添加到自身记录中
  64. }
  65. //远航试炼排行榜积分更新
  66. message SSCrossYuanHangTrialUpdateRankScoreNtf { //project crossserver //RouteRule crossserver
  67. uint64 uid = 1;
  68. uint64 rank_score = 2;
  69. }
  70. //获取远航试炼排行榜
  71. message SSCrossYuanHangTrialRankListReq { //project crossserver //RouteRule crossserver
  72. uint64 uid = 1;
  73. int32 start_idx = 2;
  74. }
  75. message SSCrossYuanHangTrialRankListAck { //project game
  76. int32 start_idx = 1;
  77. uint32 self_rank = 2; //自身排名
  78. uint64 self_score = 3; //自身积分
  79. uint32 total_rank = 4; //当前参加排名的人数
  80. repeated CommonRankInfo rank_list = 5;
  81. }
  82. //被挑战日志通知
  83. message SSCrossYuanHangTrialLogNtf { //project social|game|db
  84. uint64 ntf_uid = 1;
  85. YuanHangTrialLogData log_data = 2; //有则添加到自身记录中
  86. }
  87. //查询飞艇信息
  88. message SSCrossYuanHangTrialInfoReq { //project crossserver //RouteRule crossserver
  89. uint64 trial_uid = 1;
  90. uint64 trial_end_time = 2;
  91. }
  92. message SSCCrossYuanHangTrialInfoAck { //project game
  93. int32 error = 1;
  94. YuanHangTrialData trial_data = 2;
  95. string nick_name = 3;
  96. }
  97. //跨服-巅峰爬塔
  98. //排行榜按照最大战力/阵容数据实时刷新(不是最大战力时的阵容)
  99. message SSCrossRankUpdateNtf { //project crossrank //RouteRule crossrank
  100. uint64 self_max_fight_power = 1;
  101. FightRoleInfo fight_info = 2; //挑战玩家战斗数据
  102. }
  103. //进入巅峰之塔玩家阵容信息更新
  104. message SSCrossRankFightInfoUpdateNtf { //project crossrank //RouteRule crossrank
  105. FightRoleInfo fight_info = 1; //挑战玩家战斗数据
  106. uint64 cur_self_max_fight_power = 2; //当前玩家战斗力(不在榜上时更新用当前战斗力更新榜信息)
  107. }
  108. //巅峰之塔匹配玩家
  109. message SSCrossTopTowerMatchFightReq { //project crossrank //RouteRule crossrank
  110. // repeated KeyValueTypeList match_list = 1; //1-10层匹配参数
  111. }
  112. message SSCrossTopTowerMatchFightAck { //project game
  113. int32 error = 1;
  114. repeated TopTowerFightRoleInfo fight_info_list = 2; //挑战玩家战斗数据
  115. }
  116. //买路排行榜通知
  117. message SSCrossTopTowerForceWinRankUpdateNtf { //project crossrank //RouteRule crossrank
  118. uint64 fight_uid = 1;
  119. }
  120. //获取买路排行榜
  121. message SSCrossTopTowerForceWinRankListReq { //project crossrank //RouteRule crossrank
  122. uint64 uid = 1;
  123. int32 start_idx = 2;
  124. }
  125. message SSCrossTopTowerForceWinRankListAck { //project game
  126. int32 start_idx = 1;
  127. uint32 self_rank = 2; //自身排名
  128. uint64 self_score = 3; //自身积分
  129. uint32 total_rank = 4; //当前参加排名的人数
  130. repeated CommonRankInfo rank_list = 5;
  131. }
  132. //该proto下文件会使用router节点进行转发
  133. ///////////////全局跨服global cross
  134. //跨服聊天(根据类型区分局部跨服还是整体跨服)
  135. message SSGCrossChatMessageReq { //project gcrossmap //RouteRule gcrossmap
  136. int32 type = 1;
  137. ChatMessageInfo message = 2;//消息内容
  138. uint64 target_id = 3;//私人聊天,好友聊天时发送的目标玩家
  139. ChatPlayerBriefInfo from_id = 4;//私人聊天,好友聊天时发送的来源玩家
  140. int32 cur_space_id = 5;
  141. }
  142. message SSGCrossChatMessageAck { //project game
  143. int32 error = 1; //错误码
  144. uint64 target_id = 2; //目标玩家(离线玩家ID)
  145. ChatMessageInfo message = 3;//消息内容
  146. int32 type = 4;
  147. }
  148. message SSGCrossChatMessageNtf { //project game
  149. repeated MessageContentInfo msg_list = 1;
  150. repeated SystemMessage s_msg_list = 2;
  151. }
  152. //map进程通过etcd上报自己的状态,maprouter进程通过etcd的监听来获取每个map的状态
  153. //角色进入地图,选择合适的AOI节点(由玩家决定进入哪个线)
  154. //地图通用参数
  155. //1,情侣
  156. message SelfCrossMapParam {
  157. uint64 lover_uid = 1;// 情侣
  158. }
  159. message SSGCrossMapEnterReq { //project gcrossmap //RouteRule gcrossmap
  160. int32 aoi_line = 1; //选择进入的地图
  161. int32 map_type = 2; //选择的地图功能类型
  162. PlayerShowInfo show_info = 3;
  163. Vector3 pos = 4; //位置
  164. Vector3 dir = 5; //朝向
  165. SelfCrossMapParam self_map_param = 6;
  166. }
  167. message SSGCrossMapEnterAck { //project game
  168. int32 error = 1; //错误码
  169. int32 line_num = 2;
  170. int32 map_type = 3;
  171. string map_sid = 4;
  172. UnitPosAndDir unit_info = 5;
  173. }
  174. //通知其他玩家,有单位进入地图
  175. message SSGCrossMapEnterNtf { //project game
  176. repeated UnitPosAndDir unit_info_list = 1;
  177. }
  178. message SSGCrossMapLeaveReq { //project gcrossmap //RouteRule gcrossmap
  179. Vector3 pos = 1;
  180. }
  181. message SSGCrossMapLeaveAck { //project game
  182. }
  183. message SSGCrossMapLeaveNtf { //project game
  184. repeated UnitPosAndDir unit_info_list = 1;
  185. }
  186. //客户端1s内发送的位置同步包
  187. message SSGCrossMapSyncPosReq { //project gcrossmap //RouteRule gcrossmap
  188. Vector3 pos = 1; //位置
  189. Vector3 dir = 2; //朝向
  190. int32 is_on_ground = 3; //是否在地面上
  191. int32 cur_space_id = 4; //当前所在场景ID
  192. }
  193. //客户端模拟使用
  194. message SSGCrossMapSyncParamReq { //project gcrossmap //RouteRule gcrossmap
  195. Vector3 pos = 1; //位置
  196. Vector3 dir = 2; //朝向
  197. int32 is_on_ground = 3; //是否在地面上
  198. int32 cur_space_id = 4; //当前所在场景ID
  199. int32 param_id = 5;
  200. }
  201. //不合法的移动时返回错误码
  202. message SSGCrossMapSyncPosAck {
  203. int32 error = 1; //错误码
  204. Vector3 pos = 2; //位置
  205. Vector3 dir = 3; //朝向
  206. }
  207. message SSGCrossMapSyncPosNtf { //project game
  208. repeated UnitPosAndDir sync_unit_list = 1; //是自己则表示自己进入地图成功或者自己的操作成功
  209. }
  210. //参数信息同步广播
  211. message SSGCrossMapSyncParamNtf{ //project game
  212. repeated UnitPosAndDir sync_unit_list = 1;
  213. }
  214. //获取其他玩家角色信息,AOI地图显示使用(注意:每次发送不超过10个玩家,超过10个后服务器不会返回,做保护处理)
  215. message SSGCrossMapOtherUnitShowInfoReq { //project gcrossmap //RouteRule gcrossmap
  216. int32 cur_space_id = 1;
  217. repeated uint64 show_uid_list = 2;
  218. }
  219. message SSGCrossMapOtherUnitShowInfoNtf { //project game
  220. repeated PlayerShowInfo show_info_list = 1; //玩家角色信息
  221. }
  222. //avatar信息同步等数据相关消息(//玩家显示变更通知) 定时更新
  223. message SSGCrossMapUnitShowUpdateNtf { //project gcrossmap //RouteRule gcrossmap
  224. int32 cur_space_id = 1;
  225. repeated PlayerShowInfo show_info_list = 2;
  226. }