bool GoHello_ulduar_teleporter( Player *pPlayer, GameObject *pGO )
{
    InstanceData *data = pPlayer->GetInstanceData();
    ScriptedInstance *pInstance = (ScriptedInstance *) pGO->GetInstanceData();
    if(!pInstance | !data) return true;

    pPlayer->ADD_GOSSIP_ITEM(0, "Expedition Base Camp", GOSSIP_SENDER_MAIN, BASE_CAMP);
//    pPlayer->ADD_GOSSIP_ITEM(0, "Formation Grounds", GOSSIP_SENDER_MAIN, GROUNDS);
    if (data->GetBossState(BOSS_LEVIATHAN) == DONE)
    {
        pPlayer->ADD_GOSSIP_ITEM(0, "Colossal Forge", GOSSIP_SENDER_MAIN, FORGE);
        if (data->GetBossState(BOSS_XT002) == DONE)
        {
            pPlayer->ADD_GOSSIP_ITEM(0, "Scrapyard", GOSSIP_SENDER_MAIN, SCRAPYARD);
            pPlayer->ADD_GOSSIP_ITEM(0, "Antechamber of Ulduar", GOSSIP_SENDER_MAIN, ANTECHAMBER);
            if (data->GetBossState(BOSS_KOLOGARN) == DONE)
            {
                pPlayer->ADD_GOSSIP_ITEM(0, "Shattered Walkway", GOSSIP_SENDER_MAIN, WALKWAY);
                if (data->GetBossState(BOSS_AURIAYA) == DONE)
                {
                    pPlayer->ADD_GOSSIP_ITEM(0, "Conservatory of Life", GOSSIP_SENDER_MAIN, CONSERVATORY);
//                    pPlayer->ADD_GOSSIP_ITEM(0, "Spark of Imagination", GOSSIP_SENDER_MAIN, SPARK_IMAGINATION);
                    if (data->GetBossState(BOSS_VEZAX) == DONE)
                        pPlayer->ADD_GOSSIP_ITEM(0, "Descent into Madness", GOSSIP_SENDER_MAIN, DESCENT_MADNESS);
                }
            }
        }
    }
    pPlayer->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, pGO->GetGUID());

    return true;
}
Exemple #2
0
 void OnGameObjectCreate(GameObject* pGo, bool add)
 {
     AddDoor(pGo, add);
     switch(pGo->GetEntry())
     {
         case GO_Leviathan_DOOR: pLeviathanDoor = add ? pGo : NULL; break;
         case GO_Kologarn_CHEST_HERO: KologarnChest = add ? pGo : NULL; break;
         case GO_Kologarn_CHEST: KologarnChest = add ? pGo : NULL; break;
         case GO_Kologarn_BRIDGE: uiKologarnBridge = pGo->GetGUID(); HandleGameObject(NULL, true, pGo); break;
         case GO_Hodir_CHEST_HERO: HodirChest = add ? pGo : NULL; break;
         case GO_Hodir_CHEST: HodirChest = add ? pGo : NULL; break;
         case GO_Hodir_Rare_CHEST: HodirRareChest = add ? pGo : NULL; break;
         case GO_Runic_DOOR: pRunicDoor = add ? pGo : NULL; break;
         case GO_Stone_DOOR: pStoneDoor = add ? pGo : NULL; break;
         case GO_Thorim_LEVER: pThorimLever = add ? pGo : NULL; break;
         case GO_Mimiron_TRAM: MimironTram = add ? pGo : NULL; break;
         case GO_Mimiron_ELEVATOR: MimironElevator = add ? pGo : NULL; break;
         case GO_Keepers_DOOR: KeepersGateGUID = pGo->GetGUID();
         {
             InstanceData *data = pGo->GetInstanceData();
             pGo->RemoveFlag(GAMEOBJECT_FLAGS,GO_FLAG_LOCKED);
             if (data)
                 for (uint32 i = BOSS_MIMIRON; i < BOSS_VEZAX; ++i)
                     if (data->GetBossState(i) != DONE)
                         pGo->SetFlag(GAMEOBJECT_FLAGS,GO_FLAG_LOCKED);
             break;
         }
     }
 }
bool GossipHello_keeper_norgannon(Player* pPlayer, Creature* pCreature)
{
    InstanceData *data = pPlayer->GetInstanceData();
    ScriptedInstance *pInstance = (ScriptedInstance *) pCreature->GetInstanceData();
    
    if (pInstance && pPlayer)
       if (data->GetBossState(BOSS_LEVIATHAN) != DONE)
            if (data->GetBossState(BOSS_LEVIATHAN) != SPECIAL)
            {
                pPlayer->PrepareQuestMenu(pCreature->GetGUID());
                pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT,GOSSIP_ITEM_1,GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF);
                pPlayer->SEND_GOSSIP_MENU(13910, pCreature->GetGUID());
            }
    else pPlayer->SEND_GOSSIP_MENU(1, pCreature->GetGUID());

    return true;
}
Exemple #4
0
 void CheckKeepersState()
 {
     if (GameObject* pGo = instance->GetGameObject(KeepersGateGUID))
     {
         InstanceData *data = pGo->GetInstanceData();
         pGo->RemoveFlag(GAMEOBJECT_FLAGS,GO_FLAG_LOCKED);
         if (data)
             for (uint32 i = BOSS_MIMIRON; i < BOSS_VEZAX; ++i)
                 if (data->GetBossState(i) != DONE)
                     pGo->SetFlag(GAMEOBJECT_FLAGS,GO_FLAG_LOCKED);
     }
 }
