Çözüldü Ruh Kilit Sistemi - USE_ITEM Sorunu

Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

Kaiser

⋞ 〈 ☪ 〉 ⋟
Yönetici
Premium Üye
Geliştirici
Yardımsever Üye
Editör
Mesaj
3.659
Çözümler
343
Beğeni
3.499
Puan
1.849
Merhaba, hangi değişiklikten sonra olduğundan emin değilim fakat el ile arttırma kağıdı ve efsun nesnesini kullanamıyorum. Sürüklüyorum ama boşa sürüklemişim gibi oyun içi uyarı-syserr-syslog falan hiç bir tepki yok. Ne arttırma kağıdı çalışıyor, ne de efsun nesnesi. İşin tuhaf tarafı efsun botları ile kullanılabiliyor ama el ile yeni efsun ekleyip değiştiremiyorum.

Konuyla alakalı bir fikri olan var mı acaba?

Protoda bunlarla ilgili hiç bir değişiklik yapmadığıma eminim. Ancak yinede bakmak isteyenler için item_proto:

Kod:
71084    Àç°æºñ¼    ITEM_USE    USE_CHANGE_ATTRIBUTE    1    ANTI_DROP | ANTI_SELL | ANTI_GIVE | ANTI_MYSHOP    ITEM_STACKABLE | LOG    NONE        500    0    0    0    0    LIMIT_NONE    0    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
71085    Àç°¡ºñ¼    ITEM_USE    USE_ADD_ATTRIBUTE    1    ANTI_DROP | ANTI_SELL | ANTI_GIVE | ANTI_MYSHOP    ITEM_STACKABLE | LOG    NONE        500    0    0    0    0    LIMIT_NONE    0    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0

Oyun içindeki diğer 39028 kodlu efsun nesnesi falan da aynı durumda. Daha önceleri mesela giyili iteme efsun atma fixi uygulamıştım ve giyili olan bir iteme sürüklediğimde alttan uyarı vs veriyordu. Ancak şu an locale_string.txt den hiç bir uyarıyı oyun içinde göstermiyor, özetle tepki yok.

SS:
ss.gif


GÜNCELLEME: Sorun efsun nesnesiyle falan alakalı değilmiş. Sürüklenebilir itemlerin hiç biri işlevsel değil. Mesela taşları itemlerin üstüne sürüklediğimde de ekleme penceresi vs. açılmıyor.
 
Son düzenleme:
Çözüm
Sorunu çözdünüz mü bilmiyorum ama uiinventory.py içerisinde bir kod bloğunu komple değiştirmemizi istiyor anlatımda. Orada eksik veya hatalı değişim olabilir. Karşılaştırma yaparak sadece SOUL_BIND ile ilgili kodları ekleyip denediniz mi, denemediyseniz öyle deneyin.
Bu sorunu ne zaman fark ettin bir sistem ekledikten sonramı fark ettin yoksa var en başından berimi vardı
 
Bu sorunu ne zaman fark ettin bir sistem ekledikten sonramı fark ettin yoksa var en başından berimi vardı
En başında yoktu, bir kaç sistem ekledim sonra bir kaç gün bakamadım hiç. Az önce kurcalayım derken fark ettim.
Son eklediğim sistemleri de kontrol ettim ama göze batacak bir farklılık da göremedim.
 
1 eklediğin server efsun botu sisteminden olabilir

2 ruha bağlama sisteminde eksik veyahut hatalı bir ekleme yapmış olabilirsin efsun atmanı engelliyor olabilir

Bunları bir kontrol et ama büyük ihtimalle efsun botundan istersen bir kaldır dene bakalım düzelicekmi
 
1 eklediğin server efsun botu sisteminden olabilir

2 ruha bağlama sisteminde eksik veyahut hatalı bir ekleme yapmış olabilirsin efsun atmanı engelliyor olabilir

Bunları bir kontrol et ama büyük ihtimalle efsun botundan istersen bir kaldır dene bakalım düzelicekmi
Efsun botundan olmasına pek ihtimal vermiyorum çünkü eski filesımda da kurup kullanmıştım, bir sorun olmamıştı.
Ancak ruh sistemini gözden geçireceğim yinede.
 
Eklediğiniz sistemler arasında protolara yeni türler de ekleniyor. En iyisi eklediğiniz kodları tek tek devredışı bırakıp deneme yapmak
 
char_item.cpp'de change_attribute kodlarını aratıp atabilir misin buraya. Belki oralarda bir yanlışlık olmuş olabilir.
 
Açıkcası efsun botlarının düzgün çalıştığını düşününce, burasıyla pek alakası olacağını sanmıyorum ama komple alakalı blokları atayım ben. Umarım burda bir yanlışlık vardır..

Py tarafında efsun nesnesi ve arttırma kağıdı kontrolünü hangi kod yapıyor acaba ? Bir de onu kontrol etmek istiyorum.

