Ru-MaNGOS

Ru-MaNGOS (http://mangos.ytdb.ru/index.php)
-   MaNGOS 0.12 (2.4.3) (http://mangos.ytdb.ru/forumdisplay.php?f=47)
-   -   [fix] LoadGossipMenuItems (http://mangos.ytdb.ru/showthread.php?t=3882)

Chipleo 13.03.2011 00:46

[fix] LoadGossipMenuItems
 
Код:

@@ -8390,10 +8390,15 @@ void ObjectMgr::LoadGossipMenuItems()
    }
    while(result->NextRow());
 
    delete result;
 
+    for(uint32 i = 1;  i < sCreatureStorage.MaxEntry; ++i)       
+        if (CreatureInfo const* cInfo = sCreatureStorage.LookupEntry<CreatureInfo>(i))
+            if (cInfo->GossipMenuId)
+                menu_ids.erase(cInfo->GossipMenuId);
+
    for(std::set<uint32>::const_iterator itr = gossipScriptSet.begin(); itr != gossipScriptSet.end(); ++itr)
        sLog.outErrorDb("Table `gossip_scripts` contain unused script, id %u.", *itr);
 
    if (!sLog.HasLogFilter(LOG_FILTER_DB_STRICTED_CHECK))
    {

код не учитывал меню из таблицы creature_template и выдавал лишние ошыбки.

П.С. Зачем таблица npc_gossip если есть поле в самой таблице creature_template ?

Vladimir 15.03.2011 02:06

код в One идентичен вроде коду в Master, и cInfo->GossipMenuId
вроде должно удаляться в
Цитата:

if (gMenuItem.menu_id && (gMenuItem.npc_option_npcflag || !sLog.HasLogFilter(LOG_FILTER_DB_STRICTED_CHECK)))

Chipleo 15.03.2011 16:50

если для Gossip_menu нет опций в таблице gossip_menu_option - тогда этой проверки не произойдет и следовательно данные таблицы creature_template не будут учтены.

Vladimir 16.03.2011 02:26

Да, но какой смысл в menu без элементов...

Chipleo 16.03.2011 08:35

что проще, если есть, например тысяча нпс з одним ентри но разными гуидами - заполнять таблицу npc_gossip, или задать одно значение в creature_template.gossip_menu_id, чтобы все они имели тот же текст без никаких подтекстов. И дело не в принципе, а в неверных сообщениях об ошибке кодом.


Текущее время: 10:50. Часовой пояс GMT +3.

ru-mangos.ru - Русское сообщество MaNGOS