Advertisement
Guest User

Untitled

a guest
Jun 16th, 2019
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 9.42 KB | None | 0 0
  1.  public static void SocketItem(CMsgGemEmbed socket, Client.GameState client)
  2.         {
  3.             MsgItemInfo Item = null;
  4.             MsgItemInfo Gem = null;
  5.             Item = client.GetItem(socket.ItemUID);
  6.             if (Item != null)
  7.             {
  8.                 ushort Itposition = ItemPosition(Item.ID);
  9.                 if (Itposition == 7 || Itposition == 9)
  10.                 {
  11.                     client.Send(new MsgTalk("Sorry can't make socket in this item !", System.Drawing.Color.Red, MsgTalk.Talk));
  12.                     return;
  13.                 }
  14.                 if (client.Inventory.TryGetItem(socket.GemUID, out Gem) || socket.Mode == CMsgGemEmbed.Remove)
  15.                 {
  16.                     switch (socket.Mode)
  17.                     {
  18.                         case CMsgGemEmbed.Add:
  19.                             {
  20.                                 byte gemBase = (byte)(Gem.ID % 1000);
  21.                                 if (Enum.IsDefined(typeof(Enums.Gem), gemBase))
  22.                                 {
  23.                                     Enums.Gem GetGem = (Enums.Gem)(Gem.ID % 1000);
  24.                                     if (Itposition == 10)
  25.                                     {
  26.                                         if (!AllowFan(GetGem))
  27.                                             //if (GetGem != Enums.Gem.NormalThunderGem && GetGem != Enums.Gem.RefinedThunderGem && GetGem != Enums.Gem.SuperThunderGem)
  28.                                             return;
  29.                                     }
  30.                                     if (Itposition == 11)
  31.                                     {
  32.                                         if (!AllowTower(GetGem))
  33.                                             //if (GetGem != Enums.Gem.NormalGloryGem && GetGem != Enums.Gem.RefinedGloryGem && GetGem != Enums.Gem.SuperGloryGem)
  34.                                             return;
  35.                                     }
  36.                                     if (Itposition == 19)
  37.                                     {
  38.                                         if (!AllowWing(GetGem))
  39.                                             return;
  40.                                     }
  41.                                     if (Itposition != 10 && Itposition != 11 && Itposition != 19)
  42.                                     {
  43.                                         if (GetGem == Enums.Gem.NormalThunderGem || GetGem == Enums.Gem.RefinedThunderGem || GetGem == Enums.Gem.SuperThunderGem)
  44.                                             return;
  45.                                         if (GetGem == Enums.Gem.NormalGloryGem || GetGem == Enums.Gem.RefinedGloryGem || GetGem == Enums.Gem.SuperGloryGem)
  46.                                             return;
  47.                                     }
  48.                                     switch (socket.Slot)
  49.                                     {
  50.                                         case CMsgGemEmbed.SlotOne:
  51.                                             {
  52.                                                 if ((byte)Item.SocketOne == 255)
  53.                                                 {
  54.                                                     Item.SocketOne = (Enums.Gem)(Gem.ID % 1000);
  55.                                                     Item.Mode = Enums.ItemMode.Update;
  56.                                                     Item.Send(client);
  57.                                                     if (Item.Position != 0)
  58.                                                         client.LoadItemStats();
  59.                                                     Database.ConquerItemTable.UpdateSockets(Item);
  60.                                                     client.Inventory.Remove(Gem, Enums.ItemUse.Remove);
  61.                                                     break;
  62.                                                 }
  63.                                                 break;
  64.                                             }
  65.                                         case CMsgGemEmbed.SlotTwo:
  66.                                             {
  67.                                                 if ((byte)Item.SocketOne > 0 && (byte)Item.SocketOne < 255)
  68.                                                 {
  69.                                                     if ((byte)Item.SocketTwo == 255)
  70.                                                     {
  71.                                                         Item.SocketTwo = (Enums.Gem)(Gem.ID % 1000);
  72.                                                         Item.Mode = Enums.ItemMode.Update;
  73.                                                         Item.Send(client);
  74.                                                         if (Item.Position != 0)
  75.                                                             client.LoadItemStats();
  76.                                                         Database.ConquerItemTable.UpdateSockets(Item);
  77.                                                         client.Inventory.Remove(Gem, Enums.ItemUse.Remove);
  78.                                                     }
  79.                                                 }
  80.                                                 else if ((byte)Item.SocketOne == 255)
  81.                                                 {
  82.                                                     Item.SocketOne = (Enums.Gem)(Gem.ID % 1000);
  83.                                                     Item.Mode = Enums.ItemMode.Update;
  84.                                                     Item.Send(client);
  85.                                                     if (Item.Position != 0)
  86.                                                         client.LoadItemStats();
  87.                                                     Database.ConquerItemTable.UpdateSockets(Item);
  88.                                                     client.Inventory.Remove(Gem, Enums.ItemUse.Remove);
  89.                                                 }
  90.                                                 break;
  91.                                             }
  92.                                     }
  93.                                 }
  94.                                 break;
  95.                             }
  96.                         case CMsgGemEmbed.Remove:
  97.                             {
  98.                                 switch (socket.Slot)
  99.                                 {
  100.                                     case CMsgGemEmbed.SlotOne:
  101.                                         {
  102.                                             if ((byte)Item.SocketOne != 0)
  103.                                             {
  104.                                                 Item.SocketOne = Enums.Gem.EmptySocket;
  105.                                                 if ((byte)Item.SocketTwo != 0 && (byte)Item.SocketTwo != 255)
  106.                                                 {
  107.                                                     Item.SocketOne = Item.SocketTwo;
  108.                                                     Item.SocketTwo = Enums.Gem.EmptySocket;
  109.                                                 }
  110.                                                 Item.Mode = Enums.ItemMode.Update;
  111.                                                 Item.Send(client);
  112.                                                 Database.ConquerItemTable.UpdateSockets(Item);
  113.                                                 if (Item.Position != 0)
  114.                                                     client.LoadItemStats();
  115.  
  116.                                                 break;
  117.                                             }
  118.                                             break;
  119.                                         }
  120.                                     case CMsgGemEmbed.SlotTwo:
  121.                                         {
  122.                                             if ((byte)Item.SocketTwo != 0 && (byte)Item.SocketTwo != 255)
  123.                                             {
  124.                                                 Item.SocketTwo = Enums.Gem.EmptySocket;
  125.                                                 Item.Mode = Enums.ItemMode.Update;
  126.                                                 Item.Send(client);
  127.                                                 if (Item.Position != 0)
  128.                                                     client.LoadItemStats();
  129.                                                 Database.ConquerItemTable.UpdateSockets(Item);
  130.                                             }
  131.                                             else
  132.                                             {
  133.                                                 if ((byte)Item.SocketOne != 0)
  134.                                                 {
  135.                                                     Item.SocketOne = Enums.Gem.EmptySocket;
  136.                                                     Item.Mode = Enums.ItemMode.Update;
  137.                                                     Item.Send(client);
  138.                                                     if (Item.Position != 0)
  139.                                                         client.LoadItemStats();
  140.                                                     Database.ConquerItemTable.UpdateSockets(Item);
  141.                                                 }
  142.                                             }
  143.                                             break;
  144.                                         }
  145.                                 }
  146.                                 break;
  147.                             }
  148.                     }
  149.                 }
  150.                 client.Send(socket);
  151.             }
  152.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement