Jump to content
TrinityCore

Blackrock Depths Ring of Law Event Stuck 3.3.5


kageboshi
 Share

Recommended Posts

Going through BRD Ring of Law Event, after the first wave the event does not progress and the party is stuck in the ring.

This is on rev. 615877598c24+

I found issue https://github.com/TrinityCore/TrinityCore/issues/20499 refers to case 7 within the event timer logic and removing it to advance through the event, however guess there hasn't been worked on much.

 

Thanks for any insight.

 

        void UpdateAI(uint32 diff) override
        {
            if (MobDeath_Timer)
            {
                if (MobDeath_Timer <= diff)
                {
                    MobDeath_Timer = 2500;

                    if (RingBossGUID)
                    {
                        Creature* boss = ObjectAccessor::GetCreature(*me, RingBossGUID);
                        if (boss && !boss->IsAlive() && boss->isDead())
                        {
                            RingBossGUID.Clear();
                            Event_Timer = 5000;
                            MobDeath_Timer = 0;
                            return;
                        }
                        return;
                    }

                    for (uint8 i = 0; i < MAX_NPC_AMOUNT; ++i)
                    {
                        Creature* mob = ObjectAccessor::GetCreature(*me, RingMobGUID);
                        if (mob && !mob->IsAlive() && mob->isDead())
                        {
                            RingMobGUID.Clear();
                            --MobCount;

                            //seems all are gone, so set timer to continue and discontinue this
                            if (!MobCount)
                            {
                                Event_Timer = 5000;
                                MobDeath_Timer = 0;
                            }
                        }
                    }
                } else MobDeath_Timer -= diff;
            }

            if (Event_Timer)
            {
                if (Event_Timer <= diff)
                {
                    switch (EventPhase)
                    {
                    case 0:
                        Talk(SAY_TEXT5);
                        HandleGameObject(DATA_ARENA4, false);
                        Start(false, false);
                        CanWalk = true;
                        Event_Timer = 0;
                        break;
                    case 1:
                        CanWalk = true;
                        Event_Timer = 0;
                        break;
                    case 2:
                        Event_Timer = 2000;
                        break;
                    case 3:
                        HandleGameObject(DATA_ARENA1, true);
                        Event_Timer = 3000;
                        break;
                    case 4:
                        CanWalk = true;
                        me->SetVisible(false);
                        SummonRingMob();
                        Event_Timer = 8000;
                        break;
                    case 5:
                        SummonRingMob();
                        SummonRingMob();
                        Event_Timer = 8000;
                        break;
                    case 6:
                        SummonRingMob();
                        Event_Timer = 5000;
                        break;
                    case 7:
                        me->SetVisible(true);
                        HandleGameObject(DATA_ARENA1, false);
                        Talk(SAY_TEXT6);
                        CanWalk = true;
                        Event_Timer = 5000;
                        break;
                    case 8:
                        HandleGameObject(DATA_ARENA2, true);
                        Event_Timer = 5000;
                        break;
                    case 9:
                        me->SetVisible(false);
                        SummonRingBoss();
                        Event_Timer = 0;
                        break;
                    case 10:
                        //if quest, complete
                        HandleGameObject(DATA_ARENA2, false);
                        HandleGameObject(DATA_ARENA3, true);
                        HandleGameObject(DATA_ARENA4, true);
                        CanWalk = true;
                        Event_Timer = 0;
                        break;
                    }
                    ++EventPhase;
                } else Event_Timer -= diff;
            }

            if (CanWalk)
                EscortAI::UpdateAI(diff);
           }
    };

Edited by kageboshi
Link to comment
Share on other sites

  • kageboshi changed the title to Blackrock Depths Ring of Law Event Stuck 3.3.5

Doing some testing, it appears the event gets hung up if the first wave of mobs are killed before the gate closes. I added some logging to each of the switch case statements for EventPhase and waypointID. 

Here's logging for the hung up event

