YTDB

YTDB (http://ytdb.ru/index.php)
-   Другое / Other (http://ytdb.ru/forumdisplay.php?f=13)
-   -   Неиспользованные записи в locales_* (http://ytdb.ru/showthread.php?t=8480)

zergtmn 25.10.2010 18:15

Неиспользованные записи в locales_*
 
Обнаружил довольно много неиспользованных записей.
Код:

SELECT * FROM locales_creature WHERE entry NOT IN (SELECT entry FROM creature_template)
SELECT * FROM locales_gameobject WHERE entry NOT IN (SELECT entry FROM gameobject_template)
SELECT * FROM locales_item WHERE entry NOT IN (SELECT entry FROM item_template)
SELECT * FROM locales_npc_text WHERE entry NOT IN (SELECT ID FROM npc_text)
SELECT * FROM locales_page_text WHERE entry NOT IN (SELECT entry FROM page_text)
SELECT * FROM locales_points_of_interest WHERE entry NOT IN (SELECT entry FROM points_of_interest)

SELECT * FROM locales_gossip_menu_option
LEFT JOIN gossip_menu_option ON
locales_gossip_menu_option.menu_id = gossip_menu_option.menu_id AND locales_gossip_menu_option.id = gossip_menu_option.id
WHERE gossip_menu_option.menu_id IS NULL

Решайте сами, что с ними делать (удалить или найти соответствие).

Vladimir 25.10.2010 19:05

Хм... разве они у нас не детектируются O.o

YuruY 26.10.2010 07:35

Просто у нас идут в основном русскоязычные данные (кеши, сниффы), вот и бывает что локаль особенно в текстовых данных опережает "оригинальные".

Vladimir 26.10.2010 09:28

Нет - я имел ввиду при загрузке ядра. И они действительтно не детектируются...
Попытаюсь поправить...

Vladimir 09.11.2010 00:45

Просьба протестировать: https://gist.github.com/668321

Данные проверки должны детектировать неиспользуемые данные в locales.

NeatElves 09.11.2010 01:11

А можно еще помечтать ? Если, например у нпц - поле госсипменю не пустое - проверять, есть ли такое меню с текстом и смотреть далее по флагу, если 2, есть ли опция меню квестера и т.д. ??))

YuruY 09.11.2010 07:39

NeatElves
Код:

SELECT * FROM locales_gossip_menu_option
LEFT JOIN gossip_menu_option ON
locales_gossip_menu_option.menu_id = gossip_menu_option.menu_id AND locales_gossip_menu_option.id = gossip_menu_option.id
WHERE gossip_menu_option.menu_id IS NULL

5 штук в фулле осталось, "пристрой" их куда нибудь.

YuruY 09.11.2010 07:41

И останутся только эти:
Цитата:

SELECT * FROM locales_npc_text WHERE entry NOT IN (SELECT ID FROM npc_text)
SELECT * FROM locales_page_text WHERE entry NOT IN (SELECT entry FROM page_text)
Но тут ситуация понятна:
Цитата:

Просто у нас идут в основном русскоязычные данные (кеши, сниффы), вот и бывает что локаль особенно в текстовых данных опережает "оригинальные".

NeatElves 09.11.2010 17:06

Я проверил, вот лог.))
Цитата:


Код:

DELETE FROM `locales_gameobject` WHERE `entry` = 0;

Vladimir 09.11.2010 19:52

Я могу сделать вывод только в отладочном режиме теста DB: при выключеном LogFilter_DbStrictedCheck (по умолчанию включен и отфильтровывает вывод).

Но как я понимаю записи корректно сообщают о реальных случаях использования для несуществующих базовых данных.

Тогда я добавляю с LogFilter_DbStrictedCheck - данные не будет загружаться но ошибка будет только при включенном выводе (в смысле выключенном фильтре)

NeatElves 09.11.2010 20:02

Да, наверное так и надо, только при фильтре.)

Vladimir 10.11.2010 01:02

Цитата:

Сообщение от NeatElves (Сообщение 29051)
А можно еще помечтать ? Если, например у нпц - поле госсипменю не пустое - проверять, есть ли такое меню с текстом и смотреть далее по флагу, если 2, есть ли опция меню квестера и т.д. ??))

Частично добавлено в [10712] (проверка menu ids)

Про флаги не понял.

YuruY 10.11.2010 06:35

зы: Он помоему про проверку "npcflag" у моба на соответствие этому (флаг есть, а есть ли запись соотв. в госсипе):
Цитата:

(0,0,0,'GOSSIP_OPTION_QUESTGIVER',2,2,0,0,0,0,0,NU LL,0,0,0,0,0,0,0,0,0),
(0,1,1,'GOSSIP_OPTION_VENDOR',3,128,0,0,0,0,0,NULL ,0,0,0,0,0,0,0,0,0),
(0,2,2,'GOSSIP_OPTION_TAXIVENDOR',4,8192,0,0,0,0,0 ,NULL,0,0,0,0,0,0,0,0,0),
(0,3,3,'GOSSIP_OPTION_TRAINER',5,16,0,0,0,0,0,NULL ,0,0,0,0,0,0,0,0,0),
(0,4,4,'GOSSIP_OPTION_SPIRITHEALER',6,16384,0,0,0, 0,0,NULL,0,0,0,0,0,0,0,0,0),
(0,5,4,'GOSSIP_OPTION_SPIRITGUIDE',7,32768,0,0,0,0 ,0,NULL,0,0,0,0,0,0,0,0,0),
(0,6,5,'GOSSIP_OPTION_INNKEEPER',8,65536,0,0,0,0,0 ,NULL,0,0,0,0,0,0,0,0,0),
(0,7,6,'GOSSIP_OPTION_BANKER',9,131072,0,0,0,0,0,N ULL,0,0,0,0,0,0,0,0,0),
.... и т.д.

Vladimir 10.11.2010 06:44

Так это стандартные, как их проверишь - они как раз выбираются по флагу.

YuruY 10.11.2010 07:36

Не, я не про стандартные (их привел для примера), я про те что имеют связь с "gossip_menu_id", конкретно каждого моба.

Например моб имеет gossip_menu_id=ХХХ и является квест-гивером (npcflag=2), а записи в госсипах для него нет:
Код:

(ХХХ,0,0,'GOSSIP_OPTION_QUESTGIVER',2,2,0,0,0,0,0,NU LL,0,0,0,0,0,0,0,0,0),
Получается моб есть, квест есть, а не дает, он вот это имел ввиду.

Vladimir 11.11.2010 18:15

В [10720] добавлена проверка - только для меню явно использующихся для creatures.

NeatElves 15.11.2010 21:16

Питомцам таланты сбрасывают дрессировщики, бывшие их учителя - пункт меню выдает ошибку в логе, что нет такого флага, а если ставим им флаг 16 - в игре пишет - список тренера пустой.)
Код:

(0,15,2,'GOSSIP_OPTION_UNLEARNPETSKILLS',17,0x000010,0,0,0,0,0,NULL,0,0,0,0,0,0,0,0,0);

Vladimir 22.11.2010 00:55

В [10769] поправлено - в смысле - разрешено иметь для пет-тренеров пустой список при наличии флагов тренеров.


Текущее время: 09:55. Часовой пояс GMT +4.

YTDB - MaNGOS DataBase