Core/Instance: Naxxramas conversation fix (#1304)

* Resolve Issue 1138
* Move sql update to a single line
Co-Authored-By: ColdIronWow <46758545+ColdIronWow@users.noreply.github.com>
This commit is contained in:
ColdIronWow
2019-01-19 05:49:08 -05:00
committed by Viste(Кирилл)
parent 0e495e9698
commit 7bf1167b53
4 changed files with 36 additions and 13 deletions

View File

@@ -120,11 +120,13 @@ public:
boss_kelthuzadAI(Creature* c) : BossAI(c, BOSS_KELTHUZAD), summons(me)
{
pInstance = me->GetInstanceScript();
_justSpawned=true;
}
EventMap events;
SummonList summons;
InstanceScript* pInstance;
bool _justSpawned;
float NormalizeOrientation(float o)
{
@@ -175,7 +177,11 @@ public:
}
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetData64(DATA_KELTHUZAD_GATE)))
go->SetGoState(GO_STATE_ACTIVE);
{
if(!_justSpawned) /* Don't open the door if we just spawned and are still doing the RP */
go->SetGoState(GO_STATE_ACTIVE);
}
_justSpawned=false;
}

View File

@@ -301,7 +301,9 @@ public:
break;
case GO_KELTHUZAD_GATE:
_kelthuzadgateGUID = pGo->GetGUID();
break;
if (GetBossState(BOSS_SAPPHIRON) == DONE && _speakTimer==0)
pGo->SetGoState(GO_STATE_ACTIVE);
break;
case GO_SAPPHIRON_GATE:
_sapphironGateGUID = pGo->GetGUID();
if (GetBossState(BOSS_SAPPHIRON) == DONE)
@@ -523,7 +525,11 @@ public:
break;
case BOSS_SAPPHIRON:
if (state == DONE)
{
_speakTimer = 1;
// Load KT's grid so he can talk
instance->LoadGrid(3763.43f, -5115.87f);
}
else if (state == NOT_STARTED)
sapphironAchievement = true;
break;
@@ -618,30 +624,37 @@ public:
_speakTimer += diff;
else
return;
if (_speakTimer > 20000 && _speakTimer < 30000)
if (_speakTimer > 10000 && _speakTimer < 20000)
{
kel->AI()->Talk(SAY_SAPP_DIALOG1);
_speakTimer = 30000;
_speakTimer = 20000;
}
else if (_speakTimer > 45000 && _speakTimer < 50000)
else if (_speakTimer > 30000 && _speakTimer < 40000)
{
lich->AI()->Talk(SAY_SAPP_DIALOG2_LICH);
_speakTimer = 50000;
_speakTimer = 40000;
}
else if (_speakTimer > 58000 && _speakTimer < 70000)
else if (_speakTimer > 54000 && _speakTimer < 60000)
{
kel->AI()->Talk(SAY_SAPP_DIALOG3);
_speakTimer = 70000;
_speakTimer = 60000;
}
else if (_speakTimer > 78000 && _speakTimer < 90000)
else if (_speakTimer > 70000 && _speakTimer < 80000)
{
lich->AI()->Talk(SAY_SAPP_DIALOG4_LICH);
_speakTimer = 90000;
_speakTimer = 80000;
}
else if (_speakTimer > 98000)
else if (_speakTimer > 92000 && _speakTimer < 100000)
{
kel->AI()->Talk(SAY_SAPP_DIALOG5);
_speakTimer = 100000;
}
else if (_speakTimer > 105000)
{
kel->AI()->Talk(SAY_SAPP_DIALOG6);
_speakTimer = 0;
if (GameObject* go = instance->GetGameObject(_kelthuzadgateGUID))
go->SetGoState(GO_STATE_ACTIVE);
}
}

View File

@@ -123,10 +123,11 @@ enum NXMisc
enum NXSays
{
SAY_SAPP_DIALOG1 = 0,
SAY_SAPP_DIALOG2_LICH = 0,
SAY_SAPP_DIALOG2_LICH = 1,
SAY_SAPP_DIALOG3 = 2,
SAY_SAPP_DIALOG4_LICH = 1,
SAY_SAPP_DIALOG4_LICH = 2,
SAY_SAPP_DIALOG5 = 4,
SAY_SAPP_DIALOG6 = 20,
SAY_CAT_DIED = 0
};