コード例 #1
0
    void JustDied(Unit* pKiller) override
    {
        DoScriptText(SAY_DEATH, m_creature, pKiller);

        if (m_pInstance)
        {
            m_pInstance->SetData(TYPE_GARFROST, DONE);

            // Summon Ironskull or Victus for outro
            m_creature->SummonCreature(m_pInstance->GetPlayerTeam() == HORDE ? NPC_IRONSKULL_PART1 : NPC_VICTUS_PART1,
                                       afOutroNpcSpawnLoc[0], afOutroNpcSpawnLoc[1], afOutroNpcSpawnLoc[2], afOutroNpcSpawnLoc[3], TEMPSUMMON_TIMED_DESPAWN, 2 * MINUTE * IN_MILLISECONDS);

            // ToDo: handle the other npcs movement
        }
    }
コード例 #2
0
    void JustDied(Unit* /*pKiller*/) override
    {
        if (m_pInstance)
        {
            m_pInstance->SetData(TYPE_KRICK, DONE);

            if (Creature* pKrick = m_pInstance->GetSingleCreatureFromStorage(NPC_KRICK))
            {
                DoScriptText(SAY_OUTRO_1, pKrick);
                pKrick->AI()->EnterEvadeMode();

                // Summon Jaina or Sylvanas for epilogue
                pKrick->SummonCreature(m_pInstance->GetPlayerTeam() == HORDE ? NPC_SYLVANAS_PART1 : NPC_JAINA_PART1,
                                       afOutroNpcSpawnLoc[0], afOutroNpcSpawnLoc[1], afOutroNpcSpawnLoc[2], afOutroNpcSpawnLoc[3], TEMPSUMMON_TIMED_DESPAWN, 2 * MINUTE * IN_MILLISECONDS);
            }

            if (Creature* pTyrannus = m_pInstance->GetSingleCreatureFromStorage(NPC_TYRANNUS_INTRO))
                pTyrannus->NearTeleportTo(afTyrannusTeleLoc[0], afTyrannusTeleLoc[1], afTyrannusTeleLoc[2], afTyrannusTeleLoc[3]);
        }
    }