Можно подробнее?
Не могу найти инфу. Близзард как-то оправдывались, что не могут расширить стандартную сумку т.к. не попомнят какая часть кода отвечает за нее или не могут эту часть найти, ну что-то в этом духе. Предположительно это был Дренор или начало Легиона.
Не в этом суть была. Слоты экипировки и инвентаря - это просто ячейки памяти, в которых хранятся числа. Но важно их расположение. Так вот, сначала шли слоты персонажа, ну это и понятно, дальше шло 4 слота под сумки. И если в сумки заложили изначально 36 слотов лимит, то рюкзак был лимитирован 16. Для компьютера нет понятие "сумка", он оперирует номерами в памяти (индексами). Ну и номера предметов в сумках идут по порядку. 16 + 36*4. Естественно за 20+ лет были созданы сотни миллионов персонажей, все это хранится в базе данных ровно так же по порядку, чтобы загружать в память сервера. Соответственно если мы добавим даже 1 слот, нам придется "раздвинуть" слоты, а значит сдвинуть все последующие номера на +1. А я напомню, что у нас сотни миллионов персонажей, чтобы не потерять данные, потому что номера изменятся, надо всем персонажам будет прибавить этот +1, что с учетом количества персонажей практически невозможно. При остановленных серверах это займет недели, если не месяцы. Кто будет стопать игру на даже на неделю?
В итоге они нашли решение, "виртуальные" сумки. Тот же аутентификатор. Это просто 4 слота, добавленные в самый конец реального массива данных. И визуальный обман в клиенте. Ну и немного лишнего кода для конвертации номеров клиента и сервера, условно на клиенте это слоты 17,18,19,20, после 16. А на сервере это слоты 110, 111, 112, 113, к примеру. Т.к для работы нам важны именно серверные номера, "обмануть" клиент можно как угодно.