Показать сообщение отдельно
Старый 14.11.2009, 23:22   #3
tempura
Not a member, is a noob
 
Аватар для tempura
 
Регистрация: 05.11.2009
Адрес: Азерот, Штормвинд
Сообщений: 530
Сказал(а) спасибо: 153
Поблагодарили 453 раз(а) в 170 сообщениях
tempura Реально хороший человекtempura Реально хороший человекtempura Реально хороший человекtempura Реально хороший человекtempura Реально хороший человек
По умолчанию

Круто, спасибо. Я тут по истории коммитов уже нашел чуток.
по 8718 коммиту, вот эта хрень:
Код:
Corpse *bones = ObjectAccessor::GetCorpse(*player, lguid);
меняется вот на эту:
Код:
Corpse *bones = player->GetMap()->GetCorpse(lguid);
кое-как и сам немного на умного начинаю быть похожим.



А вот тупая замена ObjectAccessor на sObjectAccessor - не помогает.
теперь ищу как вот это старое:
Код:
ObjectAccessor::Instance().AddUpdateObject(this);
на что-то новое исправить.

Пока вот вроде нашел (и там еще несколько подобных):
Код:
-            if( Creature* pCreature = ObjectAccessor::Instance().GetObjectInWorld(MAKE_NEW_GUID(*itr, data->id, HIGHGUID_UNIT), (Creature*)NULL) )
+            if( Creature* pCreature = ObjectAccessor::GetCreatureInWorld(MAKE_NEW_GUID(*itr, data->id, HIGHGUID_UNIT)) )
сейчас разбираться буду.




На случай, если в контексте надобно, вот этот кусок патча:
Код:
void Object::ForceValuesUpdateAtIndex(uint32 i)
{
    m_uint32Values_mirror[i] = GetUInt32Value(i) + 1; // makes server think the field changed
    if(m_inWorld)
    {
        if(!m_objectUpdated)
        {
            ObjectAccessor::Instance().AddUpdateObject(this);
            m_objectUpdated = true;
        }
    }
}
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки.
tempura вне форума   Ответить с цитированием