Пример #1
0
 void OnCreatureRemove(Creature* creature)
 {
     switch (creature->GetEntry())
     {
     case NPC_XT_TOY_PILE:
         for (uint8 i = 0; i < 4; ++i)
             if (XTToyPileGUIDs[i] == creature->GetGUID())
             {
                 XTToyPileGUIDs[i] = 0;
                 break;
             }
         break;
     case NPC_STEELBREAKER:
     case NPC_MOLGEIM:
     case NPC_BRUNDIR:
         AddMinion(creature, false);
         break;
     case NPC_BRANN_BRONZBEARD_ALG:
         if (BrannBronzebeardAlgGUID == creature->GetGUID())
             BrannBronzebeardAlgGUID = 0;
         break;
     default:
         break;
     }
 }
 void OnCreatureRemove(Creature* creature)
 {
     switch (creature->GetEntry())
     {
         case NPC_HELLFIRE_CHANNELER:
             AddMinion(creature, false);
             break;
     }
 }
Пример #3
0
 void OnCreatureRemove(Creature* creature) override
 {
     switch (creature->GetEntry())
     {
         case NPC_MAULGAR:
         case NPC_KROSH_FIREHAND:
         case NPC_OLM_THE_SUMMONER:
         case NPC_KIGGLER_THE_CRAZED:
         case NPC_BLINDEYE_THE_SEER:
             AddMinion(creature, false);
             break;
         default:
             break;
     }
 }
 void OnCreatureCreate(Creature* creature)
 {
     switch (creature->GetEntry())
     {
         case NPC_MAGTHERIDON:
             _magtheridonGUID = creature->GetGUID();
             break;
         case NPC_HELLFIRE_CHANNELER:
             AddMinion(creature, true);
             break;
         case NPC_HELLFIRE_WARDER:
             _wardersSet.insert(creature->GetGUID());
             break;
     }
 }
Пример #5
0
 void OnCreatureCreate(Creature* creature) override
 {
     switch (creature->GetEntry())
     {
         case NPC_MAULGAR:
             MaulgarGUID = creature->GetGUID();
             // no break;
         case NPC_KROSH_FIREHAND:
         case NPC_OLM_THE_SUMMONER:
         case NPC_KIGGLER_THE_CRAZED:
         case NPC_BLINDEYE_THE_SEER:
             AddMinion(creature, true);
             break;
         default:
             break;
     }
 }
Пример #6
0
 void OnCreatureCreate(Creature* creature)
 {
     switch (creature->GetEntry())
     {
         case 15989: SapphironGUID = creature->GetGUID(); return;
         case 15953: uiFaerlina = creature->GetGUID(); return;
         case 16064: uiThane = creature->GetGUID(); return;
         case 16065: uiLady = creature->GetGUID(); return;
         case 30549: uiBaron = creature->GetGUID(); return;
         case 16063: uiSir = creature->GetGUID(); return;
         case 15928: uiThaddius = creature->GetGUID(); return;
         case 15930: uiFeugen = creature->GetGUID(); return;
         case 15929: uiStalagg = creature->GetGUID(); return;
         case 15990: uiKelthuzad = creature->GetGUID(); return;
     }
     AddMinion(creature, true);
 }
Пример #7
0
            void OnCreatureCreate(Creature* creature) override
            {
                switch (creature->GetEntry())
                {
                    case NPC_FAERLINA:
                        FaerlinaGUID = creature->GetGUID();
                        break;
                    case NPC_THANE:
                        ThaneGUID = creature->GetGUID();
                        break;
                    case NPC_LADY:
                        LadyGUID = creature->GetGUID();
                        break;
                    case NPC_BARON:
                        BaronGUID = creature->GetGUID();
                        break;
                    case NPC_SIR:
                        SirGUID = creature->GetGUID();
                        break;
                    case NPC_THADDIUS:
                        ThaddiusGUID = creature->GetGUID();
                        break;
                    case NPC_HEIGAN:
                        HeiganGUID = creature->GetGUID();
                        break;
                    case NPC_FEUGEN:
                        FeugenGUID = creature->GetGUID();
                        break;
                    case NPC_STALAGG:
                        StalaggGUID = creature->GetGUID();
                        break;
                    case NPC_SAPPHIRON:
                        SapphironGUID = creature->GetGUID();
                        break;
                    case NPC_KEL_THUZAD:
                        KelthuzadGUID = creature->GetGUID();
                        break;
                    case NPC_LICH_KING:
                        LichKingGUID = creature->GetGUID();
                        break;
                    default:
                        break;
                }

                AddMinion(creature, true);
            }
