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