C++:
case USE_PUT_INTO_BELT_SOCKET:
                    case USE_PUT_INTO_RING_SOCKET:
                    case USE_PUT_INTO_ACCESSORY_SOCKET:
                    case USE_ADD_ACCESSORY_SOCKET:
                    case USE_CLEAN_SOCKET:
                    case USE_CHANGE_ATTRIBUTE:
                    case USE_CHANGE_ATTRIBUTE2 :
                    case USE_ADD_ATTRIBUTE:
                    case USE_ADD_ATTRIBUTE2:
                        {
                            LPITEM item2;
                            if (!IsValidItemPosition(DestCell) || !(item2 = GetItem(DestCell)))
                                return false;

                            if (item2->IsEquipped())
                            {
                                BuffOnAttr_RemoveBuffsFromItem(item2);
                            }

                            // [NOTE] ÄÚ½ºÆ¬ ¾ÆÀÌÅÛ¿¡´Â ¾ÆÀÌÅÛ ÃÖÃÊ »ı¼º½Ã ·£´ı ¼Ó¼ºÀ» ºÎ¿©ÇϵÇ, Àç°æÀç°¡ µîµîÀº ¸·¾Æ´Ş¶ó´Â ¿äûÀÌ ÀÖ¾úÀ½.
                            // ¿ø·¡ ANTI_CHANGE_ATTRIBUTE °°Àº ¾ÆÀÌÅÛ Flag¸¦ Ãß°¡ÇÏ¿© ±âȹ ·¹º§¿¡¼ À¯¿¬ÇÏ°Ô ÄÁÆ®·Ñ ÇÒ ¼ö ÀÖµµ·Ï ÇÒ ¿¹Á¤À̾úÀ¸³ª
                            // ±×µı°Å ÇÊ¿ä¾øÀ¸´Ï ´ÚÄ¡°í »¡¸® ÇØ´Ş·¡¼ ±×³É ¿©±â¼ ¸·À½... -_-
                            if (ITEM_COSTUME == item2->GetType())
                            {
                                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼ºÀ» º¯°æÇÒ ¼ö ¾ø´Â ¾ÆÀÌÅÛÀÔ´Ï´Ù."));
                                return false;
                            }

                            if (item2->IsExchanging())
                                return false;

                            switch (item->GetSubType())
                            {
                                case USE_CLEAN_SOCKET:
                                    {
                                        int i;
                                        for (i = 0; i < ITEM_SOCKET_MAX_NUM; ++i)
                                        {
                                            if (item2->GetSocket(i) == ITEM_BROKEN_METIN_VNUM)
                                                break;
                                        }

                                        if (i == ITEM_SOCKET_MAX_NUM)
                                        {
                                            ChatPacket(CHAT_TYPE_INFO, LC_TEXT("û¼ÒÇÒ ¼®ÀÌ ¹ÚÇôÀÖÁö ¾Ê½À´Ï´Ù."));
                                            return false;
                                        }

                                        int j = 0;

                                        for (i = 0; i < ITEM_SOCKET_MAX_NUM; ++i)
                                        {
                                            if (item2->GetSocket(i) != ITEM_BROKEN_METIN_VNUM && item2->GetSocket(i) != 0)
                                                item2->SetSocket(j++, item2->GetSocket(i));
                                        }

                                        for (; j < ITEM_SOCKET_MAX_NUM; ++j)
                                        {
                                            if (item2->GetSocket(j) > 0)
                                                item2->SetSocket(j, 1);
                                        }

                                        {
                                            char buf[21];
                                            snprintf(buf, sizeof(buf), "%u", item2->GetID());
                                            LogManager::instance().ItemLog(this, item, "CLEAN_SOCKET", buf);
                                        }

                                        item->SetCount(item->GetCount() - 1);

                                    }
                                    break;

                                case USE_CHANGE_ATTRIBUTE :
                                    if (item2->GetAttributeSetIndex() == -1)
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼ºÀ» º¯°æÇÒ ¼ö ¾ø´Â ¾ÆÀÌÅÛÀÔ´Ï´Ù."));
                                        return false;
                                    }
                                   
#ifdef __SOUL_BIND_SYSTEM__
                                    if (item2->IsSealed())
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You cannot change the attributes of a soulbound item."));
                                        return false;
                                    }
#endif
                                   
                                    if (item2->IsEquipped())
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, "Uzerindeki Esyanin Bonusunu Degistiremezsin!");
                                        return false;
                                    }

                                    if (item2->GetAttributeCount() == 0)
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("º¯°æÇÒ ¼Ó¼ºÀÌ ¾ø½À´Ï´Ù."));
                                        return false;
                                    }

                                    if (GM_PLAYER == GetGMLevel() && false == test_server && false == g_bDisableItemBonusChangeTime)
                                    {
                                        //
                                        // Event Flag ¸¦ ÅëÇØ ÀÌÀü¿¡ ¾ÆÀÌÅÛ ¼Ó¼º º¯°æÀ» ÇÑ ½Ã°£À¸·Î ºÎÅÍ ÃæºĞÇÑ ½Ã°£ÀÌ Èê·¶´ÂÁö °Ë»çÇÏ°í
                                        // ½Ã°£ÀÌ ÃæºĞÈ÷ Èê·¶´Ù¸é ÇöÀç ¼Ó¼ºº¯°æ¿¡ ´ëÇÑ ½Ã°£À» ¼³Á¤ÇØ ÁØ´Ù.
                                        //

                                        DWORD dwChangeItemAttrCycle = quest::CQuestManager::instance().GetEventFlag(msc_szChangeItemAttrCycleFlag);
                                        if (dwChangeItemAttrCycle < msc_dwDefaultChangeItemAttrCycle)
                                            dwChangeItemAttrCycle = msc_dwDefaultChangeItemAttrCycle;

                                        quest::PC* pPC = quest::CQuestManager::instance().GetPC(GetPlayerID());

                                        if (pPC)
                                        {
                                            DWORD dwNowSec = get_global_time();

                                            DWORD dwLastChangeItemAttrSec = pPC->GetFlag(msc_szLastChangeItemAttrFlag);

                                            if (dwLastChangeItemAttrSec + dwChangeItemAttrCycle > dwNowSec)
                                            {
                                                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼ºÀ» ¹Ù²ÛÁö %dºĞ À̳»¿¡´Â ´Ù½Ã º¯°æÇÒ ¼ö ¾ø½À´Ï´Ù.(%d ºĞ ³²À½)"),
                                                        dwChangeItemAttrCycle, dwChangeItemAttrCycle - (dwNowSec - dwLastChangeItemAttrSec));
                                                return false;
                                            }

                                            pPC->SetFlag(msc_szLastChangeItemAttrFlag, dwNowSec);
                                        }
                                    }

                                    if (item->GetSubType() == USE_CHANGE_ATTRIBUTE2)
                                    {
                                        int aiChangeProb[ITEM_ATTRIBUTE_MAX_LEVEL] =
                                        {
                                            0, 0, 30, 40, 3
                                        };

                                        item2->ChangeAttribute(aiChangeProb);
                                    }
                                    else if (item->GetVnum() == 76014)
                                    {
                                        int aiChangeProb[ITEM_ATTRIBUTE_MAX_LEVEL] =
                                        {
                                            0, 10, 50, 39, 1
                                        };

                                        item2->ChangeAttribute(aiChangeProb);
                                    }

                                    else
                                    {
                                        // ¿¬Àç°æ Ư¼öó¸®
                                        // Àı´ë·Î ¿¬Àç°¡ Ãß°¡ ¾ÈµÉ°Å¶ó ÇÏ¿© Çϵå ÄÚµùÇÔ.
                                        if (item->GetVnum() == 71151 || item->GetVnum() == 76023)
                                        {
                                            if ((item2->GetType() == ITEM_WEAPON)
                                                || (item2->GetType() == ITEM_ARMOR && item2->GetSubType() == ARMOR_BODY))
                                            {
                                                bool bCanUse = true;
                                                for (int i = 0; i < ITEM_LIMIT_MAX_NUM; ++i)
                                                {
                                                    if (item2->GetLimitType(i) == LIMIT_LEVEL && item2->GetLimitValue(i) > 40)
                                                    {
                                                        bCanUse = false;
                                                        break;
                                                    }
                                                }
                                                if (false == bCanUse)
                                                {
                                                    ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Àû¿ë ·¹º§º¸´Ù ³ô¾Æ »ç¿ëÀÌ ºÒ°¡´ÉÇÕ´Ï´Ù."));
                                                    break;
                                                }
                                            }
                                            else
                                            {
                                                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¹«±â¿Í °©¿Ê¿¡¸¸ »ç¿ë °¡´ÉÇÕ´Ï´Ù."));
                                                break;
                                            }
                                        }
                                        item2->ChangeAttribute();
                                    }

                                    ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼ºÀ» º¯°æÇÏ¿´½À´Ï´Ù."));
                                    {
                                        char buf[21];
                                        snprintf(buf, sizeof(buf), "%u", item2->GetID());
                                        LogManager::instance().ItemLog(this, item, "CHANGE_ATTRIBUTE", buf);
                                    }

                                    item->SetCount(item->GetCount() - 1);
                                    break;

                                case USE_ADD_ATTRIBUTE :
                                    if (item2->GetAttributeSetIndex() == -1)
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼ºÀ» º¯°æÇÒ ¼ö ¾ø´Â ¾ÆÀÌÅÛÀÔ´Ï´Ù."));
                                        return false;
                                    }
                                   