bool AreaTrigger_at_naxxramas_frostwyrm_wing(Player* pPlayer, AreaTriggerEntry *at)
{
    if (pPlayer->isGameMaster())
        return false;

    InstanceData *data = pPlayer->GetInstanceData();
    if (data)
        for(uint32 i = BOSS_ANUBREKHAN; i < BOSS_SAPPHIRON; ++i)
            if (data->GetBossState(i) != DONE)
                return true;

    return false;
}
Exemple #6
0
bool Expedition_commander_ulduar(Player* pPlayer, Creature* pCreature)
{
    InstanceData *data = pPlayer->GetInstanceData();
    ScriptedInstance *pInstance = (ScriptedInstance *) pCreature->GetInstanceData();
    
    if (pInstance && pPlayer && data->GetBossState(BOSS_RAZORSCALE) == NOT_STARTED)
    {
        pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT,GOSSIP_ITEM_1,GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF);
        pPlayer->SEND_GOSSIP_MENU(13853, pCreature->GetGUID());
    }else
        pPlayer->SEND_GOSSIP_MENU(13910, pCreature->GetGUID());
    return true;
}
Exemple #7
0
    void OnCreatureCreate(Creature* pCreature, bool add)
    {
        Map::PlayerList const &players = instance->GetPlayers();
        uint32 TeamInInstance = 0;

        if (!players.isEmpty())
            if (Player* pPlayer = players.begin()->getSource())
                TeamInInstance = pPlayer->GetTeam();
        
        switch(pCreature->GetEntry())
        {
            case 33113: uiLeviathan = pCreature->GetGUID(); return;
            case 33686: uiNorgannon = pCreature->GetGUID(); return;
            case 33118: uiIgnis = pCreature->GetGUID(); return;
            case 33186: uiRazorscale = pCreature->GetGUID(); return;
            case 33210: uiExpCommander = pCreature->GetGUID(); return;
            case 33293: uiXT002 = pCreature->GetGUID(); return;
            case 32867: uiSteelbreaker = pCreature->GetGUID(); return;
            case 32927: uiMolgeim = pCreature->GetGUID(); return;
            case 32857: uiBrundir = pCreature->GetGUID(); return;
            case 32930: uiKologarn = pCreature->GetGUID(); return;
            case 32934: uiRightArm = pCreature->GetGUID(); return;
            case 32933: uiLeftArm = pCreature->GetGUID(); return;
            case 33515: uiAuriaya = pCreature->GetGUID(); return;
            case 32915: uiBrightleaf = pCreature->GetGUID(); return;
            case 32913: uiIronbranch = pCreature->GetGUID(); return;
            case 32914: uiStonebark = pCreature->GetGUID(); return;
            case 32906: uiFreya = pCreature->GetGUID(); return;
            case 32865: uiThorim = pCreature->GetGUID(); return;
            case 32872: uiRunicColossus = pCreature->GetGUID(); return;
            case 32873: uiRuneGiant = pCreature->GetGUID(); return;
            case 33350: uiMimiron = pCreature->GetGUID(); return;
            case 33432: uiLeviathanMKII = pCreature->GetGUID(); return;
            case 33651: uiVX001 = pCreature->GetGUID(); return;
            case 33670: uiAerialUnit = pCreature->GetGUID(); return;
            case 34068: uiMagneticCore = pCreature->GetGUID(); return;
            case 33271: uiVezax = pCreature->GetGUID(); return;
            case 33410: uiFreyaYS = pCreature->GetGUID(); return;
            case 33413: uiThorimYS = pCreature->GetGUID(); return;
            case 33412: uiMimironYS = pCreature->GetGUID(); return;
            case 33411: uiHodirYS = pCreature->GetGUID(); return;

            // Keeper's Images
            case 33241: uiFreyaImage = pCreature->GetGUID();
            {
               InstanceData *data = pCreature->GetInstanceData();
                pCreature->SetVisibility(VISIBILITY_OFF);
                if (data && data->GetBossState(BOSS_VEZAX) == DONE)
                    pCreature->SetVisibility(VISIBILITY_ON);
            }
            return;
            case 33242: uiThorimImage = pCreature->GetGUID();
            {
                InstanceData *data = pCreature->GetInstanceData();
                pCreature->SetVisibility(VISIBILITY_OFF);
                if (data && data->GetBossState(BOSS_VEZAX) == DONE)
                    pCreature->SetVisibility(VISIBILITY_ON);
            }
            return;
            case 33244: uiMimironImage = pCreature->GetGUID();
            {
                InstanceData *data = pCreature->GetInstanceData();
                pCreature->SetVisibility(VISIBILITY_OFF);
                if (data && data->GetBossState(BOSS_VEZAX) == DONE)
                    pCreature->SetVisibility(VISIBILITY_ON);
            }
            return;
            case 33213: uiHodirImage = pCreature->GetGUID();
            {
                InstanceData *data = pCreature->GetInstanceData();
                pCreature->SetVisibility(VISIBILITY_OFF);
                if (data && data->GetBossState(BOSS_VEZAX) == DONE)
                    pCreature->SetVisibility(VISIBILITY_ON);
            }
            return;
        }

        // Hodir: Alliance npcs are spawned by default
        if (TeamInInstance == HORDE)
            switch(pCreature->GetEntry())
            {
                case 33325: pCreature->UpdateEntry(32941, HORDE); return;
                case 32901: pCreature->UpdateEntry(33333, HORDE); return;
                case 33328: pCreature->UpdateEntry(33332, HORDE); return;
                case 32900: pCreature->UpdateEntry(32950, HORDE); return;
                case 32893: pCreature->UpdateEntry(33331, HORDE); return;
                case 33327: pCreature->UpdateEntry(32946, HORDE); return;
                case 32897: pCreature->UpdateEntry(32948, HORDE); return;
                case 33326: pCreature->UpdateEntry(33330, HORDE); return;
                case 32908: pCreature->UpdateEntry(32907, HORDE); return;
                case 32885: pCreature->UpdateEntry(32883, HORDE); return;
            }
    }