npc_grimstone: Eventphase  0.
EscortAI::Start: (script: npc_grimstone) started with 6 waypoints. ActiveAttacker = 0, Run = 0, Player = GUID Full: 0x0000000000000000 Type: None Low: 0 (GUID Full: 0xf1300027700003f7 Type: Creature Entry: 10096  Low: 1015)
npc_grimstone: Eventphase  increment.
npc_grimstone: waypoint 0
npc_grimstone: Eventphase  1.
npc_grimstone: Eventphase  increment.
npc_grimstone: waypoint 1
npc_grimstone: Eventphase  2.
npc_grimstone: Eventphase  increment.
npc_grimstone: Eventphase  3.
npc_grimstone: Eventphase  increment.
npc_grimstone: waypoint 2.
npc_grimstone: Eventphase  4.
SmartScript::ProcessAction: Invoker: High Justice Grimstone GUID Full: 0xf1300027700003f7 Type: Creature Entry: 10096  Low: 1015
npc_grimstone: Eventphase  increment.
npc_grimstone: waypoint 3.
npc_grimstone: Eventphase  5.
SmartScript::ProcessAction: Invoker: High Justice Grimstone GUID Full: 0xf1300027700003f7 Type: Creature Entry: 10096  Low: 1015
SmartScript::ProcessAction: Invoker: High Justice Grimstone GUID Full: 0xf1300027700003f7 Type: Creature Entry: 10096  Low: 1015
npc_grimstone: Eventphase  increment.
npc_grimstone: Eventphase  6.
SmartScript::ProcessAction: Invoker: High Justice Grimstone GUID Full: 0xf1300027700003f7 Type: Creature Entry: 10096  Low: 1015
npc_grimstone: Eventphase  increment.
npc_grimstone: waypoint 4.
npc_grimstone: Eventphase  7.
npc_grimstone: Eventphase  increment.
npc_grimstone: event reached end and set complete waypoint 5.

 

and here's logging for a completed event

npc_grimstone: Eventphase  0.
EscortAI::Start: (script: npc_grimstone) started with 6 waypoints. ActiveAttacker = 0, Run = 0, Player = GUID Full: 0x0000000000000000 Type: None Low: 0 (GUID Full: 0xf130002770000402 Type: Creature Entry: 10096  Low: 1026)
npc_grimstone: Eventphase  increment.
npc_grimstone: waypoint 0
npc_grimstone: Eventphase  1.
npc_grimstone: Eventphase  increment.
npc_grimstone: waypoint 1
npc_grimstone: Eventphase  2.
npc_grimstone: Eventphase  increment.
npc_grimstone: Eventphase  3.
npc_grimstone: Eventphase  increment.
npc_grimstone: waypoint 2.
npc_grimstone: Eventphase  4.
SmartScript::ProcessAction: Invoker: High Justice Grimstone GUID Full: 0xf130002770000402 Type: Creature Entry: 10096  Low: 1026
npc_grimstone: Eventphase  increment.
npc_grimstone: waypoint 3.
npc_grimstone: Eventphase  5.
SmartScript::ProcessAction: Invoker: High Justice Grimstone GUID Full: 0xf130002770000402 Type: Creature Entry: 10096  Low: 1026
SmartScript::ProcessAction: Invoker: High Justice Grimstone GUID Full: 0xf130002770000402 Type: Creature Entry: 10096  Low: 1026
npc_grimstone: Eventphase  increment.
npc_grimstone: Eventphase  6.
SmartScript::ProcessAction: Invoker: High Justice Grimstone GUID Full: 0xf130002770000402 Type: Creature Entry: 10096  Low: 1026
npc_grimstone: Eventphase  increment.
npc_grimstone: Eventphase  7.
npc_grimstone: Eventphase  increment.
npc_grimstone: waypoint 4.
npc_grimstone: Eventphase  8.
npc_grimstone: Eventphase  increment.
npc_grimstone: event reached end and set complete waypoint 5.
npc_grimstone: Eventphase  9.
SmartScript::ProcessAction: Invoker: High Justice Grimstone GUID Full: 0xf130002770000402 Type: Creature Entry: 10096  Low: 1026
npc_grimstone: Eventphase  increment.
npc_grimstone: Eventphase  10.
npc_grimstone: Eventphase  increment.

 

Link to comment
Share on other sites

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...