CombatDataStruct.proto 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413
  1. syntax = "proto3";
  2. import "MsgStruct.proto";
  3. import "MsgEnum.proto";
  4. package com.fort23.protocol.protobuf;
  5. message CombatData
  6. {
  7. repeated HeroData myHero = 1;
  8. repeated HeroData enemyHero = 2;
  9. }
  10. message HeroData
  11. {
  12. int64 heroGuid = 1;
  13. int64 HP = 2;
  14. int64 Defense = 3;
  15. int64 Attack = 4;
  16. //转码后
  17. int64 AttackSpeed = 5;
  18. int64 SkillChargeSpeed = 6;
  19. int32 Awaken = 7;
  20. int64 Power = 8;
  21. int64 WeaponDps = 9;
  22. int64 ShieldValue = 10;
  23. int64 HeroDps = 11;
  24. int64 Crit = 13;
  25. int64 CritDamage = 14;
  26. int32 HeroLevel = 24;
  27. int64 HitOdds = 26;
  28. int32 MaxSpaceEnergy = 27;
  29. sint32 ID = 30;
  30. // 评分
  31. int32 score = 31;
  32. int64 FallResistance = 32;
  33. int64 DebuffDodge = 33;
  34. int64 SmallSkillsSpeed = 34;
  35. int64 DebuffHitOdds = 35;
  36. int64 addCure = 36;
  37. int64 Proficient = 37;
  38. int64 MaxHarm = 38;
  39. }
  40. /* 英雄信息 */
  41. message CombatHero
  42. {
  43. // 英雄ID
  44. int32 id = 1;
  45. // 英雄等级
  46. int32 level = 2;
  47. // 觉醒等级
  48. int32 awakenLevel = 4;
  49. // 英雄随身装备
  50. repeated Equipment equipment = 5;
  51. // 英雄装备武器
  52. Weapon equipWeapon = 7;
  53. // 英雄装备遗物列表
  54. repeated Relic equipRelics = 14;
  55. // 已装备秘石
  56. Gem equipGem = 17;
  57. // 英雄血量百分百
  58. int32 hpPercent = 18;
  59. // 技能能量百分比 默认是0
  60. int32 skillEnergy = 19;
  61. }
  62. //模拟战斗game服请求验证服的信息
  63. message SimulationCombat
  64. {
  65. CombatType combatType = 1;
  66. repeated CombatHero myHero = 2;
  67. int32 combatSeed = 3;
  68. int32 levelBattleId = 4;
  69. // SimulationLevelBattle levelBattle = 4;
  70. SimulationTestCombat SimulationTestCombat = 5;
  71. SimulationFightTogether SimulationFightTogether = 6;
  72. //随机数
  73. // int32 randomValue = 7;
  74. //左边的英雄 这个准备不用了
  75. repeated VerifyHero leftHero = 8;
  76. //右边的英雄 这个准备不用了
  77. repeated VerifyHero rightHero = 9;
  78. //Buff列表
  79. repeated StageBuff buffs = 10;
  80. //队伍神器ID
  81. int32 goldenRelicId = 11;
  82. //客户端的战斗信息
  83. CombatResult clientCombatResult = 12;
  84. //左边英雄输入
  85. repeated CombatInputCode leftInput=13;
  86. //右边英雄输入(目前没有,看后面有PVP没)
  87. repeated CombatInputCode rightInput=14;
  88. // 副本ID
  89. int32 challengeId = 15;
  90. // 是否委托战斗
  91. bool isAutoFight = 16;
  92. // 图鉴信息
  93. repeated Medal medals = 17;
  94. // 怪物词缀(RogueLike战斗)
  95. repeated MonsterGroup monsterGroups = 18;
  96. // 节点序号(RogueLike战斗)
  97. int32 nodeOrder = 19;
  98. // Rogue配置ID(RogueLike战斗)
  99. int32 rogueConfigId = 20;
  100. // 冒险机关ID
  101. int32 stageTrapId = 21;
  102. // 冒险机关节点ID
  103. int32 stageTrapNodeId = 22;
  104. // 玩家飞艇等级
  105. int32 playerLevel = 23;
  106. //玩家ID
  107. int64 playerId=24;
  108. }
  109. //模拟站到返回给game服的信息
  110. message SimulationCombatResponse
  111. {
  112. CombatType combatType = 1;
  113. SimulationFightTogetherResponse SimulationFightTogetherResponse = 2;
  114. CombatResult combatResult = 3;
  115. }
  116. // 战斗结果信息
  117. message CombatResult {
  118. // 我方的战斗结果英雄数据,需要传到服务器做校验
  119. repeated HeroData myHeroData = 3;
  120. // 敌方的战斗英雄数据,需要传到服务器做校验
  121. repeated HeroData enemyHeroData = 4;
  122. // 战斗是否胜利
  123. bool isWin = 9;
  124. // 通关时间
  125. int32 time = 11;
  126. //开始游戏时的数据
  127. repeated HeroData myStartGameHeroData = 12;
  128. // 开始游戏时的数据
  129. repeated HeroData enemyStartGameHeroData = 13;
  130. }
  131. //共斗返回给game服务器的信息
  132. message SimulationFightTogetherResponse
  133. {
  134. repeated FightTogetherPlayerInfo FightTogetherPlayerInfo = 1;
  135. int32 levelBattleId = 2;
  136. repeated FightTogetherInfo FightTogetherInfo = 3;
  137. int32 combatSeed = 4;
  138. }
  139. message FightTogetherInfo
  140. {
  141. int64 playerId = 1;
  142. int32 port = 3;
  143. string ip = 4;
  144. uint32 conv = 5;
  145. }
  146. message SimulationFightTogether
  147. {
  148. repeated FightTogetherPlayerInfo FightTogetherPlayerInfo = 1;
  149. int32 levelBattleId = 2;
  150. int32 roomId = 3;
  151. // 战斗结束通知url
  152. string notifyUrl = 4;
  153. }
  154. message SimulationLevelBattle
  155. {
  156. int32 levelBattleId = 1;
  157. }
  158. message SimulationTestCombatHeroInfo
  159. {
  160. CombatHero combatHero = 1;
  161. //额外信息 combatHero+=heroData;
  162. HeroData heroData = 2;
  163. //英雄GUID
  164. int32 guid = 3;
  165. }
  166. //模拟测试战斗
  167. message SimulationTestCombat
  168. {
  169. repeated SimulationTestCombatHeroInfo myHero = 1;
  170. repeated SimulationTestCombatHeroInfo enemyHero = 2;
  171. }
  172. enum InputCode
  173. {
  174. Null = 0;
  175. //使用技能
  176. UseSkill = 1;
  177. //堆叠
  178. ToStack = 2;
  179. //使用神器
  180. UseArtifact = 3;
  181. }
  182. //战斗输入命令
  183. message CombatInputCode
  184. {
  185. int32 heroguid = 1;
  186. int32 heroid = 2;
  187. InputCode inputCode = 3;
  188. bool ToStackForIsUp = 4;
  189. //游戏帧
  190. int32 gameFrame = 5;
  191. //编号
  192. int64 serialNumber = 6;
  193. }
  194. message HeroUseSkill
  195. {
  196. int32 skillID = 1;
  197. }
  198. message CombatSynchronizeRequest
  199. {
  200. CombatSynchronizeType CombatSynchronizeType = 1;
  201. FightTogetherCombatPrepareFinish FightTogetherCombatPrepareFinish = 2;
  202. repeated CombatInputCode combatInputCode = 3;
  203. //测试模拟的出战英雄
  204. SimulationFightTogether TestSimulationFightTogether = 6;
  205. //测试用的战斗开始标记
  206. TestStartCombatSynchronize TestStartCombatSynchronize = 7;
  207. }
  208. message CombatSynchronizeResponse
  209. {
  210. CombatSynchronizeType CombatSynchronizeType = 1;
  211. CombatSynchronizeData CombatSynchronizeData = 4;
  212. FightTogetherCombatPrepareStart FightTogetherCombatPrepareStart = 5;
  213. }
  214. message TestStartCombatSynchronize
  215. {
  216. }
  217. message CombatSynchronizeResponsePack
  218. {
  219. repeated CombatSynchronizeResponse allCombatSynchronizeResponse = 1;
  220. int64 time = 6;
  221. }
  222. message FightTogetherCombatPrepareFinish
  223. {
  224. ///编号
  225. int64 serialNumber = 2;
  226. //玩家id
  227. int32 playerId = 3;
  228. }
  229. message FightTogetherPlayerInfo
  230. {
  231. repeated SimulationTestCombatHeroInfo myHero = 1;
  232. ///编号
  233. int64 serialNumber = 2;
  234. //玩家id
  235. int64 playerId = 3;
  236. //神器ID
  237. int32 relicId = 4;
  238. //玩家端口
  239. int32 serverPort = 5;
  240. //玩家状态 0=空闲 1=准备 2=离开
  241. int32 playerSate = 6;
  242. //玩家名字
  243. string playerName = 7;
  244. //玩家等级
  245. int32 level = 8;
  246. // 选择的Buff
  247. int32 buffId = 9;
  248. // 玩家头像
  249. int32 playerIcon = 10;
  250. // 玩家称呼
  251. int32 selectTitle = 11;
  252. // 客户端端口
  253. int32 clientPort = 12;
  254. // 是否是机器人
  255. bool isRobot = 13;
  256. // 战斗力
  257. int64 battlePower = 14;
  258. }
  259. message FightTogetherCombatPrepareStart
  260. {
  261. repeated FightTogetherPlayerInfo myHero = 1;
  262. int32 levelBattleId = 2;
  263. }
  264. message CreateHeroInfo
  265. {
  266. repeated FightTogetherPlayerInfo myHero = 1;
  267. }
  268. //验证时的英雄数据
  269. message VerifyHero
  270. {
  271. int32 heroGuid = 1;
  272. int32 heroId = 2;
  273. int64 maxHarm = 3;
  274. //每一帧的数据
  275. repeated VerifyHeroInfoForFrame verifyHeroInfo = 100;
  276. }
  277. message VerifyHeroInfoForFrame
  278. {
  279. int32 frame = 1;
  280. int32 hashCode = 2;
  281. SynchronizeHeroInfoList SynchronizeHeroInfoKeyList = 101;
  282. }
  283. message CombatAddBuff
  284. {
  285. int32 buffId = 1;
  286. int64 targetSerialNumber = 2;
  287. int32 targetHeroId = 3;
  288. int64 sourceSerialNumber = 4;
  289. int32 sourceHeroId = 5;
  290. int64 buffTime = 6;
  291. }
  292. message CombatSynchronizeData
  293. {
  294. CampInfo myCampInfo = 1;
  295. CampInfo enemyCampInfo = 2;
  296. //游戏帧
  297. int32 gameFrame = 6;
  298. int32 seedInext = 7;
  299. int32 inextp = 8;
  300. int32 randCount = 9;
  301. int32 randCount2 = 10;
  302. //游戏结束
  303. bool isGameOver = 11;
  304. bool isWin = 12;
  305. }
  306. message CampInfo
  307. {
  308. repeated SynchronizeHeroInfo SynchronizeMyHeroInfo = 1;
  309. repeated CombatInputCode SynchronizeMyCombatInputCode = 4;
  310. repeated SynchronizeHarmInfo SynchronizeMyHarmInfo = 7;
  311. repeated CombatAddBuff SynchronizeAddBuff = 14;
  312. }
  313. message SynchronizeHeroInfo
  314. {
  315. int32 sourceHeroGuid = 1;
  316. //英雄状态
  317. int32 heroState = 4;
  318. int64 serialNumber = 5;
  319. int64 attHarm = 20;
  320. int64 bearHarm = 21;
  321. int64 recover = 22;
  322. SynchronizeLocationInfo SynchronizeLocationInfo = 100;
  323. SynchronizeHeroInfoList SynchronizeHeroInfoKeyList = 101;
  324. }
  325. message SynchronizeHeroInfoKeyValue
  326. {
  327. string key = 1;
  328. int64 value = 2;
  329. }
  330. message SynchronizeHeroInfoByteKeyValue
  331. {
  332. string key = 1;
  333. bytes value = 2;
  334. }
  335. //同步伤害
  336. message SynchronizeHarmInfo
  337. {
  338. int64 value = 1;
  339. int64 serialNumber = 2;
  340. int64 targetSerialNumber = 3;
  341. int32 targetHeroId = 4;
  342. int64 sourceSerialNumber = 5;
  343. int32 sourceHeroId = 6;
  344. //1=伤害 2=恢复
  345. int32 harmType = 7;
  346. int32 attTypeValue = 8;
  347. int32 harmTypeValue = 9;
  348. }
  349. message SynchronizeLocationInfo
  350. {
  351. int64 x = 5;
  352. int64 y = 6;
  353. int64 rx = 7;
  354. int64 rz = 8;
  355. }
  356. message SynchronizeHeroInfoList
  357. {
  358. int64 hp = 1;
  359. }