Тема: Achievement 1833
Показать сообщение отдельно
Старый 03.03.2012, 19:45   #2
KiriX
Умный
Старожил
 
Аватар для KiriX
 
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
KiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человек
По умолчанию

Т.к. ачивка имеет флаг ACHIEVEMENT_FLAG_SUMM, обратился к этому куску кода:
Код:
    if (entry->flags & ACHIEVEMENT_FLAG_SUMM)
    {
        for(AchievementCriteriaEntryList::const_iterator itr = cList->begin(); itr != cList->end(); ++itr)
        {
            AchievementCriteriaEntry const* criteria = *itr;

            CriteriaProgressMap::const_iterator itrProgress = m_criteriaProgress.find(criteria->ID);
            if(itrProgress == m_criteriaProgress.end())
                continue;

            CriteriaProgress const* progress = &itrProgress->second;
            count += progress->counter;

            // for counters, field4 contains the main count requirement
            if (count >= criteria->raw.count)
                return true;
        }
        return false;
    }
В конце его return false; Не значит ли это, что вне зависимости от того, что в теле цикла ачивка всегда будет незавершённой?
По идее должно идти сравнение с числом, что в achievementForTestCount (код чуть выше фрагмента), а его тут нет...
KiriX вне форума