*Prevent multiple summoning of Nightbane - by Klaimmore
--HG-- branch : trunk
This commit is contained in:
@@ -114,8 +114,7 @@ struct TRINITY_DLL_DECL boss_nightbaneAI : public ScriptedAI
|
|||||||
m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_WALK_MODE);
|
m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_WALK_MODE);
|
||||||
m_creature->setActive(true);
|
m_creature->setActive(true);
|
||||||
|
|
||||||
pInstance->SetData(DATA_NIGHTBANE_EVENT, 6);
|
if(pInstance->GetData(DATA_NIGHTBANE_EVENT) == DONE || pInstance->GetData(DATA_NIGHTBANE_EVENT) == IN_PROGRESS)
|
||||||
if(pInstance->GetData(DATA_NIGHTBANE_EVENT) > 1)
|
|
||||||
{
|
{
|
||||||
m_creature->DealDamage(m_creature, m_creature->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
|
m_creature->DealDamage(m_creature, m_creature->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
|
||||||
m_creature->RemoveCorpse();
|
m_creature->RemoveCorpse();
|
||||||
|
|||||||
@@ -64,9 +64,6 @@ struct TRINITY_DLL_DECL instance_karazhan : public ScriptedInstance
|
|||||||
uint64 MastersTerraceDoor[2];
|
uint64 MastersTerraceDoor[2];
|
||||||
uint64 ImageGUID;
|
uint64 ImageGUID;
|
||||||
|
|
||||||
uint8 Nightbane;
|
|
||||||
bool CheckNightbane;
|
|
||||||
|
|
||||||
void Initialize()
|
void Initialize()
|
||||||
{
|
{
|
||||||
for (uint8 i = 0; i < ENCOUNTERS; ++i)
|
for (uint8 i = 0; i < ENCOUNTERS; ++i)
|
||||||
@@ -91,10 +88,6 @@ struct TRINITY_DLL_DECL instance_karazhan : public ScriptedInstance
|
|||||||
MastersTerraceDoor[0]= 0;
|
MastersTerraceDoor[0]= 0;
|
||||||
MastersTerraceDoor[1]= 0;
|
MastersTerraceDoor[1]= 0;
|
||||||
ImageGUID = 0;
|
ImageGUID = 0;
|
||||||
|
|
||||||
Nightbane = 0;
|
|
||||||
|
|
||||||
CheckNightbane = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IsEncounterInProgress() const
|
bool IsEncounterInProgress() const
|
||||||
@@ -121,12 +114,7 @@ struct TRINITY_DLL_DECL instance_karazhan : public ScriptedInstance
|
|||||||
case DATA_NETHERSPITE_EVENT: return Encounters[8];
|
case DATA_NETHERSPITE_EVENT: return Encounters[8];
|
||||||
case DATA_CHESS_EVENT: return Encounters[9];
|
case DATA_CHESS_EVENT: return Encounters[9];
|
||||||
case DATA_MALCHEZZAR_EVENT: return Encounters[10];
|
case DATA_MALCHEZZAR_EVENT: return Encounters[10];
|
||||||
case DATA_NIGHTBANE_EVENT:
|
case DATA_NIGHTBANE_EVENT: return Encounters[11];
|
||||||
if(CheckNightbane)
|
|
||||||
{
|
|
||||||
CheckNightbane = false;
|
|
||||||
return Nightbane;
|
|
||||||
}else return Encounters[11];
|
|
||||||
case DATA_OPERA_PERFORMANCE: return OperaEvent;
|
case DATA_OPERA_PERFORMANCE: return OperaEvent;
|
||||||
case DATA_OPERA_OZ_DEATHCOUNT: return OzDeathCount;
|
case DATA_OPERA_OZ_DEATHCOUNT: return OzDeathCount;
|
||||||
case DATA_IMAGE_OF_MEDIVH: return ImageGUID;
|
case DATA_IMAGE_OF_MEDIVH: return ImageGUID;
|
||||||
@@ -187,11 +175,9 @@ struct TRINITY_DLL_DECL instance_karazhan : public ScriptedInstance
|
|||||||
case DATA_CHESS_EVENT: Encounters[9] = data; break;
|
case DATA_CHESS_EVENT: Encounters[9] = data; break;
|
||||||
case DATA_MALCHEZZAR_EVENT: Encounters[10] = data; break;
|
case DATA_MALCHEZZAR_EVENT: Encounters[10] = data; break;
|
||||||
case DATA_NIGHTBANE_EVENT:
|
case DATA_NIGHTBANE_EVENT:
|
||||||
if(data == 6)
|
if (Encounters[11] == DONE)
|
||||||
{
|
break;
|
||||||
Nightbane;
|
Encounters[11] = data;
|
||||||
CheckNightbane = true;
|
|
||||||
}else Encounters[11] = data;
|
|
||||||
break;
|
break;
|
||||||
case DATA_OPERA_OZ_DEATHCOUNT: ++OzDeathCount; break;
|
case DATA_OPERA_OZ_DEATHCOUNT: ++OzDeathCount; break;
|
||||||
}
|
}
|
||||||
@@ -244,7 +230,7 @@ struct TRINITY_DLL_DECL instance_karazhan : public ScriptedInstance
|
|||||||
std::ostringstream stream;
|
std::ostringstream stream;
|
||||||
stream << Encounters[0] << " " << Encounters[1] << " " << Encounters[2] << " " << Encounters[3] << " "
|
stream << Encounters[0] << " " << Encounters[1] << " " << Encounters[2] << " " << Encounters[3] << " "
|
||||||
<< Encounters[4] << " " << Encounters[5] << " " << Encounters[6] << " " << Encounters[7] << " "
|
<< Encounters[4] << " " << Encounters[5] << " " << Encounters[6] << " " << Encounters[7] << " "
|
||||||
<< Encounters[8] << " " << Encounters[9] << " " << Encounters[10];
|
<< Encounters[8] << " " << Encounters[9] << " " << Encounters[10] << " " << Encounters[11];
|
||||||
char* out = new char[stream.str().length() + 1];
|
char* out = new char[stream.str().length() + 1];
|
||||||
strcpy(out, stream.str().c_str());
|
strcpy(out, stream.str().c_str());
|
||||||
if(out)
|
if(out)
|
||||||
@@ -268,7 +254,7 @@ struct TRINITY_DLL_DECL instance_karazhan : public ScriptedInstance
|
|||||||
std::istringstream stream(in);
|
std::istringstream stream(in);
|
||||||
stream >> Encounters[0] >> Encounters[1] >> Encounters[2] >> Encounters[3]
|
stream >> Encounters[0] >> Encounters[1] >> Encounters[2] >> Encounters[3]
|
||||||
>> Encounters[4] >> Encounters[5] >> Encounters[6] >> Encounters[7]
|
>> Encounters[4] >> Encounters[5] >> Encounters[6] >> Encounters[7]
|
||||||
>> Encounters[8] >> Encounters[9] >> Encounters[10];
|
>> Encounters[8] >> Encounters[9] >> Encounters[10] >> Encounters[11];
|
||||||
for(uint8 i = 0; i < ENCOUNTERS; ++i)
|
for(uint8 i = 0; i < ENCOUNTERS; ++i)
|
||||||
if(Encounters[i] == IN_PROGRESS) // Do not load an encounter as "In Progress" - reset it instead.
|
if(Encounters[i] == IN_PROGRESS) // Do not load an encounter as "In Progress" - reset it instead.
|
||||||
Encounters[i] = NOT_STARTED;
|
Encounters[i] = NOT_STARTED;
|
||||||
|
|||||||
Reference in New Issue
Block a user