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;
     }
 }
예제 #2
0
파일: zulaman.cpp 프로젝트: ekzobam/HGCore
 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());
 }
예제 #3
0
파일: zulaman.cpp 프로젝트: ekzobam/HGCore
    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
        }
    }