|
MaNGOS 0.12 (2.4.3) Любителям олд-скула =) Всё для клиента 2.4.3 |
|
Опции темы | Поиск в этой теме | Опции просмотра |
09.03.2010, 13:41 | #1 |
Новичок
Регистрация: 07.03.2010
Сообщений: 20
Сказал(а) спасибо: 3
Поблагодарили 7 раз(а) в 6 сообщениях
|
Клон(dup)
Врпрос к гуру...я верно думаю..что это патч от бага?
Код:
--- trunk/src/game/Player.cpp 2008/09/08 19:40:19 6564 +++ trunk/src/game/Player.cpp 2008/09/08 22:40:58 6565 @@ -8420,8 +8420,12 @@ if(need_space > count) need_space = count; - dest.push_back(ItemPosCount((bag << 8) | slot,need_space)); - count -= need_space; + ItemPosCount newPosition = ItemPosCount((bag << 8) | slot, need_space); + if(!newPosition.isContainedIn(dest)) + { + dest.push_back(newPosition); + count -= need_space; + } return EQUIP_ERR_OK; } @@ -8470,11 +8474,15 @@ if(need_space > count) need_space = count; - dest.push_back(ItemPosCount((bag << 8) | j,need_space)); - count -= need_space; + ItemPosCount newPosition = ItemPosCount((bag << 8) | j, need_space); + if(!newPosition.isContainedIn(dest)) + { + dest.push_back(newPosition); + count -= need_space; - if(count==0) - return EQUIP_ERR_OK; + if(count==0) + return EQUIP_ERR_OK; + } } } else @@ -8483,11 +8491,15 @@ if(need_space > count) need_space = count; - dest.push_back(ItemPosCount((bag << 8) | j,need_space)); - count -= need_space; + ItemPosCount newPosition = ItemPosCount((bag << 8) | j, need_space); + if(!newPosition.isContainedIn(dest)) + { + dest.push_back(newPosition); + count -= need_space; - if(count==0) - return EQUIP_ERR_OK; + if(count==0) + return EQUIP_ERR_OK; + } } } return EQUIP_ERR_OK; @@ -8518,12 +8530,15 @@ uint32 need_space = pProto->Stackable - pItem2->GetCount(); if(need_space > count) need_space = count; + ItemPosCount newPosition = ItemPosCount((INVENTORY_SLOT_BAG_0 << 8) | j, need_space); + if(!newPosition.isContainedIn(dest)) + { + dest.push_back(newPosition); + count -= need_space; - dest.push_back(ItemPosCount((INVENTORY_SLOT_BAG_0 << 8) | j, need_space)); - count -= need_space; - - if(count==0) - return EQUIP_ERR_OK; + if(count==0) + return EQUIP_ERR_OK; + } } } else @@ -8532,11 +8547,15 @@ if(need_space > count) need_space = count; - dest.push_back(ItemPosCount((INVENTORY_SLOT_BAG_0 << 8) | j,need_space)); - count -= need_space; + ItemPosCount newPosition = ItemPosCount((INVENTORY_SLOT_BAG_0 << 8) | j, need_space); + if(!newPosition.isContainedIn(dest)) + { + dest.push_back(newPosition); + count -= need_space; - if(count==0) - return EQUIP_ERR_OK; + if(count==0) + return EQUIP_ERR_OK; + } } } return EQUIP_ERR_OK; @@ -17829,3 +17848,16 @@ if ((height_z <= INVALID_HEIGHT || z < (height_z - 0)) && (flag1 == 0x00) && IsInWater()) m_isunderwater |= 0x80; } + +bool ItemPosCount::isContainedIn(ItemPosCountVec &vec) +{ + for(ItemPosCountVec::const_iterator itr = vec.begin(); itr != vec.end();++itr) + { + if(itr->pos == this->pos/* && itr->count == this.count*/) + { + return true; + } + } + return false; +} + Взято тут http://mangos.svn.sourceforge.net/vi...4&pathrev=6565 Последний раз редактировалось Konctantin; 09.03.2010 в 14:52. Причина: Используйте теги кода |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Дюп-клон | Osa | Баг-репорты | 0 | 18.03.2010 14:21 |