Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static void SocketItem(CMsgGemEmbed socket, Client.GameState client)
- {
- MsgItemInfo Item = null;
- MsgItemInfo Gem = null;
- Item = client.GetItem(socket.ItemUID);
- if (Item != null)
- {
- ushort Itposition = ItemPosition(Item.ID);
- if (Itposition == 7 || Itposition == 9)
- {
- client.Send(new MsgTalk("Sorry can't make socket in this item !", System.Drawing.Color.Red, MsgTalk.Talk));
- return;
- }
- if (client.Inventory.TryGetItem(socket.GemUID, out Gem) || socket.Mode == CMsgGemEmbed.Remove)
- {
- switch (socket.Mode)
- {
- case CMsgGemEmbed.Add:
- {
- byte gemBase = (byte)(Gem.ID % 1000);
- if (Enum.IsDefined(typeof(Enums.Gem), gemBase))
- {
- Enums.Gem GetGem = (Enums.Gem)(Gem.ID % 1000);
- if (Itposition == 10)
- {
- if (!AllowFan(GetGem))
- //if (GetGem != Enums.Gem.NormalThunderGem && GetGem != Enums.Gem.RefinedThunderGem && GetGem != Enums.Gem.SuperThunderGem)
- return;
- }
- if (Itposition == 11)
- {
- if (!AllowTower(GetGem))
- //if (GetGem != Enums.Gem.NormalGloryGem && GetGem != Enums.Gem.RefinedGloryGem && GetGem != Enums.Gem.SuperGloryGem)
- return;
- }
- if (Itposition == 19)
- {
- if (!AllowWing(GetGem))
- return;
- }
- if (Itposition != 10 && Itposition != 11 && Itposition != 19)
- {
- if (GetGem == Enums.Gem.NormalThunderGem || GetGem == Enums.Gem.RefinedThunderGem || GetGem == Enums.Gem.SuperThunderGem)
- return;
- if (GetGem == Enums.Gem.NormalGloryGem || GetGem == Enums.Gem.RefinedGloryGem || GetGem == Enums.Gem.SuperGloryGem)
- return;
- }
- switch (socket.Slot)
- {
- case CMsgGemEmbed.SlotOne:
- {
- if ((byte)Item.SocketOne == 255)
- {
- Item.SocketOne = (Enums.Gem)(Gem.ID % 1000);
- Item.Mode = Enums.ItemMode.Update;
- Item.Send(client);
- if (Item.Position != 0)
- client.LoadItemStats();
- Database.ConquerItemTable.UpdateSockets(Item);
- client.Inventory.Remove(Gem, Enums.ItemUse.Remove);
- break;
- }
- break;
- }
- case CMsgGemEmbed.SlotTwo:
- {
- if ((byte)Item.SocketOne > 0 && (byte)Item.SocketOne < 255)
- {
- if ((byte)Item.SocketTwo == 255)
- {
- Item.SocketTwo = (Enums.Gem)(Gem.ID % 1000);
- Item.Mode = Enums.ItemMode.Update;
- Item.Send(client);
- if (Item.Position != 0)
- client.LoadItemStats();
- Database.ConquerItemTable.UpdateSockets(Item);
- client.Inventory.Remove(Gem, Enums.ItemUse.Remove);
- }
- }
- else if ((byte)Item.SocketOne == 255)
- {
- Item.SocketOne = (Enums.Gem)(Gem.ID % 1000);
- Item.Mode = Enums.ItemMode.Update;
- Item.Send(client);
- if (Item.Position != 0)
- client.LoadItemStats();
- Database.ConquerItemTable.UpdateSockets(Item);
- client.Inventory.Remove(Gem, Enums.ItemUse.Remove);
- }
- break;
- }
- }
- }
- break;
- }
- case CMsgGemEmbed.Remove:
- {
- switch (socket.Slot)
- {
- case CMsgGemEmbed.SlotOne:
- {
- if ((byte)Item.SocketOne != 0)
- {
- Item.SocketOne = Enums.Gem.EmptySocket;
- if ((byte)Item.SocketTwo != 0 && (byte)Item.SocketTwo != 255)
- {
- Item.SocketOne = Item.SocketTwo;
- Item.SocketTwo = Enums.Gem.EmptySocket;
- }
- Item.Mode = Enums.ItemMode.Update;
- Item.Send(client);
- Database.ConquerItemTable.UpdateSockets(Item);
- if (Item.Position != 0)
- client.LoadItemStats();
- break;
- }
- break;
- }
- case CMsgGemEmbed.SlotTwo:
- {
- if ((byte)Item.SocketTwo != 0 && (byte)Item.SocketTwo != 255)
- {
- Item.SocketTwo = Enums.Gem.EmptySocket;
- Item.Mode = Enums.ItemMode.Update;
- Item.Send(client);
- if (Item.Position != 0)
- client.LoadItemStats();
- Database.ConquerItemTable.UpdateSockets(Item);
- }
- else
- {
- if ((byte)Item.SocketOne != 0)
- {
- Item.SocketOne = Enums.Gem.EmptySocket;
- Item.Mode = Enums.ItemMode.Update;
- Item.Send(client);
- if (Item.Position != 0)
- client.LoadItemStats();
- Database.ConquerItemTable.UpdateSockets(Item);
- }
- }
- break;
- }
- }
- break;
- }
- }
- }
- client.Send(socket);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement