Цитата:
Сообщение от 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) куда он побежит?