void UpdateEscortAI(const uint32 uiDiff) { if (!m_creature->SelectHostileTarget() || !m_creature->getVictim()) { if (HasEscortState(STATE_ESCORT_PAUSED)) { if (m_uiEventTimer < uiDiff) { m_uiEventTimer = 7000; switch(m_uiEventCount) { case 0: DoScriptText(SAY_LE_ALMOST, m_creature); break; case 1: DoScriptText(SAY_LE_DRUM, m_creature); break; case 2: if (Creature* pResearcher = GetAvailableResearcher(0)) DoScriptText(SAY_LE_DRUM_REPLY, pResearcher); break; case 3: DoScriptText(SAY_LE_DISCOVERY, m_creature); break; case 4: if (Creature* pResearcher = GetAvailableResearcher(0)) DoScriptText(SAY_LE_DISCOVERY_REPLY, pResearcher); break; case 5: DoScriptText(SAY_LE_NO_LEAVE, m_creature); break; case 6: if (Creature* pResearcher = GetAvailableResearcher(1)) DoScriptText(SAY_LE_NO_LEAVE_REPLY1, pResearcher); break; case 7: if (Creature* pResearcher = GetAvailableResearcher(2)) DoScriptText(SAY_LE_NO_LEAVE_REPLY2, pResearcher); break; case 8: if (Creature* pResearcher = GetAvailableResearcher(3)) DoScriptText(SAY_LE_NO_LEAVE_REPLY3, pResearcher); break; case 9: if (Creature* pResearcher = GetAvailableResearcher(4)) DoScriptText(SAY_LE_NO_LEAVE_REPLY4, pResearcher); break; case 10: DoScriptText(SAY_LE_SHUT, m_creature); break; case 11: if (Creature* pResearcher = GetAvailableResearcher(0)) DoScriptText(SAY_LE_REPLY_HEAR, pResearcher); break; case 12: DoScriptText(SAY_LE_IN_YOUR_FACE, m_creature); m_creature->SummonCreature(NPC_BONE_SIFTER, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000); break; case 13: DoScriptText(EMOTE_LE_PICK_UP, m_creature); if (Player* pPlayer = GetPlayerForEscort()) { DoScriptText(SAY_LE_THANKS, m_creature, pPlayer); pPlayer->GroupEventHappens(QUEST_DIGGING_BONES, m_creature); } SetEscortPaused(false); break; } ++m_uiEventCount; } else m_uiEventTimer -= uiDiff; } return; } DoMeleeAttackIfReady(); }
void UpdateEscortAI(const uint32 uiDiff) { if (!UpdateVictim()) { if (HasEscortState(STATE_ESCORT_PAUSED)) { if (m_uiEventTimer < uiDiff) { m_uiEventTimer = 7000; switch(m_uiEventCount) { case 0: DoScriptText(SAY_LE_ALMOST, me); break; case 1: DoScriptText(SAY_LE_DRUM, me); break; case 2: if (Creature* pResearcher = GetAvailableResearcher(0)) DoScriptText(SAY_LE_DRUM_REPLY, pResearcher); break; case 3: DoScriptText(SAY_LE_DISCOVERY, me); break; case 4: if (Creature* pResearcher = GetAvailableResearcher(0)) DoScriptText(SAY_LE_DISCOVERY_REPLY, pResearcher); break; case 5: DoScriptText(SAY_LE_NO_LEAVE, me); break; case 6: if (Creature* pResearcher = GetAvailableResearcher(1)) DoScriptText(SAY_LE_NO_LEAVE_REPLY1, pResearcher); break; case 7: if (Creature* pResearcher = GetAvailableResearcher(2)) DoScriptText(SAY_LE_NO_LEAVE_REPLY2, pResearcher); break; case 8: if (Creature* pResearcher = GetAvailableResearcher(3)) DoScriptText(SAY_LE_NO_LEAVE_REPLY3, pResearcher); break; case 9: if (Creature* pResearcher = GetAvailableResearcher(4)) DoScriptText(SAY_LE_NO_LEAVE_REPLY4, pResearcher); break; case 10: DoScriptText(SAY_LE_SHUT, me); break; case 11: if (Creature* pResearcher = GetAvailableResearcher(0)) DoScriptText(SAY_LE_REPLY_HEAR, pResearcher); break; case 12: DoScriptText(SAY_LE_IN_YOUR_FACE, me); me->SummonCreature(NPC_BONE_SIFTER, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000); break; case 13: SetEscortPaused(false); break; } ++m_uiEventCount; } else m_uiEventTimer -= uiDiff; } return; } DoMeleeAttackIfReady(); }