Пример #8
0
    void OnCreatureCreate(Creature* pCreature, bool add)
    {
        switch (pCreature->GetEntry())
        {
            case 15989: Sapphiron = add ? pCreature : NULL; return;
            case 15953: uiFaerlina = pCreature->GetGUID(); return;
            case 16064: uiThane = pCreature->GetGUID(); return;
            case 16065: uiLady = pCreature->GetGUID(); return;
            case 30549: uiBaron = pCreature->GetGUID(); return;
            case 16063: uiSir = pCreature->GetGUID(); return;
            case 15928: uiThaddius = pCreature->GetGUID(); return;
            case 15930: uiFeugen = pCreature->GetGUID(); return;
            case 15929: uiStalagg = pCreature->GetGUID(); return;
            case 15990: uiKelthuzad = pCreature->GetGUID(); return;
        }

        AddMinion(pCreature, add);
    }
Пример #9
0
        void OnCreatureCreate(Creature* creature)
        {
            switch (creature->GetEntry())
            {
                case 15989: sapphironGUID = creature->GetGUID(); return;
                case 15953: faerlinaGUID = creature->GetGUID(); return;
                case 16064: thaneGUID = creature->GetGUID(); return;
                case 16065: ladyGUID = creature->GetGUID(); return;
                case 30549: baronGUID = creature->GetGUID(); return;
                case 16063: sirGUID = creature->GetGUID(); return;
                case 15928: thaddiusGUID = creature->GetGUID(); return;
                case 15936: heiganGUID = creature->GetGUID(); return;
                case 15930: feugenGUID = creature->GetGUID(); return;
                case 15929: stalaggGUID = creature->GetGUID(); return;
                case 15990: kelthuzadGUID = creature->GetGUID(); return;
            }

            AddMinion(creature, true);
        }
Пример #10
0
 void OnCreatureRemove(Creature* creature)
 {
     AddMinion(creature, false);
 }
