Агась... Понял, отрыл... Ачивка 1833 выполняется на основе ачивки 346 (общее число выпитых напитков). Но она имеет флаг 1 - каунтер. Собственно, когда идёт зачёт каунтера, попадаем в блок:
Код:
// nothing do for counter case
if (achievement->flags & ACHIEVEMENT_FLAG_COUNTER)
return;
т.е. по мнению сервера больше ничего проверять и не надо и мы не попадаем в блок
bool AchievementMgr::IsCompletedAchievement(Achievement Entry const* entry), где, по идее, мог бы пройти засчёт выполненой ачивки...
Проблемы две:
Первое: таким образом работают всего ДВЕ ачивки. Хакать???
Второе: я пробовал в дебаге на лету менять флаг с 9 на 8 при обработке ачивки 346, в результате чего серв входил в вечный цикл и падал...
Есть ещё у кого какие идеи?