crossserver.proto 12 KB

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