コード例 #1
0
    void SummonIntroCreatures(uint32 packId)
    {
        if (!m_pInstance)
            return;

        float fAngle = GetLocationAngle(packId+1);

        float fX, fY, fZ;
        m_pInstance->GetChamberCenterCoords(fX, fY, fZ);

        fX += M_F_RANGE * cos(fAngle);
        fY += M_F_RANGE * sin(fAngle);
        fZ += M_F_HEIGHT;

        MaNGOS::NormalizeMapCoord(fX);
        MaNGOS::NormalizeMapCoord(fY);

        uint32 uiNpcEntry = NPC_SOUL_WEAVER;

        for(uint8 uiI = 0; uiI < 14; ++uiI)
        {
            if (uiI > 0)
            {
                if (uiI < 4)
                    uiNpcEntry = NPC_UNSTOPPABLE_ABOM;
                else
                    uiNpcEntry = NPC_SOLDIER_FROZEN;
            }

            float fNewX, fNewY, fNewZ;
            m_creature->GetRandomPoint(fX, fY, fZ, 12.0f, fNewX, fNewY, fNewZ);

            m_creature->SummonCreature(uiNpcEntry, fNewX, fNewY, fNewZ, fAngle + M_PI_F, TEMPSUMMON_CORPSE_DESPAWN, 5000);
        }
    }
コード例 #2
0
    void SummonMob(uint32 uiType)
    {
        if (!m_pInstance)
            return;

        float fAngle = GetLocationAngle(urand(1, 7));

        float fX, fY, fZ;
        m_pInstance->GetChamberCenterCoords(fX, fY, fZ);

        fX += M_F_RANGE * cos(fAngle);
        fY += M_F_RANGE * sin(fAngle);
        fZ += M_F_HEIGHT;

        MaNGOS::NormalizeMapCoord(fX);
        MaNGOS::NormalizeMapCoord(fY);

        m_creature->SummonCreature(uiType, fX, fY, fZ, 0.0f, TEMPSUMMON_CORPSE_DESPAWN, 5000);
    }
コード例 #3
0
ファイル: boss_kelthuzad.cpp プロジェクト: sd0/scriptdevzero
    void SummonGuardian()
    {
        if (!m_pInstance)
            return;

        float fAngle = GetLocationAngle(urand(1,7));

        float fx, fy, fz;
        m_pInstance->GetChamberCenterCoords(fx, fy, fz);

        fx += M_F_RANGE * cos(fAngle);
        fy += M_F_RANGE * sin(fAngle);
        fz += M_F_HEIGHT;

        MaNGOS::NormalizeMapCoord(fx);
        MaNGOS::NormalizeMapCoord(fy);

        m_creature->SummonCreature(NPC_GUARDIAN, fx, fy, fz, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
    }
コード例 #4
0
ファイル: boss_kelthuzad.cpp プロジェクト: sd0/scriptdevzero
    void SummonIntroStart()
    {
        if (!m_pInstance)
            return;

        for(int i = 0; i < 7; ++i)
        {
            float fAngle = GetLocationAngle(i+1);

            float fx, fy, fz;
            m_pInstance->GetChamberCenterCoords(fx, fy, fz);

            fx += M_F_RANGE * cos(fAngle);
            fy += M_F_RANGE * sin(fAngle);
            fz += M_F_HEIGHT;

            MaNGOS::NormalizeMapCoord(fx);
            MaNGOS::NormalizeMapCoord(fy);

            for(int i = 0; i < 14; ++i)
            {
                uint32 uiNpcEntry = NPC_SOUL_WEAVER;

                if (i > 0)
                {
                    if (i < 4)
                        uiNpcEntry = NPC_UNSTOPPABLE_ABOM;
                    else
                        uiNpcEntry = NPC_SOLDIER_FROZEN;
                }

                float ffx, ffy, ffz;
                m_creature->GetRandomPoint(fx, fy, fz, 15.0f, ffx, ffy, ffz);

                m_creature->SummonCreature(uiNpcEntry, ffx, ffy, ffz, 0.0f, TEMPSUMMON_CORPSE_DESPAWN, 5000);
            }
        }
    }