aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBlaymoira <none@none>2009-02-08 11:56:46 +0100
committerBlaymoira <none@none>2009-02-08 11:56:46 +0100
commit1d7d2fdf755620de0fd0e7c541bf8ea0c92bff8e (patch)
tree39b13e8ec92cb9fa9a9fe5e7d5cd11a38954c128 /src
parentb37fd436a1e96cc52e07986ff72946b6d6d0fb44 (diff)
*Prevent multiple summoning of nightbane - by Bagsac
--HG-- branch : trunk
Diffstat (limited to 'src')
-rw-r--r--src/bindings/scripts/scripts/zone/karazhan/boss_nightbane.cpp21
-rw-r--r--src/bindings/scripts/scripts/zone/karazhan/instance_karazhan.cpp27
2 files changed, 26 insertions, 22 deletions
diff --git a/src/bindings/scripts/scripts/zone/karazhan/boss_nightbane.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_nightbane.cpp
index fb78c46235c..f819037e7da 100644
--- a/src/bindings/scripts/scripts/zone/karazhan/boss_nightbane.cpp
+++ b/src/bindings/scripts/scripts/zone/karazhan/boss_nightbane.cpp
@@ -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();
-} \ No newline at end of file
+}
diff --git a/src/bindings/scripts/scripts/zone/karazhan/instance_karazhan.cpp b/src/bindings/scripts/scripts/zone/karazhan/instance_karazhan.cpp
index b0a6f5d130b..96938daaa82 100644
--- a/src/bindings/scripts/scripts/zone/karazhan/instance_karazhan.cpp
+++ b/src/bindings/scripts/scripts/zone/karazhan/instance_karazhan.cpp
@@ -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;
}