Показать сообщение отдельно
Старый 27.04.2012, 21:29   #1
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию [11982] USE_CREATURE_IN_GOSSIP_MENU_CHECK

Если в конфиге поставить LogFilter_DbStrictedCheck = 0, то получаем много ошибок вида
Код:
... Table `gossip_menu` contain unused (in creature or GO or menu options) menu id XXX.
При этом большинство из этих menu_id есть в базе.
Проблема в том, что не учитываются коды меню из таблицы `creature_template`.
Код:
diff --git a/src/game/ObjectMgr.cpp b/src/game/ObjectMgr.cpp
index 75c7d30..629b253 100644
--- a/src/game/ObjectMgr.cpp
+++ b/src/game/ObjectMgr.cpp
@@ -8698,7 +8698,10 @@ void ObjectMgr::LoadGossipMenuItems(std::set<uint32>& gossipScriptSet)
     for(uint32 i = 1;  i < sCreatureStorage.MaxEntry; ++i)
         if (CreatureInfo const* cInfo = sCreatureStorage.LookupEntry<CreatureInfo>(i))
             if (cInfo->GossipMenuId)
+            {
+                menu_ids.erase(cInfo->GossipMenuId);
                 menu2CInfoMap.insert(Menu2CInfoMap::value_type(cInfo->GossipMenuId, cInfo));
+            }
 
     do
     {
Результаты проверки:
1. Чистое ядро: в логе 1414 номеров menu_id, совпадения с таблицей `creature_template` есть.
2. С патчем: в логе 111 номеров menu_id. В таблицах `creature_template`, `gameobject_template` и `gossip_menu_option` совпадений нет.
virusav вне форума  
5 пользователя(ей) сказали cпасибо:
evilstar (27.04.2012), KiriX (30.04.2012), lovepsone (28.04.2012), schmoozerd (28.04.2012), YuruY (28.04.2012)