Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static void SocketItem(EmbedSocket socket, Client.GameState client)
- {
- ConquerItem Item = null;
- ConquerItem Gem = null;
- if (client.Inventory.TryGetItem(socket.ItemUID, out Item) || client.Equipment.TryGetItem(socket.ItemUID) != null)
- {
- if (client.Equipment.TryGetItem(socket.ItemUID) != null)
- Item = client.Equipment.TryGetItem(socket.ItemUID);
- ushort sock = ItemPosition(Item.ID);
- if (sock == 7 || sock == 9 || sock == 12 || sock == 15 || sock == 16 || sock == 17 || sock == 18 || sock > 19)
- {
- client.Send(new Message("Sorry can't make socket in this item !", System.Drawing.Color.Red, Message.Talk));
- return;
- }
- if (client.Inventory.TryGetItem(socket.GemUID, out Gem) || socket.Mode == EmbedSocket.Remove)
- {
- switch (socket.Mode)
- {
- case EmbedSocket.Add:
- {
- byte gemBase = (byte)(Gem.ID % 1000);
- if (Enum.IsDefined(typeof(Game.Enums.Gem), gemBase))
- {
- switch (socket.Slot)
- {
- case EmbedSocket.SlotOne:
- {
- if ((byte)Item.SocketOne == 255)
- {
- var gem = (Game.Enums.Gem)(Gem.ID % 1000);
- if ((Item.ID >= 201003 && Item.ID <= 201009) && gem != Enums.Gem.NormalThunderGem && gem != Enums.Gem.RefinedThunderGem && gem != Enums.Gem.SuperThunderGem) return;
- if ((Item.ID >= 202003 && Item.ID <= 202009) && gem != Enums.Gem.NormalGloryGem && gem != Enums.Gem.RefinedGloryGem && gem != Enums.Gem.SuperGloryGem) return;
- if ((Item.ID >= 204003 && Item.ID <= 204009) && gem != Enums.Gem.NormalThunderGem && gem != Enums.Gem.RefinedThunderGem && gem != Enums.Gem.SuperThunderGem) return;
- Item.SocketOne = gem;
- Item.Mode = Game.Enums.ItemMode.Update;
- Item.Send(client);
- Database.ConquerItemTable.UpdateSockets(Item);
- client.Inventory.Remove(Gem, Game.Enums.ItemUse.RemoveFromStack);
- break;
- }
- break;
- }
- case EmbedSocket.SlotTwo:
- {
- var gem = (Game.Enums.Gem)(Gem.ID % 1000);
- if ((Item.ID >= 201003 && Item.ID <= 201009) && gem != Enums.Gem.NormalThunderGem && gem != Enums.Gem.RefinedThunderGem && gem != Enums.Gem.SuperThunderGem) return;
- if ((Item.ID >= 202003 && Item.ID <= 202009) && gem != Enums.Gem.NormalGloryGem && gem != Enums.Gem.RefinedGloryGem && gem != Enums.Gem.SuperGloryGem) return;
- if ((Item.ID >= 204003 && Item.ID <= 204009) && gem != Enums.Gem.NormalGloryGem && gem != Enums.Gem.RefinedGloryGem && gem != Enums.Gem.SuperGloryGem) return;
- Item.SocketTwo = gem;
- Item.Mode = Game.Enums.ItemMode.Update;
- Item.Send(client);
- Database.ConquerItemTable.UpdateSockets(Item);
- client.Inventory.Remove(Gem, Game.Enums.ItemUse.RemoveFromStack);
- break;
- }
- }
- }
- break;
- }
- case EmbedSocket.Remove:
- {
- switch (socket.Slot)
- {
- case EmbedSocket.SlotOne:
- {
- if ((byte)Item.SocketOne != 0)
- {
- Item.SocketOne = Game.Enums.Gem.EmptySocket;
- if ((byte)Item.SocketTwo != 0 && (byte)Item.SocketTwo != 255)
- {
- Item.SocketTwo = Item.SocketTwo;
- Item.SocketOne = Game.Enums.Gem.EmptySocket;
- }
- Item.Mode = Game.Enums.ItemMode.Update;
- Item.Send(client);
- Database.ConquerItemTable.UpdateSockets(Item);
- break;
- }
- break;
- }
- case EmbedSocket.SlotTwo:
- {
- if ((byte)Item.SocketTwo != 0 && (byte)Item.SocketTwo != 255)
- {
- Item.SocketOne = Game.Enums.Gem.EmptySocket;
- Item.SocketTwo = Item.SocketTwo;
- Item.SocketTwo = Game.Enums.Gem.EmptySocket;
- Item.Mode = Game.Enums.ItemMode.Update;
- Item.Send(client);
- Database.ConquerItemTable.UpdateSockets(Item);
- }
- else
- {
- if ((byte)Item.SocketOne != 0)
- {
- Item.SocketOne = Game.Enums.Gem.EmptySocket;
- Item.Mode = Game.Enums.ItemMode.Update;
- Item.Send(client);
- Database.ConquerItemTable.UpdateSockets(Item);
- }
- }
- break;
- }
- }
- break;
- }
- }
- }
- client.Send(socket);
- System.Threading.Thread.Sleep(500);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement