SHARE
TWEET

Packet 1034

a guest Jun 19th, 2017 115 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
RAW Paste Data
Pastebin PRO Summer Special!
Get 40% OFF on Pastebin PRO accounts!
Top