BattleMessageB2R.cs 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366
  1. using System;
  2. using CommonAI.Zone;
  3. using CommonLang.IO;
  4. using CommonLang.IO.Attribute;
  5. using System.Collections.Generic;
  6. namespace XmdsCommonServer.Message
  7. {
  8. public interface MessagePlayerEventB2R
  9. {
  10. string eventName { get; set; }
  11. string playerId { get; set; }
  12. }
  13. public interface MessageZoneEventB2R
  14. {
  15. string eventName { get; set; }
  16. string instanceId { get; set; }
  17. }
  18. public interface MessageMapEventB2R
  19. {
  20. string eventName { get; set; }
  21. }
  22. /// <summary>
  23. /// 战斗服通知游戏服扣道具.
  24. /// </summary>
  25. [MessageType(0xF000009)]
  26. public class ConsumeItemEventB2R : PlayerEvent, MessagePlayerEventB2R
  27. {
  28. public string eventName { get; set; }
  29. public string playerId { get; set; }
  30. public string Type = null;
  31. public int Qty = 0;
  32. public string Reason = null;
  33. public ConsumeItemEventB2R() { }
  34. public ConsumeItemEventB2R(string p, string t, int q, string r)
  35. {
  36. playerId = p;
  37. Type = t;
  38. Qty = q;
  39. Reason = r;
  40. }
  41. override public void WriteExternal(IOutputStream output)
  42. {
  43. base.WriteExternal(output);
  44. output.PutUTF(playerId);
  45. output.PutUTF(Type);
  46. output.PutS32(Qty);
  47. output.PutUTF(Reason);
  48. }
  49. override public void ReadExternal(IInputStream input)
  50. {
  51. base.ReadExternal(input);
  52. playerId = input.GetUTF();
  53. Type = input.GetUTF();
  54. Qty = input.GetS32();
  55. Reason = input.GetUTF();
  56. }
  57. }
  58. /// <summary>
  59. /// 通知游戏服传送单位.
  60. /// </summary>
  61. [MessageType((0xF000017))]
  62. public class TransUnitEventB2R : PlayerEvent, MessagePlayerEventB2R
  63. {
  64. public string eventName { get; set; }
  65. public string playerId { get; set; }
  66. public int SceneID = 0;
  67. public int TargetX = 0;
  68. public int TargetY = 0;
  69. public TransUnitEventB2R() { }
  70. public override void ReadExternal(IInputStream input)
  71. {
  72. base.ReadExternal(input);
  73. playerId = input.GetUTF();
  74. SceneID = input.GetS32();
  75. TargetX = input.GetS32();
  76. TargetY = input.GetS32();
  77. }
  78. public override void WriteExternal(IOutputStream output)
  79. {
  80. base.WriteExternal(output);
  81. output.PutUTF(playerId);
  82. output.PutS32(SceneID);
  83. output.PutS32(TargetX);
  84. output.PutS32(TargetY);
  85. }
  86. }
  87. /// <summary>
  88. /// 坐骑变更通知.
  89. /// </summary>
  90. [MessageType((0xF000018))]
  91. public class SummonMountEventB2R : PlayerEvent, MessagePlayerEventB2R
  92. {
  93. public string eventName { get; set; }
  94. /// <summary>
  95. /// 单位UUID.
  96. /// </summary>
  97. public string playerId { get; set; }
  98. /// <summary>
  99. /// 坐骑ID.
  100. /// </summary>
  101. public bool IsSummonMount = false;
  102. public override void ReadExternal(IInputStream input)
  103. {
  104. base.ReadExternal(input);
  105. playerId = input.GetUTF();
  106. IsSummonMount = input.GetBool();
  107. }
  108. public override void WriteExternal(IOutputStream output)
  109. {
  110. base.WriteExternal(output);
  111. output.PutUTF(playerId);
  112. output.PutBool(IsSummonMount);
  113. }
  114. }
  115. /// <summary>
  116. /// 通知游戏服弹框.
  117. /// </summary>
  118. [MessageType((0xF000021))]
  119. public class ShowRebirthDialogueB2R : PlayerEvent, MessagePlayerEventB2R
  120. {
  121. public string eventName { get; set; }
  122. /// <summary>
  123. /// 单位UUID.
  124. /// </summary>
  125. public string playerId { get; set; }
  126. /// <summary>
  127. /// 死亡单位UUID.
  128. /// </summary>
  129. public string DeadUnitUUID = null;
  130. /// <summary>
  131. /// 施救者名字.
  132. /// </summary>
  133. public string SaverName = null;
  134. /// <summary>
  135. /// 施救者名字.
  136. /// </summary>
  137. public string SaverUUID = null;
  138. /// <summary>
  139. /// 复活后恢复HP
  140. /// </summary>
  141. public int HP = 0;
  142. /// <summary>
  143. /// 复活后恢复MP
  144. /// </summary>
  145. public int MP = 0;
  146. public override void WriteExternal(IOutputStream output)
  147. {
  148. base.WriteExternal(output);
  149. output.PutUTF(DeadUnitUUID);
  150. output.PutUTF(SaverName);
  151. output.PutUTF(SaverUUID);
  152. output.PutS32(HP);
  153. output.PutS32(MP);
  154. }
  155. public override void ReadExternal(IInputStream input)
  156. {
  157. base.ReadExternal(input);
  158. DeadUnitUUID = input.GetUTF();
  159. SaverName = input.GetUTF();
  160. SaverUUID = input.GetUTF();
  161. HP = input.GetS32();
  162. MP = input.GetS32();
  163. }
  164. }
  165. /// <summary>
  166. /// 通知游戏服触发事件.
  167. /// </summary>
  168. [MessageType((0xFFF0001))]
  169. public class TriggerSceneEventB2R : PlayerEvent, MessagePlayerEventB2R
  170. {
  171. public string EventID = null;
  172. public string playerId { get; set; }
  173. public string eventName { get; set; }
  174. public TriggerSceneEventB2R() { }
  175. public override void ReadExternal(IInputStream input)
  176. {
  177. base.ReadExternal(input);
  178. EventID = input.GetUTF();
  179. playerId = input.GetUTF();
  180. }
  181. public override void WriteExternal(IOutputStream output)
  182. {
  183. base.WriteExternal(output);
  184. output.PutUTF(EventID);
  185. output.PutUTF(playerId);
  186. }
  187. }
  188. /// <summary>
  189. /// 向游戏服发送战报信息.
  190. /// </summary>
  191. [MessageType((0xFFF0002))]
  192. public class BattleReportEventB2R : ZoneEvent, MessageZoneEventB2R
  193. {
  194. public string eventName { get; set; }
  195. /// <summary>
  196. /// 场景号.
  197. /// </summary>
  198. public string instanceId { get; set; }
  199. public List<UnitBattleReportDetail> data = null;
  200. public override void ReadExternal(IInputStream input)
  201. {
  202. instanceId = input.GetUTF();
  203. this.data = input.GetList<UnitBattleReportDetail>(input.GetExt<UnitBattleReportDetail>);
  204. }
  205. public override void WriteExternal(IOutputStream output)
  206. {
  207. output.PutUTF(instanceId);
  208. output.PutList(this.data, output.PutExt);
  209. }
  210. }
  211. /// <summary>
  212. ///单位战报详细信息.
  213. /// </summary>
  214. [MessageType((0xFFF0003))]
  215. public class UnitBattleReportDetail : IExternalizable
  216. {
  217. public uint ID = 0;
  218. /// <summary>
  219. /// 单位UUID
  220. /// </summary>
  221. public string PlayerUUID = null;
  222. /// <summary>
  223. /// 单位模板id
  224. /// </summary>
  225. public int TemplateID = 0;
  226. /// <summary>
  227. /// 单位阵营
  228. /// </summary>
  229. public int Force = 0;
  230. /// <summary>
  231. /// 总伤害.
  232. /// </summary>
  233. public long TotalDamage = 0;
  234. /// <summary>
  235. /// 总治疗量.
  236. /// </summary>
  237. public long TotalHealing = 0;
  238. public void ReadExternal(IInputStream input)
  239. {
  240. ID = input.GetU32();
  241. PlayerUUID = input.GetUTF();
  242. TemplateID = input.GetS32();
  243. Force = input.GetS32();
  244. TotalDamage = input.GetS64();
  245. TotalHealing = input.GetS64();
  246. }
  247. public void WriteExternal(IOutputStream output)
  248. {
  249. output.PutU32(ID);
  250. output.PutUTF(PlayerUUID);
  251. output.PutS32(TemplateID);
  252. output.PutS32(Force);
  253. output.PutS64(TotalDamage);
  254. output.PutS64(TotalHealing);
  255. }
  256. }
  257. /// <summary>
  258. /// 通知游戏服谁击杀了BOSS.
  259. /// </summary>
  260. [MessageType((0xFFF0004))]
  261. public class KillBossEventB2R : ZoneEvent, MessageZoneEventB2R
  262. {
  263. public string eventName { get; set; }
  264. /// <summary>
  265. /// 场景ID.
  266. /// </summary>
  267. public string instanceId { get; set; }
  268. public string PlayerUUID = null;
  269. public override void ReadExternal(IInputStream input)
  270. {
  271. PlayerUUID = input.GetUTF();
  272. instanceId = input.GetUTF();
  273. }
  274. public override void WriteExternal(IOutputStream output)
  275. {
  276. output.PutUTF(PlayerUUID);
  277. output.PutUTF(instanceId);
  278. }
  279. }
  280. /// <summary>
  281. /// 玩家异常.
  282. /// </summary>
  283. [MessageType((0xFFF0005))]
  284. public class PlayerExceptionEventB2R : PlayerEvent, MessagePlayerEventB2R
  285. {
  286. public string playerId { get; set; }
  287. /// <summary>
  288. /// 场景ID.
  289. /// </summary>
  290. public string instanceId { get; set; }
  291. public string eventName { get; set; }
  292. public string reason { get; set; }
  293. }
  294. /// <summary>
  295. /// 山大王小弟护卫事件触发
  296. /// </summary>
  297. [MessageType((0xFFF0006))]
  298. public class MountainKingHelpEventB2R : ZoneEvent, MessageMapEventB2R
  299. {
  300. public string eventName { get; set; }
  301. public int mapId;
  302. /// <summary>
  303. /// 场景ID.
  304. /// </summary>
  305. public int monsterId;
  306. public uint monsterObjectId;
  307. public List<string> players = new List<string>();
  308. public override void ReadExternal(IInputStream input)
  309. {
  310. throw new NotImplementedException();
  311. }
  312. public override void WriteExternal(IOutputStream output)
  313. {
  314. throw new NotImplementedException();
  315. }
  316. }
  317. }