diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/bindings/scripts/scripts/zone/karazhan/boss_nightbane.cpp | 21 | ||||
-rw-r--r-- | src/bindings/scripts/scripts/zone/karazhan/instance_karazhan.cpp | 27 |
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; } |