[fix] Ошибка клиента 132 при смене экипировки встроенным менеджером
Вложений: 1
При использовании встроенного в клиент менеджера экипировки
возникает проблема при следующих условиях: 1. Персонаж сохранил набор экипировки с 3 джевеловскими камнями (ItemLimitCategory=2). 2. Одевает другой набор вещей, тоже с двеловскими камнями. 3. При попытке переключиться на набор из п.1 происходит падение клиента с ошибкой 132. Ошибка возникает при формировании пакета от сервера клиенту в процедуре Код:
void Player::SendEquipError( uint8 msg, Item* pItem, Item *pItem2, uint32 itemid /*= 0*/ ) const не ItemLimitCategory предмета(который в большинстве случаев 0), а именно ItemLimitCategory камня, который не дает одеть предмет. Патчик. Код:
index 149aaa0..7b17437 100644 о том, какая именно ItemLimitCategory вызвала проблему. Функция uint8 Player::CanEquipUniqueItem(Item* pItem, uint8 eslot, uint32 limit_count)возвращает только код ошибки, без источника возникновения. Варианты правильного решения: 1. из Player::CanEquipUniqueItem(Item* pItem, uint8 eslot, uint32 limit_count) как-то передавать данные о категории из функции Player::SendEquipError( uint8 msg... через структуру или переменную. 2. Выделить из Player::CanEquipUniqueItem(Item* pItem, uint8 eslot, uint32 limit_count) код проверки камней, который будет сообщать данные об ошибке и категории предмета, вызвавшего ошибку. Выделенную функцию вызывать из Player::CanEquipUniqueItem(Item* pItem.. и из Player::SendEquipError. |
Можно добавить опциональный аругмент : , uint32* pProblematicItemId)
и предавать его по цепочке Can* функций в глубь до ошибки, где if (pProblematicItemId) *pProblematicItemId = gemid -- или собствеено itemId тогда можно будет значение из него будет передать в SendEquipError( uint8 msg, Item* pItem, Item *pItem2, uint32 itemid) -- как itemid Фактически тогда это значение можно будет использовать во всех случаях дополнительных данных в SendEquipError Только это видимо потребует кучу мест для выставлния значений :( |
Текущее время: 17:17. Часовой пояс GMT +3. |
ru-mangos.ru - Русское сообщество MaNGOS