Fix the North Portcullis in TOC

This commit is contained in:
grimgravy
2018-03-04 17:37:34 +01:00
committed by BarbzYHOOL
parent a36e94a49a
commit c9f00ca65b
2 changed files with 20 additions and 1 deletions

View File

@@ -51,6 +51,7 @@ public:
uint64 NPC_BlackKnightVehicleGUID; uint64 NPC_BlackKnightVehicleGUID;
uint64 NPC_BlackKnightGUID; uint64 NPC_BlackKnightGUID;
uint64 GO_MainGateGUID; uint64 GO_MainGateGUID;
uint64 GO_EnterGateGUID;
void Initialize() void Initialize()
{ {
@@ -74,10 +75,11 @@ public:
memset(&NPC_GrandChampionMinionsGUID, 0, sizeof(NPC_GrandChampionMinionsGUID)); memset(&NPC_GrandChampionMinionsGUID, 0, sizeof(NPC_GrandChampionMinionsGUID));
memset(&NPC_ArgentSoldierGUID, 0, sizeof(NPC_ArgentSoldierGUID)); memset(&NPC_ArgentSoldierGUID, 0, sizeof(NPC_ArgentSoldierGUID));
NPC_ArgentChampionGUID = 0; NPC_ArgentChampionGUID = 0;
NPC_MemoryEntry = 0; 1 NPC_MemoryEntry = 0;
NPC_BlackKnightVehicleGUID = 0; NPC_BlackKnightVehicleGUID = 0;
NPC_BlackKnightGUID = 0; NPC_BlackKnightGUID = 0;
GO_MainGateGUID = 0; GO_MainGateGUID = 0;
GO_EnterGateGUID = 0;
} }
bool IsEncounterInProgress() const bool IsEncounterInProgress() const
@@ -195,6 +197,10 @@ public:
case GO_EAST_PORTCULLIS: case GO_EAST_PORTCULLIS:
HandleGameObject(go->GetGUID(), false, go); HandleGameObject(go->GetGUID(), false, go);
break; break;
case GO_NORTH_PORTCULLIS:
HandleGameObject(go->GetGUID(), true, go);
GO_EnterGateGUID = go->GetGUID();
break;
} }
} }
@@ -417,6 +423,7 @@ public:
} }
HandleGameObject(GO_MainGateGUID, false); HandleGameObject(GO_MainGateGUID, false);
HandleGameObject(GO_EnterGateGUID, true);
Counter = 0; Counter = 0;
SaveToDB(); SaveToDB();
events.Reset(); events.Reset();
@@ -503,6 +510,7 @@ public:
else else
announcer->AI()->Talk(TEXT_INTRODUCE_PALETRESS); announcer->AI()->Talk(TEXT_INTRODUCE_PALETRESS);
} }
HandleGameObject(GO_EnterGateGUID, false);
events.RescheduleEvent(EVENT_START_ARGENT_CHALLENGE_INTRO, 0); events.RescheduleEvent(EVENT_START_ARGENT_CHALLENGE_INTRO, 0);
break; break;
case INSTANCE_PROGRESS_ARGENT_CHALLENGE_DIED: case INSTANCE_PROGRESS_ARGENT_CHALLENGE_DIED:
@@ -627,6 +635,7 @@ public:
m_auiEncounter[1] = uiData; m_auiEncounter[1] = uiData;
if( uiData == DONE ) if( uiData == DONE )
{ {
HandleGameObject(GO_EnterGateGUID, true);
InstanceProgress = INSTANCE_PROGRESS_ARGENT_CHALLENGE_DIED; InstanceProgress = INSTANCE_PROGRESS_ARGENT_CHALLENGE_DIED;
events.ScheduleEvent(EVENT_ARGENT_CHALLENGE_RUN_MIDDLE, 0); events.ScheduleEvent(EVENT_ARGENT_CHALLENGE_RUN_MIDDLE, 0);
} }
@@ -644,10 +653,16 @@ public:
{ {
m_auiEncounter[2] = uiData; m_auiEncounter[2] = uiData;
if (uiData == NOT_STARTED) if (uiData == NOT_STARTED)
{
HandleGameObject(GO_EnterGateGUID, false);
bAchievIveHadWorse = true; bAchievIveHadWorse = true;
}
else if( uiData == DONE ) else if( uiData == DONE )
{
HandleGameObject(GO_EnterGateGUID, true);
InstanceProgress = INSTANCE_PROGRESS_FINISHED; InstanceProgress = INSTANCE_PROGRESS_FINISHED;
} }
}
break; break;
case DATA_ACHIEV_IVE_HAD_WORSE: case DATA_ACHIEV_IVE_HAD_WORSE:
if (bAchievIveHadWorse) if (bAchievIveHadWorse)
@@ -802,6 +817,7 @@ public:
announcer->SetFacingTo(4.714f); announcer->SetFacingTo(4.714f);
if( Creature* tirion = instance->GetCreature(NPC_TirionGUID) ) if( Creature* tirion = instance->GetCreature(NPC_TirionGUID) )
tirion->AI()->Talk(TEXT_BEGIN); tirion->AI()->Talk(TEXT_BEGIN);
HandleGameObject(GO_EnterGateGUID, false);
} }
for( uint8 i=0; i<3; ++i ) for( uint8 i=0; i<3; ++i )
if( Creature* c = instance->GetCreature(NPC_GrandChampionMinionsGUID[1][i]) ) if( Creature* c = instance->GetCreature(NPC_GrandChampionMinionsGUID[1][i]) )
@@ -955,6 +971,7 @@ public:
if( Creature* tirion = instance->GetCreature(NPC_TirionGUID) ) if( Creature* tirion = instance->GetCreature(NPC_TirionGUID) )
tirion->AI()->Talk(TEXT_GRATZ_SLAIN_CHAMPIONS); tirion->AI()->Talk(TEXT_GRATZ_SLAIN_CHAMPIONS);
events.PopEvent(); events.PopEvent();
HandleGameObject(GO_EnterGateGUID, true);
} }
break; break;
case EVENT_RESTORE_ANNOUNCER_GOSSIP: case EVENT_RESTORE_ANNOUNCER_GOSSIP:
@@ -972,6 +989,7 @@ public:
{ {
announcer->SetFacingToObject(gate); announcer->SetFacingToObject(gate);
HandleGameObject(GO_MainGateGUID, true, gate); HandleGameObject(GO_MainGateGUID, true, gate);
HandleGameObject(GO_EnterGateGUID, false, gate);
} }
if( Counter ) if( Counter )
{ {

View File

@@ -135,6 +135,7 @@ enum eGameObjects
GO_MAIN_GATE = 195647, GO_MAIN_GATE = 195647,
GO_SOUTH_PORTCULLIS = 195649, GO_SOUTH_PORTCULLIS = 195649,
GO_EAST_PORTCULLIS = 195648, GO_EAST_PORTCULLIS = 195648,
GO_NORTH_PORTCULLIS = 195650,
GO_CHAMPIONS_LOOT = 195709, GO_CHAMPIONS_LOOT = 195709,
GO_CHAMPIONS_LOOT_H = 195710, GO_CHAMPIONS_LOOT_H = 195710,