YTDB

YTDB (http://ytdb.ru/index.php)
-   CMaNGOS Commits (http://ytdb.ru/forumdisplay.php?f=27)
-   -   [11261] Check gaps in quest RewChoiceItem* data. (http://ytdb.ru/showthread.php?t=10252)

newsbot 17.03.2011 22:00

[11261] Check gaps in quest RewChoiceItem* data.
 
автор: VladimirMangos


<pre>m src/game/ObjectMgr.cpp
</pre>
<pre style='white-space:pre-wrap;width:81ex'>[11261] Check gaps in quest RewChoiceItem* data.

Client can crash if data not continues.

Thanks Chero and Joey for help in research problem ^^</pre>




Дальше...

YuruY 17.03.2011 22:13

Смысл?

virusav 17.03.2011 22:40

Код:

2011-03-17 22:29:43 Quest 316 has `RewChoiceItemId4` = 0 but `RewChoiceItemId5` = 33079, client can crash at like data.
2011-03-17 22:29:43 Quest 316 has `RewChoiceItemId2` = 0 but `RewChoiceItemId3` = 22114, client can crash at like data.

Поставил итемы и количества по-порядку - ошибки исчезли.

Но если данные придут в таком порядке из кеша, то при следующем обновлении данными из кеша все вернется назад, снова будут ошибки в логе.

Vladimir 18.03.2011 00:47

Вы уверены что такие данные есть? Я проверял по данным из UDB - там таких случаев нет. Если такие данные есть то я откачу, конечно, тем более у меня подтверждения для 3.x ytт креша - но клиент 1.12.1 явно крешится на таких данных.

NeatElves 18.03.2011 01:10

Есть там предметы по кешу)):
Код:

REPLACE INTO quest_template VALUES ('enGB', 316, 415, 316, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 7, 50, 60, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20371, 1, 20651, 1, 22114, 1, 22780, 1, 33079, 1, 0, 0, 469, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '<UNUSED 1>', '', '', '', 'Return to Test Squirrel.', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2688, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', '', '');

Vladimir 18.03.2011 01:44

f*ck. Я уже revert сделал

virusav 18.03.2011 12:21

Не надо торопиться.:)
Цитата:

Но если данные придут в таком порядке из кеша, то при следующем обновлении данными из кеша все вернется назад, снова будут ошибки в логе.
Цитата:

Вы уверены что такие данные есть?
Я не успел ответить, т.к. ночь была на дворе, спать пошел.

Сегодня прогнал скриптом 9408 квестов из кеша, но не встретил ни одного квеста, где бы встречались итемы в качестве вознаграждения, не идущие в полях подряд.

В таком случае лучше вернуть коммит, т.к. он, как я понимаю, пойдет для 1.12.1 и мастер-ветки.:)

Vladimir 18.03.2011 17:10

Ну для 1.x он просто необходим так как клиент крешится на такие данные, а для 3.x/2.x видимо верну/добавлю раз помогло поймать глюк в данных.

YuruY 18.03.2011 19:50

Может данные нужны по какомуто квесту, проверить?
335а, (401 убил, но на работе остался вроде) 403а, 406а? (фулл есть с нескольких клиентов)

Vladimir 18.03.2011 23:08

Я откатил - т.е. передобавил проверку, так что если какие еще случаи будут это будет сообщенно ядром при загрузке.

Vladimir 22.03.2011 03:28

Цитата:

Я не успел ответить, т.к. ночь была на дворе, спать пошел.
Мои эмоции касались исключительно моей торопыжкости ;)

YuruY 24.03.2011 13:07

Код:

UPDATE `quest_template` SET `RewChoiceItemId1` = 20371, `RewChoiceItemId2` = 20651, `RewChoiceItemId3` = 22114, `RewChoiceItemId4` = 22780, `RewChoiceItemId5` = 33079 WHERE `entry` = 316;
вот так по кешу, но второго и четвертого предмета нет в базе (квест не юзабельный, в кеше они не приходят), если их занулить - ядро даст ошибку


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

YTDB - MaNGOS DataBase