#ifdef __SOUL_BIND_SYSTEM__
                                    if (item2->IsSealed())
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You cannot change the attributes of a soulbound item."));
                                        return false;
                                    }
#endif
                                   
                                    if (item2->IsEquipped())
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, "Uzerindeki Esyaya Bonus Ekleyemezsin!");
                                        return false;
                                    }

                                    if (item2->GetAttributeCount() < 4)
                                    {
                                        // ¿¬Àç°¡ Ư¼öó¸®
                                        // Àı´ë·Î ¿¬Àç°¡ Ãß°¡ ¾ÈµÉ°Å¶ó ÇÏ¿© Çϵå ÄÚµùÇÔ.
                                        if (item->GetVnum() == 71152 || item->GetVnum() == 76024)
                                        {
                                            if ((item2->GetType() == ITEM_WEAPON)
                                                || (item2->GetType() == ITEM_ARMOR && item2->GetSubType() == ARMOR_BODY))
                                            {
                                                bool bCanUse = true;
                                                for (int i = 0; i < ITEM_LIMIT_MAX_NUM; ++i)
                                                {
                                                    if (item2->GetLimitType(i) == LIMIT_LEVEL && item2->GetLimitValue(i) > 40)
                                                    {
                                                        bCanUse = false;
                                                        break;
                                                    }
                                                }
                                                if (false == bCanUse)
                                                {
                                                    ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Àû¿ë ·¹º§º¸´Ù ³ô¾Æ »ç¿ëÀÌ ºÒ°¡´ÉÇÕ´Ï´Ù."));
                                                    break;
                                                }
                                            }
                                            else
                                            {
                                                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¹«±â¿Í °©¿Ê¿¡¸¸ »ç¿ë °¡´ÉÇÕ´Ï´Ù."));
                                                break;
                                            }
                                        }
                                        char buf[21];
                                        snprintf(buf, sizeof(buf), "%u", item2->GetID());

                                        if (number(1, 100) <= aiItemAttributeAddPercent[item2->GetAttributeCount()])
                                        {
                                            item2->AddAttribute();
                                            ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼º Ãß°¡¿¡ ¼º°øÇÏ¿´½À´Ï´Ù."));

                                            int iAddedIdx = item2->GetAttributeCount() - 1;
                                            LogManager::instance().ItemLog(
                                                    GetPlayerID(),
                                                    item2->GetAttributeType(iAddedIdx),
                                                    item2->GetAttributeValue(iAddedIdx),
                                                    item->GetID(),
                                                    "ADD_ATTRIBUTE_SUCCESS",
                                                    buf,
                                                    GetDesc()->GetHostName(),
                                                    item->GetOriginalVnum());
                                        }
                                        else
                                        {
                                            ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼º Ãß°¡¿¡ ½ÇÆĞÇÏ¿´½À´Ï´Ù."));
                                            LogManager::instance().ItemLog(this, item, "ADD_ATTRIBUTE_FAIL", buf);
                                        }

                                        item->SetCount(item->GetCount() - 1);
                                    }
                                    else
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("´õÀÌ»ó ÀÌ ¾ÆÀÌÅÛÀ» ÀÌ¿ëÇÏ¿© ¼Ó¼ºÀ» Ãß°¡ÇÒ ¼ö ¾ø½À´Ï´Ù."));
                                    }
                                    break;

                                case USE_ADD_ATTRIBUTE2 :
                                    // ÃູÀÇ ±¸½½
                                    // Àç°¡ºñ¼¸¦ ÅëÇØ ¼Ó¼ºÀ» 4°³ Ãß°¡ ½ÃŲ ¾ÆÀÌÅÛ¿¡ ´ëÇؼ ÇϳªÀÇ ¼Ó¼ºÀ» ´õ ºÙ¿©ÁØ´Ù.
                                    if (item2->GetAttributeSetIndex() == -1)
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼ºÀ» º¯°æÇÒ ¼ö ¾ø´Â ¾ÆÀÌÅÛÀÔ´Ï´Ù."));
                                        return false;
                                    }
                                   
#ifdef __SOUL_BIND_SYSTEM__
                                    if (item2->IsSealed())
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You cannot change the attributes of a soulbound item."));
                                        return false;
                                    }
#endif

                                    // ¼Ó¼ºÀÌ ÀÌ¹Ì 4°³ Ãß°¡ µÇ¾úÀ» ¶§¸¸ ¼Ó¼ºÀ» Ãß°¡ °¡´ÉÇÏ´Ù.
                                    if (item2->GetAttributeCount() == 4)
                                    {
                                        char buf[21];
                                        snprintf(buf, sizeof(buf), "%u", item2->GetID());

                                        if (number(1, 100) <= aiItemAttributeAddPercent[item2->GetAttributeCount()])
                                        {
                                            item2->AddAttribute();
                                            ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼º Ãß°¡¿¡ ¼º°øÇÏ¿´½À´Ï´Ù."));

                                            int iAddedIdx = item2->GetAttributeCount() - 1;
                                            LogManager::instance().ItemLog(
                                                    GetPlayerID(),
                                                    item2->GetAttributeType(iAddedIdx),
                                                    item2->GetAttributeValue(iAddedIdx),
                                                    item->GetID(),
                                                    "ADD_ATTRIBUTE2_SUCCESS",
                                                    buf,
                                                    GetDesc()->GetHostName(),
                                                    item->GetOriginalVnum());
                                        }
                                        else
                                        {
                                            ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼º Ãß°¡¿¡ ½ÇÆĞÇÏ¿´½À´Ï´Ù."));
                                            LogManager::instance().ItemLog(this, item, "ADD_ATTRIBUTE2_FAIL", buf);
                                        }

                                        item->SetCount(item->GetCount() - 1);
                                    }
                                    else if (item2->GetAttributeCount() == 5)
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("´õ ÀÌ»ó ÀÌ ¾ÆÀÌÅÛÀ» ÀÌ¿ëÇÏ¿© ¼Ó¼ºÀ» Ãß°¡ÇÒ ¼ö ¾ø½À´Ï´Ù."));
                                    }
                                    else if (item2->GetAttributeCount() < 4)
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¸ÕÀú Àç°¡ºñ¼¸¦ ÀÌ¿ëÇÏ¿© ¼Ó¼ºÀ» Ãß°¡½ÃÄÑ ÁÖ¼¼¿ä."));
                                    }
                                    else
                                    {
                                        // wtf ?!
                                        sys_err("ADD_ATTRIBUTE2 : Item has wrong AttributeCount(%d)", item2->GetAttributeCount());
                                    }
                                    break;

                                case USE_ADD_ACCESSORY_SOCKET:
                                    {
                                        char buf[21];
                                        snprintf(buf, sizeof(buf), "%u", item2->GetID());

                                        if (item2->IsAccessoryForSocket())
                                        {
                                            if (item2->GetAccessorySocketMaxGrade() < ITEM_ACCESSORY_SOCKET_MAX_NUM)
                                            {
                                                if (number(1, 100) <= 50)
                                                {
                                                    item2->SetAccessorySocketMaxGrade(item2->GetAccessorySocketMaxGrade() + 1);
                                                    ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼ÒÄÏÀÌ ¼º°øÀûÀ¸·Î Ãß°¡µÇ¾ú½À´Ï´Ù."));
                                                    LogManager::instance().ItemLog(this, item, "ADD_SOCKET_SUCCESS", buf);
                                                }
                                                else
                                                {
                                                    ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼ÒÄÏ Ãß°¡¿¡ ½ÇÆĞÇÏ¿´½À´Ï´Ù."));
                                                    LogManager::instance().ItemLog(this, item, "ADD_SOCKET_FAIL", buf);
                                                }

                                                item->SetCount(item->GetCount() - 1);
                                            }
                                            else
                                            {
                                                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ÀÌ ¾×¼¼¼¸®¿¡´Â ´õÀÌ»ó ¼ÒÄÏÀ» Ãß°¡ÇÒ °ø°£ÀÌ ¾ø½À´Ï´Ù."));
                                            }
                                        }
                                        else
                                        {
                                            ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ÀÌ ¾ÆÀÌÅÛÀ¸·Î ¼ÒÄÏÀ» Ãß°¡ÇÒ ¼ö ¾ø´Â ¾ÆÀÌÅÛÀÔ´Ï´Ù."));
                                        }
                                    }
                                    break;

                                case USE_PUT_INTO_BELT_SOCKET:
                                case USE_PUT_INTO_ACCESSORY_SOCKET:
                                    if (item2->IsAccessoryForSocket() && item->CanPutInto(item2))
                                    {
                                        char buf[21];
                                        snprintf(buf, sizeof(buf), "%u", item2->GetID());

                                        if (item2->GetAccessorySocketGrade() < item2->GetAccessorySocketMaxGrade())
                                        {
                                            if (number(1, 100) <= aiAccessorySocketPutPct[item2->GetAccessorySocketGrade()])
                                            {
                                                item2->SetAccessorySocketGrade(item2->GetAccessorySocketGrade() + 1);
                                                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ÀåÂø¿¡ ¼º°øÇÏ¿´½À´Ï´Ù."));
                                                LogManager::instance().ItemLog(this, item, "PUT_SOCKET_SUCCESS", buf);
                                            }
                                            else
                                            {
                                                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ÀåÂø¿¡ ½ÇÆĞÇÏ¿´½À´Ï´Ù."));
                                                LogManager::instance().ItemLog(this, item, "PUT_SOCKET_FAIL", buf);
                                            }

                                            item->SetCount(item->GetCount() - 1);
                                        }
                                        else
                                        {
                                            if (item2->GetAccessorySocketMaxGrade() == 0)
                                                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¸ÕÀú ´ÙÀ̾Ƹóµå·Î ¾Ç¼¼¼¸®¿¡ ¼ÒÄÏÀ» Ãß°¡ÇؾßÇÕ´Ï´Ù."));
                                            else if (item2->GetAccessorySocketMaxGrade() < ITEM_ACCESSORY_SOCKET_MAX_NUM)
                                            {
                                                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ÀÌ ¾×¼¼¼¸®¿¡´Â ´õÀÌ»ó ÀåÂøÇÒ ¼ÒÄÏÀÌ ¾ø½À´Ï´Ù."));
                                                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("´ÙÀ̾Ƹóµå·Î ¼ÒÄÏÀ» Ãß°¡ÇؾßÇÕ´Ï´Ù."));
                                            }
                                            else
                                                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ÀÌ ¾×¼¼¼¸®¿¡´Â ´õÀÌ»ó º¸¼®À» ÀåÂøÇÒ ¼ö ¾ø½À´Ï´Ù."));
                                        }
                                    }
                                    else
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ÀÌ ¾ÆÀÌÅÛÀ» ÀåÂøÇÒ ¼ö ¾ø½À´Ï´Ù."));
                                    }
                                    break;
                            }
                            if (item2->IsEquipped())
                            {
                                BuffOnAttr_AddBuffsFromItem(item2);
                            }
                        }
                        break;
 
Konuya eklenen güncelleme sebebi ile yeni yorum;
uiinventory’deki kodları kontrol edin. Hatta konsola yazdırmayı filan de deneyin. Python’da düzgün çalışıp çalışmadığını bu şekilde fark edebilirsiniz.
 
Açıkcası efsun botlarının düzgün çalıştığını düşününce, burasıyla pek alakası olacağını sanmıyorum ama komple alakalı blokları atayım ben. Umarım burda bir yanlışlık vardır..

Py tarafında efsun nesnesi ve arttırma kağıdı kontrolünü hangi kod yapıyor acaba ? Bir de onu kontrol etmek istiyorum.

C++:
case USE_PUT_INTO_BELT_SOCKET:
                    case USE_PUT_INTO_RING_SOCKET:
                    case USE_PUT_INTO_ACCESSORY_SOCKET:
                    case USE_ADD_ACCESSORY_SOCKET:
                    case USE_CLEAN_SOCKET:
                    case USE_CHANGE_ATTRIBUTE:
                    case USE_CHANGE_ATTRIBUTE2 :
                    case USE_ADD_ATTRIBUTE:
                    case USE_ADD_ATTRIBUTE2:
                        {
                            LPITEM item2;
                            if (!IsValidItemPosition(DestCell) || !(item2 = GetItem(DestCell)))
                                return false;

                            if (item2->IsEquipped())
                            {
                                BuffOnAttr_RemoveBuffsFromItem(item2);
                            }

                            // [NOTE] ÄÚ½ºÆ¬ ¾ÆÀÌÅÛ¿¡´Â ¾ÆÀÌÅÛ ÃÖÃÊ »ı¼º½Ã ·£´ı ¼Ó¼ºÀ» ºÎ¿©ÇϵÇ, Àç°æÀç°¡ µîµîÀº ¸·¾Æ´Ş¶ó´Â ¿äûÀÌ ÀÖ¾úÀ½.
                            // ¿ø·¡ ANTI_CHANGE_ATTRIBUTE °°Àº ¾ÆÀÌÅÛ Flag¸¦ Ãß°¡ÇÏ¿© ±âȹ ·¹º§¿¡¼ À¯¿¬ÇÏ°Ô ÄÁÆ®·Ñ ÇÒ ¼ö ÀÖµµ·Ï ÇÒ ¿¹Á¤À̾úÀ¸³ª
                            // ±×µı°Å ÇÊ¿ä¾øÀ¸´Ï ´ÚÄ¡°í »¡¸® ÇØ´Ş·¡¼ ±×³É ¿©±â¼ ¸·À½... -_-
                            if (ITEM_COSTUME == item2->GetType())
                            {
                                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼ºÀ» º¯°æÇÒ ¼ö ¾ø´Â ¾ÆÀÌÅÛÀÔ´Ï´Ù."));
                                return false;
                            }

                            if (item2->IsExchanging())
                                return false;

                            switch (item->GetSubType())
                            {
                                case USE_CLEAN_SOCKET:
                                    {
                                        int i;
                                        for (i = 0; i < ITEM_SOCKET_MAX_NUM; ++i)
                                        {
                                            if (item2->GetSocket(i) == ITEM_BROKEN_METIN_VNUM)
                                                break;
                                        }

                                        if (i == ITEM_SOCKET_MAX_NUM)
                                        {
                                            ChatPacket(CHAT_TYPE_INFO, LC_TEXT("û¼ÒÇÒ ¼®ÀÌ ¹ÚÇôÀÖÁö ¾Ê½À´Ï´Ù."));
                                            return false;
                                        }

                                        int j = 0;

                                        for (i = 0; i < ITEM_SOCKET_MAX_NUM; ++i)
                                        {
                                            if (item2->GetSocket(i) != ITEM_BROKEN_METIN_VNUM && item2->GetSocket(i) != 0)
                                                item2->SetSocket(j++, item2->GetSocket(i));
                                        }

                                        for (; j < ITEM_SOCKET_MAX_NUM; ++j)
                                        {
                                            if (item2->GetSocket(j) > 0)
                                                item2->SetSocket(j, 1);
                                        }

                                        {
                                            char buf[21];
                                            snprintf(buf, sizeof(buf), "%u", item2->GetID());
                                            LogManager::instance().ItemLog(this, item, "CLEAN_SOCKET", buf);
                                        }

                                        item->SetCount(item->GetCount() - 1);

                                    }
                                    break;

                                case USE_CHANGE_ATTRIBUTE :
                                    if (item2->GetAttributeSetIndex() == -1)
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼ºÀ» º¯°æÇÒ ¼ö ¾ø´Â ¾ÆÀÌÅÛÀÔ´Ï´Ù."));
                                        return false;
                                    }
                                 
#ifdef __SOUL_BIND_SYSTEM__
                                    if (item2->IsSealed())
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You cannot change the attributes of a soulbound item."));
                                        return false;
                                    }
#endif
                                 
                                    if (item2->IsEquipped())
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, "Uzerindeki Esyanin Bonusunu Degistiremezsin!");
                                        return false;
                                    }

                                    if (item2->GetAttributeCount() == 0)
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("º¯°æÇÒ ¼Ó¼ºÀÌ ¾ø½À´Ï´Ù."));
                                        return false;
                                    }

                                    if (GM_PLAYER == GetGMLevel() && false == test_server && false == g_bDisableItemBonusChangeTime)
                                    {
                                        //
                                        // Event Flag ¸¦ ÅëÇØ ÀÌÀü¿¡ ¾ÆÀÌÅÛ ¼Ó¼º º¯°æÀ» ÇÑ ½Ã°£À¸·Î ºÎÅÍ ÃæºĞÇÑ ½Ã°£ÀÌ Èê·¶´ÂÁö °Ë»çÇÏ°í
                                        // ½Ã°£ÀÌ ÃæºĞÈ÷ Èê·¶´Ù¸é ÇöÀç ¼Ó¼ºº¯°æ¿¡ ´ëÇÑ ½Ã°£À» ¼³Á¤ÇØ ÁØ´Ù.
                                        //

                                        DWORD dwChangeItemAttrCycle = quest::CQuestManager::instance().GetEventFlag(msc_szChangeItemAttrCycleFlag);
                                        if (dwChangeItemAttrCycle < msc_dwDefaultChangeItemAttrCycle)
                                            dwChangeItemAttrCycle = msc_dwDefaultChangeItemAttrCycle;

                                        quest::PC* pPC = quest::CQuestManager::instance().GetPC(GetPlayerID());

                                        if (pPC)
                                        {
                                            DWORD dwNowSec = get_global_time();

                                            DWORD dwLastChangeItemAttrSec = pPC->GetFlag(msc_szLastChangeItemAttrFlag);

                                            if (dwLastChangeItemAttrSec + dwChangeItemAttrCycle > dwNowSec)
                                            {
                                                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼ºÀ» ¹Ù²ÛÁö %dºĞ À̳»¿¡´Â ´Ù½Ã º¯°æÇÒ ¼ö ¾ø½À´Ï´Ù.(%d ºĞ ³²À½)"),
                                                        dwChangeItemAttrCycle, dwChangeItemAttrCycle - (dwNowSec - dwLastChangeItemAttrSec));
                                                return false;
                                            }

                                            pPC->SetFlag(msc_szLastChangeItemAttrFlag, dwNowSec);
                                        }
                                    }

                                    if (item->GetSubType() == USE_CHANGE_ATTRIBUTE2)
                                    {
                                        int aiChangeProb[ITEM_ATTRIBUTE_MAX_LEVEL] =
                                        {
                                            0, 0, 30, 40, 3
                                        };

                                        item2->ChangeAttribute(aiChangeProb);
                                    }
                                    else if (item->GetVnum() == 76014)
                                    {
                                        int aiChangeProb[ITEM_ATTRIBUTE_MAX_LEVEL] =
                                        {
                                            0, 10, 50, 39, 1
                                        };

                                        item2->ChangeAttribute(aiChangeProb);
                                    }

                                    else
                                    {
                                        // ¿¬Àç°æ Ư¼öó¸®
                                        // Àı´ë·Î ¿¬Àç°¡ Ãß°¡ ¾ÈµÉ°Å¶ó ÇÏ¿© Çϵå ÄÚµùÇÔ.
                                        if (item->GetVnum() == 71151 || item->GetVnum() == 76023)
                                        {
                                            if ((item2->GetType() == ITEM_WEAPON)
                                                || (item2->GetType() == ITEM_ARMOR && item2->GetSubType() == ARMOR_BODY))
                                            {
                                                bool bCanUse = true;
                                                for (int i = 0; i < ITEM_LIMIT_MAX_NUM; ++i)
                                                {
                                                    if (item2->GetLimitType(i) == LIMIT_LEVEL && item2->GetLimitValue(i) > 40)
                                                    {
                                                        bCanUse = false;
                                                        break;
                                                    }
                                                }
                                                if (false == bCanUse)
                                                {
                                                    ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Àû¿ë ·¹º§º¸´Ù ³ô¾Æ »ç¿ëÀÌ ºÒ°¡´ÉÇÕ´Ï´Ù."));
                                                    break;
                                                }
                                            }
                                            else
                                            {
                                                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¹«±â¿Í °©¿Ê¿¡¸¸ »ç¿ë °¡´ÉÇÕ´Ï´Ù."));
                                                break;
                                            }
                                        }
                                        item2->ChangeAttribute();
                                    }

                                    ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼ºÀ» º¯°æÇÏ¿´½À´Ï´Ù."));
                                    {
                                        char buf[21];
                                        snprintf(buf, sizeof(buf), "%u", item2->GetID());
                                        LogManager::instance().ItemLog(this, item, "CHANGE_ATTRIBUTE", buf);
                                    }

                                    item->SetCount(item->GetCount() - 1);
                                    break;

                                case USE_ADD_ATTRIBUTE :
                                    if (item2->GetAttributeSetIndex() == -1)
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼ºÀ» º¯°æÇÒ ¼ö ¾ø´Â ¾ÆÀÌÅÛÀÔ´Ï´Ù."));
                                        return false;
                                    }
                                 
