void Update(uint32 diff) { if(QuestMinute) { if(QuestTimer < diff) { QuestMinute--; SaveToDB(); QuestTimer += 60000; if(QuestMinute) { UpdateWorldState(3104, 1); UpdateWorldState(3106, QuestMinute); if(QuestMinute > 5) { if(rand()%10 == 0) { if(GetData(DATA_NALORAKKEVENT) == NOT_STARTED) DoGlobalScriptText(RAND(SAY_INST_PROGRESS_4, SAY_INST_PROGRESS_5), NALORAKK, instance); else DoGlobalScriptText(RAND(SAY_INST_PROGRESS_1, SAY_INST_PROGRESS_2, SAY_INST_PROGRESS_3), HEXLORD, instance); } } else { int32 textid; if(QuestMinute == 4) textid = SAY_INST_WARN_1; if(QuestMinute == 3) textid = SAY_INST_WARN_2; if(QuestMinute == 2) textid = SAY_INST_WARN_3; if(QuestMinute == 1) textid = SAY_INST_WARN_4; DoGlobalScriptText(textid, HEXLORD, instance); } } else { bool Killed = false; for(uint8 i = 0; i < 4; i++) if(Hostages[i] == HOSTAGE_NOT_SAVED) { KillHostage(i); Killed = true; } if(Killed) DoGlobalScriptText(RAND(SAY_INST_SACRIF1, SAY_INST_SACRIF2), HEXLORD, instance); UpdateWorldState(3104, 0); } } QuestTimer -= diff; } }
void StartEvent() { me->GetMotionMaster()->MovePoint(0, 226, 1461, 26); EventStarted = true; DoZoneInCombat(); if(pInstance && pInstance->GetData(DATA_AKILZONEVENT) != DONE) DoGlobalScriptText(SAY_GAUNTLET_START, AKILZON, me->GetMap()); }
void WaypointReached(uint32 uiPointId) { if (!m_pInstance) return; switch(uiPointId) { case 2: //modify respawn if event fails (out of LOS) me->SetRespawnDelay(10); // then sec for a nice respawn effect DoScriptText(SAY_AT_GONG, me); if (GameObject* pEntranceDoor = m_pInstance->instance->GetGameObject(m_pInstance->GetData64(DATA_GO_GONG))) pEntranceDoor->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOTSELECTABLE); //Start bang gong for 10min me->CastSpell(me, SPELL_BANGING_THE_GONG, false); SetEscortPaused(true); break; case 3: DoScriptText(SAY_OPENING_ENTRANCE, me); break; case 4: DoScriptText(SAY_OPEN_GATE, me); break; case 5: m_pInstance->SetData(TYPE_EVENT_RUN,SPECIAL); me->SetRespawnDelay(RespawnDelay); break; case 6: std::list<Creature*> trolls = FindAllCreaturesWithEntry(23889, 100); for(std::list<Creature *>::iterator i = trolls.begin(); i != trolls.end(); i++) { (*i)->AI()->DoZoneInCombat(); (*i)->AddThreat(me, 1000); } trolls = FindAllCreaturesWithEntry(23597, 100); for(std::list<Creature *>::iterator i = trolls.begin(); i != trolls.end(); i++) { (*i)->AI()->DoZoneInCombat(); (*i)->AddThreat(me, 1000); } // ((Creature*)Guardian)->GetMotionMaster()->MoveChase(me); SetEscortPaused(true); DoGlobalScriptText(SAY_INST_BEGIN, HEXLORD, me->GetMap()); break; //TODO: Spawn group of Amani'shi Savage and make them run to entrance } }