Advertisement
Guest User

Packet 1034

a guest
Jun 19th, 2017
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.90 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using Conquer_Online_Server.Game;
  6.  
  7. namespace Conquer_Online_Server.Network.GamePackets
  8. {
  9. public class DetainedItem : Writer, Interfaces.IPacket
  10. {
  11. public const ushort DetainPage = 0, ClaimPage = 1;
  12. public byte[] Buffer;
  13. private ConquerItem item;
  14.  
  15. public DetainedItem(bool Create)
  16. {
  17. if (Create)
  18. {
  19. Buffer = new byte[176 + 8];
  20. WriteUInt16(176, 0, Buffer);
  21. WriteUInt16(1034, 2, Buffer);
  22. }
  23. }
  24.  
  25. public uint UID
  26. {
  27. get { return BitConverter.ToUInt32(Buffer, 4); }
  28. set { WriteUInt32(value, 4, Buffer); }
  29. }
  30.  
  31. public uint ItemUID
  32. {
  33. get { return BitConverter.ToUInt32(Buffer, 8); }
  34. set { WriteUInt32(value, 8, Buffer); }
  35. }
  36.  
  37. public uint ItemID
  38. {
  39. get { return BitConverter.ToUInt32(Buffer, 12); }
  40. set { WriteUInt32(value, 12, Buffer); }
  41. }
  42.  
  43. public ushort Durability
  44. {
  45. get { return BitConverter.ToUInt16(Buffer, 16); }
  46. set { WriteUInt16(value, 16, Buffer); }
  47. }
  48.  
  49. public ushort MaximDurability
  50. {
  51. get { return BitConverter.ToUInt16(Buffer, 18); }
  52. set { WriteUInt16(value, 18, Buffer); }
  53. }
  54.  
  55. public byte Page
  56. {
  57. get { return Buffer[20]; }
  58. set { Buffer[20] = value; }
  59. }
  60.  
  61. public uint SocketProgress
  62. {
  63. get { return BitConverter.ToUInt32(Buffer, 24); }
  64. set { WriteUInt32(value, 24, Buffer); }
  65. }
  66.  
  67. public Enums.Gem SocketOne
  68. {
  69. get { return (Enums.Gem)Buffer[28]; }
  70. set { Buffer[28] = (byte)value; }
  71. }
  72. public Enums.Gem SocketTwo
  73. {
  74. get { return (Enums.Gem)Buffer[29]; }
  75. set { Buffer[29] = (byte)value; }
  76. }
  77.  
  78. public Enums.ItemEffect Effect
  79. {
  80. get { return (Enums.ItemEffect)BitConverter.ToUInt16(Buffer, 30); }
  81. set { WriteUInt16((ushort)value, 30, Buffer); }
  82. }
  83.  
  84. public byte Plus
  85. {
  86. get { return Buffer[37]; }
  87. set { Buffer[37] = value; }
  88. }
  89. public byte Bless
  90. {
  91. get { return Buffer[38]; }
  92. set { Buffer[38] = value; }
  93. }
  94. public bool Bound
  95. {
  96. get { return Buffer[39] == 0 ? false : true; }
  97. set { Buffer[39] = (byte)(value ? 1 : 0); }
  98. }
  99. public byte Enchant
  100. {
  101. get { return Buffer[40]; }
  102. set { Buffer[40] = value; }
  103. }
  104.  
  105. public bool Suspicious
  106. {
  107. get { return Buffer[40] == 0 ? false : true; }
  108. set { Buffer[40] = (byte)(value ? 1 : 0); }
  109. }
  110.  
  111. public byte Lock
  112. {
  113. get { return Buffer[47]; }
  114. set { Buffer[47] = value; }
  115. }
  116.  
  117. public uint ItemColor
  118. {
  119. get { return BitConverter.ToUInt32(Buffer, 52); }
  120. set { WriteUInt32(value, 52, Buffer); }
  121. }
  122.  
  123. public uint OwnerUID
  124. {
  125. get { return BitConverter.ToUInt32(Buffer, 120); }
  126. set { WriteUInt32(value, 120, Buffer); }
  127. }
  128.  
  129. public string OwnerName
  130. {
  131. get
  132. {
  133. return Encoding.Default.GetString(Buffer, 124, 16).Split('\0')[0];
  134. }
  135. set
  136. {
  137. if (value.Length > 16)
  138. value = value.Remove(16);
  139. for (int count = 0; count < value.Length; count++)
  140. Buffer[124 + count] = (byte)(value[count]);
  141. }
  142. }
  143.  
  144. public uint GainerUID
  145. {
  146. get { return BitConverter.ToUInt32(Buffer, 140); }
  147. set { WriteUInt32(value, 140, Buffer); }
  148. }
  149.  
  150. public string GainerName
  151. {
  152. get
  153. {
  154. return Encoding.Default.GetString(Buffer, 144, 16).Split('\0')[0];
  155. }
  156. set
  157. {
  158. if (value.Length > 16)
  159. value = value.Remove(16);
  160. for (int count = 0; count < value.Length; count++)
  161. Buffer[144 + count] = (byte)(value[count]);
  162. }
  163. }
  164. /// <summary>
  165. /// YYYYMMDD
  166. /// </summary>
  167. public uint Date2
  168. {
  169. get { return BitConverter.ToUInt32(Buffer, 160); }
  170. set { WriteUInt32(value, 160, Buffer); }
  171. }
  172.  
  173. public uint ConquerPointsCost
  174. {
  175. get { return BitConverter.ToUInt32(Buffer, 168); }
  176. set { WriteUInt32(value, 168, Buffer); }
  177. }
  178. /// <summary>
  179. /// The value set is not the value shown by the client. The client shows 7 - value as days left until pickup.
  180. /// </summary>
  181. public uint DaysLeft
  182. {
  183. get { return (BitConverter.ToUInt32(Buffer, 172)); }
  184. set { WriteUInt32(value, 172, Buffer); }
  185. }
  186.  
  187. public DateTime Date
  188. {
  189. get;
  190. set;
  191. }
  192.  
  193. public void Send(Client.GameState client)
  194. {
  195. client.Send(Buffer);
  196. }
  197.  
  198. public ConquerItem Item
  199. {
  200. get { return item; }
  201. set
  202. {
  203. item = value;
  204. ItemUID = item.UID;
  205. ItemID = item.ID;
  206. ItemColor = (uint)item.Color;
  207. Durability = item.Durability;
  208. MaximDurability = item.MaximDurability;
  209. SocketOne = item.SocketOne;
  210. SocketTwo = item.SocketTwo;
  211. Effect = item.Effect;
  212. Plus = item.Plus;
  213. Bless = item.Bless;
  214. Enchant = item.Enchant;
  215. SocketProgress = item.SocketProgress;
  216. Bound = item.Bound;
  217. Lock = item.Lock;
  218. }
  219. }
  220. public void MakeItReadyToClaim()
  221. {
  222. ItemID = 0;
  223. ItemColor = 0;
  224. Durability = 0;
  225. MaximDurability = 0;
  226. SocketOne = Enums.Gem.NoSocket;
  227. SocketTwo = Enums.Gem.NoSocket;
  228. Effect = Enums.ItemEffect.None;
  229. Plus = 0;
  230. Bless = 0;
  231. Enchant = 0;
  232. SocketProgress = 0;
  233. Bound = false;
  234. Lock = 0;
  235. WriteUInt32(ConquerPointsCost, 164, Buffer);
  236. Page = 2;
  237. }
  238. public byte[] ToArray()
  239. {
  240. return Buffer;
  241. }
  242. public void Deserialize(byte[] buffer)
  243. {
  244. Buffer = buffer;
  245. }
  246. }
  247. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement