فوكس كونكر - 🦊 - Conquer
(نسخة قابلة للطباعة من الموضوع)
https://fox.vpscairo.com/t1576
أنقر هنا لمشاهدة الموضوع بهيئته الأصلية

حل مشكلة السوكت فى سورس البورتو
mohammed roshdy 13-08-2019 10:08 مساء
0001112
team.Taheys-Breaks
الموضوع تم حذفة لاكن نرعي التجديد
والحقوق محفوظة لصاحب الموضوع 
team.Taheys-Breaks


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);
            }
        }

team.Taheys-Breaks
team.Taheys-good.bye_
vpscairo.com_

فوكس كونكر - 🦊 - Conquer

Powered by PBBoard ©Version 3.0.3