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); } }
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); }
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); }
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); } } }