Тема: [Fix]EscortAI
Показать сообщение отдельно
Старый 19.10.2010, 04:55   #7
MaxXx2021
Ученый
 
Аватар для MaxXx2021
 
Регистрация: 09.03.2010
Адрес: Кыргызстан
Сообщений: 266
Сказал(а) спасибо: 41
Поблагодарили 115 раз(а) в 34 сообщениях
MaxXx2021 Скоро придёт к известности
По умолчанию

Цитата:
Сообщение от virusav Посмотреть сообщение
В СД2 при сопровождении нпц идет по точкам с паузами, если они есть.
При вхождении нпц в бой в точке 3, после окончания боя он вернется в точку 3 и продолжит путь к точке 4.

Упомянутый квест на курицу в Танарисе и подобные ему работают именно так (те, что мне довелось выполнять).
Пример, битва за подгород. Ведем Тралла до двора ставим эскорту SetEscortPause(true);
Тралл входит в бой, ну скажем игроки более одеты, тралл выходит из комбата и бежит к месту спауна в базе, что потверждает данный текст
Код:
void npc_escortAI::EnterEvadeMode()
{
    m_creature->RemoveAllAuras();
    m_creature->DeleteThreatList();
    m_creature->CombatStop(true);
    m_creature->SetLootRecipient(NULL);

    if (HasEscortState(STATE_ESCORT_ESCORTING))
    {
        debug_log("SD2: EscortAI has left combat and is now returning to CombatStartPosition.");

        if (m_creature->GetMotionMaster()->GetCurrentMovementGeneratorType() == CHASE_MOTION_TYPE)
        {
            AddEscortState(STATE_ESCORT_RETURNING);

            float fPosX, fPosY, fPosZ;
            m_creature->GetCombatStartPosition(fPosX, fPosY, fPosZ);
            m_creature->GetMotionMaster()->MovePoint(POINT_LAST_POINT, fPosX, fPosY, fPosZ);
        }
    }
    else
    {
        if (m_creature->GetMotionMaster()->GetCurrentMovementGeneratorType() == CHASE_MOTION_TYPE)
            m_creature->GetMotionMaster()->MoveTargetedHome();
    }

    Reset();
}
из которого видно что при HasEscortState(STATE_ESCORT_ESCORTING)
он начинает движение.
А если будет HasEscortState(STATE_ESCORT_PAUSED) куда он побежит?
MaxXx2021 вне форума   Ответить с цитированием