OuterMessage.cs 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. using System.Collections.Generic;
  2. using MongoDB.Bson.Serialization.Attributes;
  3. using ProtoBuf;
  4. namespace Model
  5. {
  6. [BsonKnownTypes(typeof(AActorMessage))]
  7. public abstract partial class AMessage
  8. {
  9. }
  10. [BsonKnownTypes(typeof(AActorRequest))]
  11. [ProtoInclude((int)Opcode.C2R_Login, typeof(C2R_Login))]
  12. [ProtoInclude((int)Opcode.C2G_LoginGate, typeof(C2G_LoginGate))]
  13. [ProtoInclude((int)Opcode.C2G_EnterMap, typeof(C2G_EnterMap))]
  14. public abstract partial class ARequest : AMessage
  15. {
  16. }
  17. [BsonKnownTypes(typeof(AActorResponse))]
  18. [ProtoInclude((int)Opcode.R2C_Login, typeof(R2C_Login))]
  19. [ProtoInclude((int)Opcode.G2C_LoginGate, typeof(G2C_LoginGate))]
  20. [ProtoInclude((int)Opcode.G2C_EnterMap, typeof(G2C_EnterMap))]
  21. public abstract partial class AResponse : AMessage
  22. {
  23. }
  24. [BsonKnownTypes(typeof(Actor_Test))]
  25. [BsonKnownTypes(typeof(AFrameMessage))]
  26. [BsonKnownTypes(typeof(Actor_CreateUnits))]
  27. [BsonKnownTypes(typeof(FrameMessage))]
  28. [ProtoInclude((int)Opcode.FrameMessage, typeof(FrameMessage))]
  29. [ProtoInclude((int)Opcode.AFrameMessage, typeof(AFrameMessage))]
  30. [ProtoInclude((int)Opcode.Actor_CreateUnits, typeof(Actor_CreateUnits))]
  31. public abstract partial class AActorMessage : AMessage
  32. {
  33. }
  34. [BsonKnownTypes(typeof(Actor_TestRequest))]
  35. [BsonKnownTypes(typeof(Actor_TransferRequest))]
  36. public abstract partial class AActorRequest : ARequest
  37. {
  38. }
  39. [BsonKnownTypes(typeof(Actor_TestResponse))]
  40. [BsonKnownTypes(typeof(Actor_TransferResponse))]
  41. public abstract partial class AActorResponse : AResponse
  42. {
  43. }
  44. /// <summary>
  45. /// 帧消息,继承这个类的消息会经过服务端转发
  46. /// </summary>
  47. [ProtoInclude((int)Opcode.Frame_ClickMap, typeof(Frame_ClickMap))]
  48. [BsonKnownTypes(typeof(Frame_ClickMap))]
  49. public abstract partial class AFrameMessage : AActorMessage
  50. {
  51. }
  52. [ProtoContract]
  53. [Message(Opcode.C2R_Login)]
  54. public class C2R_Login: ARequest
  55. {
  56. [ProtoMember(1)]
  57. public string Account;
  58. [ProtoMember(2)]
  59. public string Password;
  60. }
  61. [ProtoContract]
  62. [Message(Opcode.R2C_Login)]
  63. public class R2C_Login: AResponse
  64. {
  65. [ProtoMember(1)]
  66. public string Address { get; set; }
  67. [ProtoMember(2)]
  68. public long Key { get; set; }
  69. }
  70. [ProtoContract]
  71. [Message(Opcode.C2G_LoginGate)]
  72. public class C2G_LoginGate: ARequest
  73. {
  74. [ProtoMember(1)]
  75. public long Key;
  76. }
  77. [ProtoContract]
  78. [Message(Opcode.G2C_LoginGate)]
  79. public class G2C_LoginGate: AResponse
  80. {
  81. [ProtoMember(1)]
  82. public long PlayerId;
  83. }
  84. [Message(Opcode.Actor_Test)]
  85. public class Actor_Test : AActorMessage
  86. {
  87. public string Info;
  88. }
  89. [Message(Opcode.Actor_TestRequest)]
  90. public class Actor_TestRequest : AActorRequest
  91. {
  92. public string request;
  93. }
  94. [Message(Opcode.Actor_TestResponse)]
  95. public class Actor_TestResponse : AActorResponse
  96. {
  97. public string response;
  98. }
  99. [Message(Opcode.Actor_TransferRequest)]
  100. public class Actor_TransferRequest : AActorRequest
  101. {
  102. public int MapIndex;
  103. }
  104. [Message(Opcode.Actor_TransferResponse)]
  105. public class Actor_TransferResponse : AActorResponse
  106. {
  107. }
  108. [ProtoContract]
  109. [Message(Opcode.C2G_EnterMap)]
  110. public class C2G_EnterMap: ARequest
  111. {
  112. }
  113. [ProtoContract]
  114. [Message(Opcode.G2C_EnterMap)]
  115. public class G2C_EnterMap: AResponse
  116. {
  117. [ProtoMember(1)]
  118. public long UnitId;
  119. [ProtoMember(2)]
  120. public int Count;
  121. }
  122. [ProtoContract]
  123. public class UnitInfo
  124. {
  125. [ProtoMember(1)]
  126. public long UnitId;
  127. [ProtoMember(2)]
  128. public int X;
  129. [ProtoMember(3)]
  130. public int Z;
  131. }
  132. [ProtoContract]
  133. [Message(Opcode.Actor_CreateUnits)]
  134. public class Actor_CreateUnits : AActorMessage
  135. {
  136. [ProtoMember(1)]
  137. public List<UnitInfo> Units = new List<UnitInfo>();
  138. }
  139. public struct FrameMessageInfo
  140. {
  141. public long Id;
  142. public AMessage Message;
  143. }
  144. [ProtoContract]
  145. [Message(Opcode.FrameMessage)]
  146. public class FrameMessage : AActorMessage
  147. {
  148. [ProtoMember(1)]
  149. public int Frame;
  150. [ProtoMember(2)]
  151. public List<AFrameMessage> Messages = new List<AFrameMessage>();
  152. }
  153. [ProtoContract]
  154. [Message(Opcode.Frame_ClickMap)]
  155. public class Frame_ClickMap: AFrameMessage
  156. {
  157. [ProtoMember(1)]
  158. public int X;
  159. [ProtoMember(2)]
  160. public int Z;
  161. }
  162. [Message(Opcode.C2M_Reload)]
  163. public class C2M_Reload: ARequest
  164. {
  165. public AppType AppType;
  166. }
  167. [Message(Opcode.M2C_Reload)]
  168. public class M2C_Reload: AResponse
  169. {
  170. }
  171. [Message(Opcode.C2R_Ping)]
  172. public class C2R_Ping: ARequest
  173. {
  174. }
  175. [Message(Opcode.R2C_Ping)]
  176. public class R2C_Ping: AResponse
  177. {
  178. }
  179. }