kageboshi Posted November 27, 2022 Report Share Posted November 27, 2022 (edited) 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 November 27, 2022 by kageboshi Link to comment Share on other sites More sharing options...
kageboshi Posted November 27, 2022 Author Report Share Posted November 27, 2022 I'm guessing my c++ skills are a bit rusty. I hope my post isn't taken the wrong way. Just trying to dig through the code. Thank you all much for the effort put into this work. Link to comment Share on other sites More sharing options...
kageboshi Posted November 27, 2022 Author Report Share Posted November 27, 2022 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 More sharing options...
Recommended Posts