Пример #11
0
void InstanceScript::OnCreatureRemove(Creature* creature)
{
    AddObject(creature, false);
    AddMinion(creature, false);
}
Пример #12
0
void InstanceScript::OnCreatureCreate(Creature* creature)
{
    AddObject(creature, true);
    AddMinion(creature, true);
}
Пример #13
0
        void OnCreatureCreate(Creature* creature)
        {
            if (!TeamInInstance)
            {
                Map::PlayerList const& Players = instance->GetPlayers();
                if (!Players.isEmpty())
                    if (Player* player = Players.begin()->GetSource())
                        TeamInInstance = player->GetTeam();
            }

            switch (creature->GetEntry())
            {
            case NPC_LEVIATHAN:
                LeviathanGUID = creature->GetGUID();
                break;
            case NPC_IGNIS:
                IgnisGUID = creature->GetGUID();
                break;

            // Razorscale
            case NPC_RAZORSCALE:
                RazorscaleGUID = creature->GetGUID();
                break;
            case NPC_RAZORSCALE_CONTROLLER:
                RazorscaleController = creature->GetGUID();
                break;
            case NPC_EXPEDITION_COMMANDER:
                ExpeditionCommanderGUID = creature->GetGUID();
                break;

            // XT-002 Deconstructor
            case NPC_XT002:
                XT002GUID = creature->GetGUID();
                break;
            case NPC_XT_TOY_PILE:
                for (uint8 i = 0; i < 4; ++i)
                    if (!XTToyPileGUIDs[i])
                    {
                        XTToyPileGUIDs[i] = creature->GetGUID();
                        break;
                    }
                break;

            // Assembly of Iron
            case NPC_STEELBREAKER:
                AssemblyGUIDs[0] = creature->GetGUID();
                AddMinion(creature, true);
                break;
            case NPC_MOLGEIM:
                AssemblyGUIDs[1] = creature->GetGUID();
                AddMinion(creature, true);
                break;
            case NPC_BRUNDIR:
                AssemblyGUIDs[2] = creature->GetGUID();
                AddMinion(creature, true);
                break;

            case NPC_KOLOGARN:
                KologarnGUID = creature->GetGUID();
                break;
            case NPC_AURIAYA:
                AuriayaGUID = creature->GetGUID();
                break;
            case NPC_MIMIRON:
                MimironGUID = creature->GetGUID();
                break;

            // Hodir
            case NPC_HODIR:
                HodirGUID = creature->GetGUID();
                break;
            case NPC_EIVI_NIGHTFEATHER:
                if (TeamInInstance == HORDE)
                    creature->UpdateEntry(NPC_TOR_GREYCLOUD, HORDE);
                break;
            case NPC_ELLIE_NIGHTFEATHER:
                if (TeamInInstance == HORDE)
                    creature->UpdateEntry(NPC_KAR_GREYCLOUD, HORDE);
                break;
            case NPC_ELEMENTALIST_MAHFUUN:
                if (TeamInInstance == HORDE)
                    creature->UpdateEntry(NPC_SPIRITWALKER_TARA, HORDE);
                break;
            case NPC_ELEMENTALIST_AVUUN:
                if (TeamInInstance == HORDE)
                    creature->UpdateEntry(NPC_SPIRITWALKER_YONA, HORDE);
                break;
            case NPC_MISSY_FLAMECUFFS:
                if (TeamInInstance == HORDE)
                    creature->UpdateEntry(NPC_AMIRA_BLAZEWEAVER, HORDE);
                break;
            case NPC_SISSY_FLAMECUFFS:
                if (TeamInInstance == HORDE)
                    creature->UpdateEntry(NPC_VEESHA_BLAZEWEAVER, HORDE);
                break;
            case NPC_FIELD_MEDIC_PENNY:
                if (TeamInInstance == HORDE)
                    creature->UpdateEntry(NPC_BATTLE_PRIEST_ELIZA, HORDE);
                break;
            case NPC_FIELD_MEDIC_JESSI:
                if (TeamInInstance == HORDE)
                    creature->UpdateEntry(NPC_BATTLE_PRIEST_GINA, HORDE);
                break;

            case NPC_THORIM:
                ThorimGUID = creature->GetGUID();
                break;

            // Freya
            case NPC_FREYA:
                FreyaGUID = creature->GetGUID();
                break;
            case NPC_IRONBRANCH:
                ElderGUIDs[0] = creature->GetGUID();
                if (GetBossState(BOSS_FREYA) == DONE)
                    creature->DespawnOrUnsummon();
                break;
            case NPC_BRIGHTLEAF:
                ElderGUIDs[1] = creature->GetGUID();
                if (GetBossState(BOSS_FREYA) == DONE)
                    creature->DespawnOrUnsummon();
                break;
            case NPC_STONEBARK:
                ElderGUIDs[2] = creature->GetGUID();
                if (GetBossState(BOSS_FREYA) == DONE)
                    creature->DespawnOrUnsummon();
                break;

            case NPC_VEZAX:
                VezaxGUID = creature->GetGUID();
                break;

            // Yogg-Saron
            case NPC_YOGG_SARON:
                YoggSaronGUID = creature->GetGUID();
                break;
            case NPC_VOICE_OF_YOGG_SARON:
                VoiceOfYoggSaronGUID = creature->GetGUID();
                break;
            case NPC_BRAIN_OF_YOGG_SARON:
                BrainOfYoggSaronGUID = creature->GetGUID();
                break;
            case NPC_SARA:
                SaraGUID = creature->GetGUID();
                break;
            case NPC_FREYA_YS:
                KeeperGUIDs[0] = creature->GetGUID();
                _summonYSKeeper[0] = false;
                SaveToDB();
                ++keepersCount;
                break;
            case NPC_HODIR_YS:
                KeeperGUIDs[1] = creature->GetGUID();
                _summonYSKeeper[1] = false;
                SaveToDB();
                ++keepersCount;
                break;
            case NPC_THORIM_YS:
                KeeperGUIDs[2] = creature->GetGUID();
                _summonYSKeeper[2] = false;
                SaveToDB();
                ++keepersCount;
                break;
            case NPC_MIMIRON_YS:
                KeeperGUIDs[3] = creature->GetGUID();
                _summonYSKeeper[3] = false;
                SaveToDB();
                ++keepersCount;
                break;
            case NPC_SANITY_WELL:
                creature->SetReactState(REACT_PASSIVE);
                break;

            // Algalon
            case NPC_ALGALON:
                AlgalonGUID = creature->GetGUID();
                break;
            case NPC_BRANN_BRONZBEARD_ALG:
                BrannBronzebeardAlgGUID = creature->GetGUID();
                break;
            //! These creatures are summoned by something else than Algalon
            //! but need to be controlled/despawned by him - so they need to be
            //! registered in his summon list
            case NPC_ALGALON_VOID_ZONE_VISUAL_STALKER:
            case NPC_ALGALON_STALKER_ASTEROID_TARGET_01:
            case NPC_ALGALON_STALKER_ASTEROID_TARGET_02:
            case NPC_UNLEASHED_DARK_MATTER:
                if (Creature* algalon = instance->GetCreature(AlgalonGUID))
                    algalon->AI()->JustSummoned(creature);
                break;
            }
        }