Advertisement
Guest User

Untitled

a guest
May 21st, 2019
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 7.61 KB | None | 0 0
  1. public static void SocketItem(EmbedSocket socket, Client.GameState client)
  2.         {
  3.             ConquerItem Item = null;
  4.             ConquerItem Gem = null;
  5.             if (client.Inventory.TryGetItem(socket.ItemUID, out Item) || client.Equipment.TryGetItem(socket.ItemUID) != null)
  6.             {
  7.                 if (client.Equipment.TryGetItem(socket.ItemUID) != null)
  8.                     Item = client.Equipment.TryGetItem(socket.ItemUID);
  9.                 ushort sock = ItemPosition(Item.ID);
  10.                 if (sock == 7 || sock == 9 || sock == 12 || sock == 15 || sock == 16 || sock == 17 || sock == 18 || sock > 19)
  11.                 {
  12.                     client.Send(new Message("Sorry can't make socket in this item !", System.Drawing.Color.Red, Message.Talk));
  13.                     return;
  14.                 }
  15.                 if (client.Inventory.TryGetItem(socket.GemUID, out Gem) || socket.Mode == EmbedSocket.Remove)
  16.                 {
  17.                     switch (socket.Mode)
  18.                     {
  19.                         case EmbedSocket.Add:
  20.                             {
  21.                                 byte gemBase = (byte)(Gem.ID % 1000);
  22.                                 if (Enum.IsDefined(typeof(Game.Enums.Gem), gemBase))
  23.                                 {
  24.                                     switch (socket.Slot)
  25.                                     {
  26.                                         case EmbedSocket.SlotOne:
  27.                                             {
  28.                                                 if ((byte)Item.SocketOne == 255)
  29.                                                 {
  30.                                                     var gem = (Game.Enums.Gem)(Gem.ID % 1000);
  31.                                                     if ((Item.ID >= 201003 && Item.ID <= 201009) && gem != Enums.Gem.NormalThunderGem && gem != Enums.Gem.RefinedThunderGem && gem != Enums.Gem.SuperThunderGem) return;
  32.                                                     if ((Item.ID >= 202003 && Item.ID <= 202009) && gem != Enums.Gem.NormalGloryGem && gem != Enums.Gem.RefinedGloryGem && gem != Enums.Gem.SuperGloryGem) return;
  33.                                                     if ((Item.ID >= 204003 && Item.ID <= 204009) && gem != Enums.Gem.NormalThunderGem && gem != Enums.Gem.RefinedThunderGem && gem != Enums.Gem.SuperThunderGem) return;
  34.                                                     Item.SocketOne = gem;
  35.                                                     Item.Mode = Game.Enums.ItemMode.Update;
  36.                                                     Item.Send(client);
  37.                                                     Database.ConquerItemTable.UpdateSockets(Item);
  38.                                                     client.Inventory.Remove(Gem, Game.Enums.ItemUse.RemoveFromStack);
  39.                                                     break;
  40.                                                 }
  41.                                                 break;
  42.                                             }
  43.                                         case EmbedSocket.SlotTwo:
  44.                                             {
  45.                                                 var gem = (Game.Enums.Gem)(Gem.ID % 1000);
  46.                                                 if ((Item.ID >= 201003 && Item.ID <= 201009) && gem != Enums.Gem.NormalThunderGem && gem != Enums.Gem.RefinedThunderGem && gem != Enums.Gem.SuperThunderGem) return;
  47.                                                 if ((Item.ID >= 202003 && Item.ID <= 202009) && gem != Enums.Gem.NormalGloryGem && gem != Enums.Gem.RefinedGloryGem && gem != Enums.Gem.SuperGloryGem) return;
  48.                                                 if ((Item.ID >= 204003 && Item.ID <= 204009) && gem != Enums.Gem.NormalGloryGem && gem != Enums.Gem.RefinedGloryGem && gem != Enums.Gem.SuperGloryGem) return;
  49.                                                 Item.SocketTwo = gem;
  50.                                                 Item.Mode = Game.Enums.ItemMode.Update;
  51.                                                 Item.Send(client);
  52.                                                 Database.ConquerItemTable.UpdateSockets(Item);
  53.                                                 client.Inventory.Remove(Gem, Game.Enums.ItemUse.RemoveFromStack);
  54.                                                 break;
  55.                                             }
  56.                                     }
  57.                                 }
  58.                                 break;
  59.                             }
  60.                         case EmbedSocket.Remove:
  61.                             {
  62.                                 switch (socket.Slot)
  63.                                 {
  64.                                     case EmbedSocket.SlotOne:
  65.                                         {
  66.                                             if ((byte)Item.SocketOne != 0)
  67.                                             {
  68.                                                 Item.SocketOne = Game.Enums.Gem.EmptySocket;
  69.                                                 if ((byte)Item.SocketTwo != 0 && (byte)Item.SocketTwo != 255)
  70.                                                 {
  71.                                                     Item.SocketTwo = Item.SocketTwo;
  72.                                                     Item.SocketOne = Game.Enums.Gem.EmptySocket;
  73.                                                 }
  74.                                                 Item.Mode = Game.Enums.ItemMode.Update;
  75.                                                 Item.Send(client);
  76.                                                 Database.ConquerItemTable.UpdateSockets(Item);
  77.                                                 break;
  78.                                             }
  79.                                             break;
  80.                                         }
  81.                                     case EmbedSocket.SlotTwo:
  82.                                         {
  83.                                             if ((byte)Item.SocketTwo != 0 && (byte)Item.SocketTwo != 255)
  84.                                             {
  85.                                                 Item.SocketOne = Game.Enums.Gem.EmptySocket;
  86.                                                 Item.SocketTwo = Item.SocketTwo;
  87.                                                 Item.SocketTwo = Game.Enums.Gem.EmptySocket;
  88.                                                 Item.Mode = Game.Enums.ItemMode.Update;
  89.                                                 Item.Send(client);
  90.                                                 Database.ConquerItemTable.UpdateSockets(Item);
  91.                                             }
  92.                                             else
  93.                                             {
  94.                                                 if ((byte)Item.SocketOne != 0)
  95.                                                 {
  96.                                                     Item.SocketOne = Game.Enums.Gem.EmptySocket;
  97.                                                     Item.Mode = Game.Enums.ItemMode.Update;
  98.                                                     Item.Send(client);
  99.                                                     Database.ConquerItemTable.UpdateSockets(Item);
  100.                                                 }
  101.                                             }
  102.                                             break;
  103.                                         }
  104.                                 }
  105.                                 break;
  106.                             }
  107.                     }
  108.                 }
  109.                 client.Send(socket);
  110.                 System.Threading.Thread.Sleep(500);
  111.             }
  112.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement