Jump to content

Something strange


Guest Damnit

Recommended Posts

I have a strange error.. When I try to socket using inv_jewelcrafting_dragonseye03.jpg (inv_jewelcrafting_dragonseye04.jpg inv_jewelcrafting_dragonseye05.jpg these two items are also displayed wrong in-game ), and perhaps other jewels that I haven't tested and are crafted using this item inv_jewelcrafting_dragonseye01.jpg and after I equip the items Wow.exe encounters an error.. and it crashes.

I get this error message

This application has encountered a critical error:

ERROR #134 (0x85100086) Fatal Condition

---------------

I use mangos rev 10721

UDB 0.12.1 (394) for MaNGOS 10720 with SD2 SQL for rev. 1863

ScriptDev2 (for MaNGOS 10610+)

ACID 3.0.7

and Ahbot

Link to comment
Share on other sites

I remember we had (or still have) a similar bug on our server.

The user told me, that if someone equipp more than 3 of these special gems, their wow crashes.

How many gems did you equip?

Marik

Only one.. But I also noticed.. that some work on different items.. but only a few

Link to comment
Share on other sites

Link is normal.

Patch from link.

index 149aaa0..7b17437 100644
--- a/src/game/Player.cpp
+++ b/src/game/Player.cpp
@@ -12295,7 +12295,35 @@ void Player::SendEquipError( uint8 msg, Item* pItem, Item *pItem2, uint32 itemid
            case EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_EQUIPPED_EXCEEDED_IS:
            {
                ItemPrototype const* proto = pItem ? pItem->GetProto() : sObjectMgr.GetItemPrototype(itemid);
-                data << uint32(proto ? proto->ItemLimitCategory : 0);
+                uint32 LimitCategory=proto ? proto->ItemLimitCategory : 0;
+                if (pItem)
+                    // check unique-equipped on gems
+                    for(uint32 enchant_slot = SOCK_ENCHANTMENT_SLOT; enchant_slot < SOCK_ENCHANTMENT_SLOT+3; ++enchant_slot)
+                    {
+                        uint32 enchant_id = pItem->GetEnchantmentId(EnchantmentSlot(enchant_slot));
+                        if(!enchant_id)
+                            continue;
+                        SpellItemEnchantmentEntry const* enchantEntry = sSpellItemEnchantmentStore.LookupEntry(enchant_id);
+                        if(!enchantEntry)
+                            continue;
+
+                        ItemPrototype const* pGem = ObjectMgr::GetItemPrototype(enchantEntry->GemID);
+                        if(!pGem)
+                            continue;
+
+                        // include for check equip another gems with same limit category for not equipped item (and then not counted)
+                        uint32 gem_limit_count = !pItem->IsEquipped() && pGem->ItemLimitCategory
+                            ? pItem->GetGemCountWithLimitCategory(pGem->ItemLimitCategory) : 1;
+
+                        if( msg == CanEquipUniqueItem(pGem, pItem->GetSlot(),gem_limit_count))
+                        {
+                            LimitCategory=pGem->ItemLimitCategory;
+                            break;
+                         
+                        }
+                    }
+
+                data << uint32(LimitCategory);
                break;
            }
            default: 

Link to comment
Share on other sites

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use