-->

إشترك في النشرة البريدية

إغلاق القائمة
جميع الحقوق محفوظة لـ الاختراع سمارت © 2019

تم تجديد الموقع وسنقوم بالعمل عليه مره اخري


الحل النهائي لمشكلة السوكت والدامج بعد ابجريد الاجنحة


    السلام عليكم وعليكم ورحمة الله وبركاته
    اليوم 
    حل نهائي لمشكلة فتح سوكت والدامج في الايتمات بعد ابجريد الاجنحة.

    من غير مقدمات وكلام كتير

    هتروح لكلاس الباكت هندلر
    تبحث عن 
    static void SocketTalismanWithItem(ItemUsage itemUsage, Client.GameState client)   

     هتروح قافلها بالسالب وتبدلها ب




    static void SocketTalismanWithItem(ItemUsage itemUsage, Client.GameState client)
            {
                
    ConquerItem talisman = client.Equipment.TryGetItem(itemUsage.UID);
                
    ConquerItem item = null;
                for (
    ushort i = 91; i < 91 + 4 * itemUsage.ToArray()[26]; i += 4)
                {
                    
    uint item_swap = BitConverter.ToUInt32(itemUsage.ToArray(), i);

                    if (
    client.Inventory.TryGetItem(item_swap, out item))
                    {
                        if (
    talisman == null)
                            return;
                        if (
    item.ID / 1000 == talisman.ID / 1000)
                            return;
                        if (
    item.Bound == true)
                            return;
                        if (
    talisman.SocketTwo != Game.Enums.Gem.NoSocket)
                            return;

                        
    ushort Points = 0;
                        switch (
    item.ID % 10)
                        {
                            case 
    6: Points += 5; break;
                            case 
    7: Points += 10; break;
                            case 
    8: Points += 40; break;
                            case 
    9: Points += 1000; break;
                        }
                        
    Points += Database.DataHolder.TalismanPlusPoints(item.Plus);

                        
    int position = ItemPosition(item.ID);
                        switch (
    position)
                        {
                            case 
    0: return;
                            case 
    4:
                            case 
    5:
                                if (
    item.ID % 10 >= 8)
                                {
                                    if (
    item.SocketOne != Game.Enums.Gem.NoSocket)
                                        
    Points += 160;
                                    if (
    item.SocketTwo != Game.Enums.Gem.NoSocket)
                                        
    Points += 800;
                                }
                                break;
                            default:
                                if (
    item.ID % 10 >= 8)
                                {
                                    if (
    item.SocketOne != Game.Enums.Gem.NoSocket)
                                        
    Points += 2000;
                                    if (
    item.SocketTwo != Game.Enums.Gem.NoSocket)
                                        
    Points += 6000;
                                }
                                break;
                        }
                        
    talisman.SocketProgress += Points;
                        if (
    talisman.SocketOne == Game.Enums.Gem.NoSocket)
                        {
                            if (
    talisman.SocketProgress >= 8000)
                            {
                                
    talisman.SocketProgress -= 8000;
                                
    talisman.SocketOne = Game.Enums.Gem.EmptySocket;

                                
    talisman.Mode = Game.Enums.ItemMode.Update;
                                
    talisman.Send(client);
                                if (
    talisman.Position != 0)
                                    
    client.LoadItemStats();
                            }
                        }
                        if (
    talisman.SocketOne != Game.Enums.Gem.NoSocket)
                        {
                            if (
    talisman.SocketProgress >= 20000)
                            {
                                
    talisman.SocketProgress = 0;
                                
    talisman.SocketTwo = Game.Enums.Gem.EmptySocket;
                            }
                        }
                        
    talisman.Mode = Game.Enums.ItemMode.Update;
                        
    talisman.Send(client);
                        
    Database.ConquerItemTable.UpdateSocketProgress(talisman);
                        
    Database.ConquerItemTable.UpdateSockets(talisman);
                        if (
    talisman.Position != 0)
                            
    client.LoadItemStats();
                        
    client.Inventory.Remove(item, Game.Enums.ItemUse.Remove);
                    }
                }
            } 

    كده بقي تمام والي اللقاء في درس اخر جديد.

    إرسال تعليق