#ifdef __SOUL_BIND_SYSTEM__
                                    if (item2->IsSealed())
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You cannot change the attributes of a soulbound item."));
                                        return false;
                                    }
#endif
                                 
                                    if (item2->IsEquipped())
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, "Uzerindeki Esyaya Bonus Ekleyemezsin!");
                                        return false;
                                    }

                                    if (item2->GetAttributeCount() < 4)
                                    {
                                        // ¿¬Àç°¡ Ư¼öó¸®
                                        // Àı´ë·Î ¿¬Àç°¡ Ãß°¡ ¾ÈµÉ°Å¶ó ÇÏ¿© Çϵå ÄÚµùÇÔ.
                                        if (item->GetVnum() == 71152 || item->GetVnum() == 76024)
                                        {
                                            if ((item2->GetType() == ITEM_WEAPON)
                                                || (item2->GetType() == ITEM_ARMOR && item2->GetSubType() == ARMOR_BODY))
                                            {
                                                bool bCanUse = true;
                                                for (int i = 0; i < ITEM_LIMIT_MAX_NUM; ++i)
                                                {
                                                    if (item2->GetLimitType(i) == LIMIT_LEVEL && item2->GetLimitValue(i) > 40)
                                                    {
                                                        bCanUse = false;
                                                        break;
                                                    }
                                                }
                                                if (false == bCanUse)
                                                {
                                                    ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Àû¿ë ·¹º§º¸´Ù ³ô¾Æ »ç¿ëÀÌ ºÒ°¡´ÉÇÕ´Ï´Ù."));
                                                    break;
                                                }
                                            }
                                            else
                                            {
                                                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¹«±â¿Í °©¿Ê¿¡¸¸ »ç¿ë °¡´ÉÇÕ´Ï´Ù."));
                                                break;
                                            }
                                        }
                                        char buf[21];
                                        snprintf(buf, sizeof(buf), "%u", item2->GetID());

                                        if (number(1, 100) <= aiItemAttributeAddPercent[item2->GetAttributeCount()])
                                        {
                                            item2->AddAttribute();
                                            ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼º Ãß°¡¿¡ ¼º°øÇÏ¿´½À´Ï´Ù."));

                                            int iAddedIdx = item2->GetAttributeCount() - 1;
                                            LogManager::instance().ItemLog(
                                                    GetPlayerID(),
                                                    item2->GetAttributeType(iAddedIdx),
                                                    item2->GetAttributeValue(iAddedIdx),
                                                    item->GetID(),
                                                    "ADD_ATTRIBUTE_SUCCESS",
                                                    buf,
                                                    GetDesc()->GetHostName(),
                                                    item->GetOriginalVnum());
                                        }
                                        else
                                        {
                                            ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼º Ãß°¡¿¡ ½ÇÆĞÇÏ¿´½À´Ï´Ù."));
                                            LogManager::instance().ItemLog(this, item, "ADD_ATTRIBUTE_FAIL", buf);
                                        }

                                        item->SetCount(item->GetCount() - 1);
                                    }
                                    else
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("´õÀÌ»ó ÀÌ ¾ÆÀÌÅÛÀ» ÀÌ¿ëÇÏ¿© ¼Ó¼ºÀ» Ãß°¡ÇÒ ¼ö ¾ø½À´Ï´Ù."));
                                    }
                                    break;

                                case USE_ADD_ATTRIBUTE2 :
                                    // ÃູÀÇ ±¸½½
                                    // Àç°¡ºñ¼¸¦ ÅëÇØ ¼Ó¼ºÀ» 4°³ Ãß°¡ ½ÃŲ ¾ÆÀÌÅÛ¿¡ ´ëÇؼ ÇϳªÀÇ ¼Ó¼ºÀ» ´õ ºÙ¿©ÁØ´Ù.
                                    if (item2->GetAttributeSetIndex() == -1)
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼ºÀ» º¯°æÇÒ ¼ö ¾ø´Â ¾ÆÀÌÅÛÀÔ´Ï´Ù."));
                                        return false;
                                    }
                                 
#ifdef __SOUL_BIND_SYSTEM__
                                    if (item2->IsSealed())
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You cannot change the attributes of a soulbound item."));
                                        return false;
                                    }
