[8092] Check bag size at item protos loading and item slots at invetory loading. Author: VladimirMangos
--HG-- branch : trunk
This commit is contained in:
@@ -2035,6 +2035,12 @@ void ObjectMgr::LoadItemPrototypes()
|
|||||||
const_cast<ItemPrototype*>(proto)->Stackable = 1000;
|
const_cast<ItemPrototype*>(proto)->Stackable = 1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(proto->ContainerSlots > MAX_BAG_SIZE)
|
||||||
|
{
|
||||||
|
sLog.outErrorDb("Item (Entry: %u) has too large value in ContainerSlots (%u), replace by hardcoded limit (%u).",i,proto->ContainerSlots,MAX_BAG_SIZE);
|
||||||
|
const_cast<ItemPrototype*>(proto)->ContainerSlots = MAX_BAG_SIZE;
|
||||||
|
}
|
||||||
|
|
||||||
if(proto->StatsCount > MAX_ITEM_PROTO_STATS)
|
if(proto->StatsCount > MAX_ITEM_PROTO_STATS)
|
||||||
{
|
{
|
||||||
sLog.outErrorDb("Item (Entry: %u) has too large value in statscount (%u), replace by hardcoded limit (%u).",i,proto->StatsCount,MAX_ITEM_PROTO_STATS);
|
sLog.outErrorDb("Item (Entry: %u) has too large value in statscount (%u), replace by hardcoded limit (%u).",i,proto->StatsCount,MAX_ITEM_PROTO_STATS);
|
||||||
|
|||||||
@@ -9103,6 +9103,9 @@ uint8 Player::_CanStoreItem_InSpecificSlot( uint8 bag, uint8 slot, ItemPosCountV
|
|||||||
if (!pBagProto)
|
if (!pBagProto)
|
||||||
return EQUIP_ERR_ITEM_DOESNT_GO_INTO_BAG;
|
return EQUIP_ERR_ITEM_DOESNT_GO_INTO_BAG;
|
||||||
|
|
||||||
|
if (slot >= pBagProto->ContainerSlots)
|
||||||
|
return EQUIP_ERR_ITEM_DOESNT_GO_INTO_BAG;
|
||||||
|
|
||||||
if (!ItemCanGoIntoBag(pProto,pBagProto))
|
if (!ItemCanGoIntoBag(pProto,pBagProto))
|
||||||
return EQUIP_ERR_ITEM_DOESNT_GO_INTO_BAG;
|
return EQUIP_ERR_ITEM_DOESNT_GO_INTO_BAG;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user