*Prevent multiple summoning of nightbane - by Bagsac

--HG--
branch : trunk
This commit is contained in:
Blaymoira
2009-02-08 11:56:46 +01:00
parent b37fd436a1
commit 1d7d2fdf75
2 changed files with 26 additions and 22 deletions

View File

@@ -56,15 +56,6 @@ float IntroWay[8][3] =
{-11163 , -1903 ,91.473}
};
//float IntroWay[5][3] =
//{
// {-11000.00, -1765.75, 140.40},
// {-11000.00, -1765.75, 171.00},
// {-11173.67, -1832.26, 117.76},
// {-11142.75, -1916.78, 119.769},
// {-11161.91, -1911.148, 91.473}
//};
struct TRINITY_DLL_DECL boss_nightbaneAI : public ScriptedAI
{
boss_nightbaneAI(Creature* c) : ScriptedAI(c)
@@ -123,10 +114,12 @@ struct TRINITY_DLL_DECL boss_nightbaneAI : public ScriptedAI
m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_WALK_MODE);
m_creature->setActive(true);
if(pInstance->GetData(DATA_NIGHTBANE_EVENT) == DONE)
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
else
pInstance->SetData(DATA_NIGHTBANE_EVENT, NOT_STARTED);
pInstance->SetData(DATA_NIGHTBANE_EVENT, 6);
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->RemoveCorpse();
}else pInstance->SetData(DATA_NIGHTBANE_EVENT, NOT_STARTED);
HandleTerraceDoors(true);
@@ -425,4 +418,4 @@ void AddSC_boss_nightbane()
newscript->Name="boss_nightbane";
newscript->GetAI = &GetAI_boss_nightbane;
newscript->RegisterSelf();
}
}

View File

@@ -40,6 +40,7 @@ EndScriptData */
10 - Prince Malchezzar
11 - Nightbane
*/
struct TRINITY_DLL_DECL instance_karazhan : public ScriptedInstance
{
instance_karazhan(Map* map) : ScriptedInstance(map) {Initialize();}
@@ -63,7 +64,8 @@ struct TRINITY_DLL_DECL instance_karazhan : public ScriptedInstance
uint64 MastersTerraceDoor[2];
uint64 ImageGUID;
bool NightbaneSummoned;
uint8 Nightbane;
bool CheckNightbane;
void Initialize()
{
@@ -90,7 +92,9 @@ struct TRINITY_DLL_DECL instance_karazhan : public ScriptedInstance
MastersTerraceDoor[1]= 0;
ImageGUID = 0;
NightbaneSummoned = false;
Nightbane = 0;
CheckNightbane = false;
}
bool IsEncounterInProgress() const
@@ -117,7 +121,12 @@ struct TRINITY_DLL_DECL instance_karazhan : public ScriptedInstance
case DATA_NETHERSPITE_EVENT: return Encounters[8];
case DATA_CHESS_EVENT: return Encounters[9];
case DATA_MALCHEZZAR_EVENT: return Encounters[10];
case DATA_NIGHTBANE_EVENT: return Encounters[11];
case DATA_NIGHTBANE_EVENT:
if(CheckNightbane)
{
CheckNightbane = false;
return Nightbane;
}else return Encounters[11];
case DATA_OPERA_PERFORMANCE: return OperaEvent;
case DATA_OPERA_OZ_DEATHCOUNT: return OzDeathCount;
case DATA_IMAGE_OF_MEDIVH: return ImageGUID;
@@ -133,9 +142,6 @@ struct TRINITY_DLL_DECL instance_karazhan : public ScriptedInstance
case 17229: KilrekGUID = creature->GetGUID(); break;
case 15688: TerestianGUID = creature->GetGUID(); break;
case 15687: MoroesGUID = creature->GetGUID(); break;
case 17225: if(NightbaneSummoned)creature->RemoveFromWorld();
else NightbaneSummoned = true;
break;
}
}
@@ -180,8 +186,13 @@ struct TRINITY_DLL_DECL instance_karazhan : public ScriptedInstance
case DATA_NETHERSPITE_EVENT: Encounters[8] = data; break;
case DATA_CHESS_EVENT: Encounters[9] = data; break;
case DATA_MALCHEZZAR_EVENT: Encounters[10] = data; break;
case DATA_NIGHTBANE_EVENT: Encounters[11] = data; break;
case DATA_NIGHTBANE_EVENT:
if(data == 6)
{
Nightbane;
CheckNightbane = true;
}else Encounters[11] = data;
break;
case DATA_OPERA_OZ_DEATHCOUNT: ++OzDeathCount; break;
}