#endif

                                    // ¼Ó¼ºÀÌ ÀÌ¹Ì 4°³ Ãß°¡ µÇ¾úÀ» ¶§¸¸ ¼Ó¼ºÀ» Ãß°¡ °¡´ÉÇÏ´Ù.
                                    if (item2->GetAttributeCount() == 4)
                                    {
                                        char buf[21];
                                        snprintf(buf, sizeof(buf), "%u", item2->GetID());

                                        if (number(1, 100) <= aiItemAttributeAddPercent[item2->GetAttributeCount()])
                                        {
                                            item2->AddAttribute();
                                            ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼º Ãß°¡¿¡ ¼º°øÇÏ¿´½À´Ï´Ù."));

                                            int iAddedIdx = item2->GetAttributeCount() - 1;
                                            LogManager::instance().ItemLog(
                                                    GetPlayerID(),
                                                    item2->GetAttributeType(iAddedIdx),
                                                    item2->GetAttributeValue(iAddedIdx),
                                                    item->GetID(),
                                                    "ADD_ATTRIBUTE2_SUCCESS",
                                                    buf,
                                                    GetDesc()->GetHostName(),
                                                    item->GetOriginalVnum());
                                        }
                                        else
                                        {
                                            ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼º Ãß°¡¿¡ ½ÇÆĞÇÏ¿´½À´Ï´Ù."));
                                            LogManager::instance().ItemLog(this, item, "ADD_ATTRIBUTE2_FAIL", buf);
                                        }

                                        item->SetCount(item->GetCount() - 1);
                                    }
                                    else if (item2->GetAttributeCount() == 5)
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("´õ ÀÌ»ó ÀÌ ¾ÆÀÌÅÛÀ» ÀÌ¿ëÇÏ¿© ¼Ó¼ºÀ» Ãß°¡ÇÒ ¼ö ¾ø½À´Ï´Ù."));
                                    }
                                    else if (item2->GetAttributeCount() < 4)
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¸ÕÀú Àç°¡ºñ¼¸¦ ÀÌ¿ëÇÏ¿© ¼Ó¼ºÀ» Ãß°¡½ÃÄÑ ÁÖ¼¼¿ä."));
                                    }
                                    else
                                    {
                                        // wtf ?!
                                        sys_err("ADD_ATTRIBUTE2 : Item has wrong AttributeCount(%d)", item2->GetAttributeCount());
                                    }
                                    break;

                                case USE_ADD_ACCESSORY_SOCKET:
                                    {
                                        char buf[21];
                                        snprintf(buf, sizeof(buf), "%u", item2->GetID());

                                        if (item2->IsAccessoryForSocket())
                                        {
                                            if (item2->GetAccessorySocketMaxGrade() < ITEM_ACCESSORY_SOCKET_MAX_NUM)
                                            {
                                                if (number(1, 100) <= 50)
                                                {
                                                    item2->SetAccessorySocketMaxGrade(item2->GetAccessorySocketMaxGrade() + 1);
                                                    ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼ÒÄÏÀÌ ¼º°øÀûÀ¸·Î Ãß°¡µÇ¾ú½À´Ï´Ù."));
                                                    LogManager::instance().ItemLog(this, item, "ADD_SOCKET_SUCCESS", buf);
                                                }
                                                else
                                                {
                                                    ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼ÒÄÏ Ãß°¡¿¡ ½ÇÆĞÇÏ¿´½À´Ï´Ù."));
                                                    LogManager::instance().ItemLog(this, item, "ADD_SOCKET_FAIL", buf);
                                                }

                                                item->SetCount(item->GetCount() - 1);
                                            }
                                            else
                                            {
                                                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ÀÌ ¾×¼¼¼¸®¿¡´Â ´õÀÌ»ó ¼ÒÄÏÀ» Ãß°¡ÇÒ °ø°£ÀÌ ¾ø½À´Ï´Ù."));
                                            }
                                        }
                                        else
                                        {
                                            ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ÀÌ ¾ÆÀÌÅÛÀ¸·Î ¼ÒÄÏÀ» Ãß°¡ÇÒ ¼ö ¾ø´Â ¾ÆÀÌÅÛÀÔ´Ï´Ù."));
                                        }
                                    }
                                    break;

                                case USE_PUT_INTO_BELT_SOCKET:
                                case USE_PUT_INTO_ACCESSORY_SOCKET:
                                    if (item2->IsAccessoryForSocket() && item->CanPutInto(item2))
                                    {
                                        char buf[21];
                                        snprintf(buf, sizeof(buf), "%u", item2->GetID());

                                        if (item2->GetAccessorySocketGrade() < item2->GetAccessorySocketMaxGrade())
                                        {
                                            if (number(1, 100) <= aiAccessorySocketPutPct[item2->GetAccessorySocketGrade()])
                                            {
                                                item2->SetAccessorySocketGrade(item2->GetAccessorySocketGrade() + 1);
                                                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ÀåÂø¿¡ ¼º°øÇÏ¿´½À´Ï´Ù."));
                                                LogManager::instance().ItemLog(this, item, "PUT_SOCKET_SUCCESS", buf);
                                            }
                                            else
                                            {
                                                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ÀåÂø¿¡ ½ÇÆĞÇÏ¿´½À´Ï´Ù."));
                                                LogManager::instance().ItemLog(this, item, "PUT_SOCKET_FAIL", buf);
                                            }

                                            item->SetCount(item->GetCount() - 1);
                                        }
                                        else
                                        {
                                            if (item2->GetAccessorySocketMaxGrade() == 0)
                                                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¸ÕÀú ´ÙÀ̾Ƹóµå·Î ¾Ç¼¼¼¸®¿¡ ¼ÒÄÏÀ» Ãß°¡ÇؾßÇÕ´Ï´Ù."));
                                            else if (item2->GetAccessorySocketMaxGrade() < ITEM_ACCESSORY_SOCKET_MAX_NUM)
                                            {
                                                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ÀÌ ¾×¼¼¼¸®¿¡´Â ´õÀÌ»ó ÀåÂøÇÒ ¼ÒÄÏÀÌ ¾ø½À´Ï´Ù."));
                                                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("´ÙÀ̾Ƹóµå·Î ¼ÒÄÏÀ» Ãß°¡ÇؾßÇÕ´Ï´Ù."));
                                            }
                                            else
                                                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ÀÌ ¾×¼¼¼¸®¿¡´Â ´õÀÌ»ó º¸¼®À» ÀåÂøÇÒ ¼ö ¾ø½À´Ï´Ù."));
                                        }
                                    }
                                    else
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ÀÌ ¾ÆÀÌÅÛÀ» ÀåÂøÇÒ ¼ö ¾ø½À´Ï´Ù."));
                                    }
                                    break;
                            }
                            if (item2->IsEquipped())
                            {
                                BuffOnAttr_AddBuffsFromItem(item2);
                            }
                        }
                        break;
dediğin gibi burda bir sorun yok gibi gözüküyor. Python taraflı olabilir
 
konunun başlığı güncellenmiş sorun ruha bağlama sisteminden mi kaynaklanıyor
 
Sistem şu an zaten ekli, sadece #define satırlarını kapatıp denedim sorunun hangi sistemden kaynaklandığını bulmak için.
Şimdi ise bu sistemin içinden neyin sebep olduğunu bulmam gerekiyor, yanlış ekleme yok diye düşünüyorum ama eksik bir şeyler var gibi geliyor bana.
 
Sorunu çözdünüz mü bilmiyorum ama uiinventory.py içerisinde bir kod bloğunu komple değiştirmemizi istiyor anlatımda. Orada eksik veya hatalı değişim olabilir. Karşılaştırma yaparak sadece SOUL_BIND ile ilgili kodları ekleyip denediniz mi, denemediyseniz öyle deneyin.
 
Çözüm
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst