aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bindings/scripts/scripts/northrend/violet_hold/def_violet_hold.h3
-rw-r--r--src/bindings/scripts/scripts/northrend/violet_hold/instance_violet_hold.cpp30
-rw-r--r--src/bindings/scripts/scripts/northrend/violet_hold/violet_hold.cpp11
3 files changed, 27 insertions, 17 deletions
diff --git a/src/bindings/scripts/scripts/northrend/violet_hold/def_violet_hold.h b/src/bindings/scripts/scripts/northrend/violet_hold/def_violet_hold.h
index 595cd24a7fb..4e989ffb7bb 100644
--- a/src/bindings/scripts/scripts/northrend/violet_hold/def_violet_hold.h
+++ b/src/bindings/scripts/scripts/northrend/violet_hold/def_violet_hold.h
@@ -26,7 +26,8 @@ enum Data64
DATA_LAVANTHOR_CELL,
DATA_XEVOZZ_CELL,
DATA_ZURAMAT_CELL,
- DATA_MAIN_DOOR
+ DATA_MAIN_DOOR,
+ DATA_SINCLARI
};
#endif
diff --git a/src/bindings/scripts/scripts/northrend/violet_hold/instance_violet_hold.cpp b/src/bindings/scripts/scripts/northrend/violet_hold/instance_violet_hold.cpp
index 74173655fa6..db4c81675ff 100644
--- a/src/bindings/scripts/scripts/northrend/violet_hold/instance_violet_hold.cpp
+++ b/src/bindings/scripts/scripts/northrend/violet_hold/instance_violet_hold.cpp
@@ -19,7 +19,14 @@
enum Creatures
{
CREATURE_TELEPORTATION_PORTAL = 31011,
- CREATURE_CYANIGOSA
+ CREATURE_XEVOZZ = 29266,
+ CREATURE_LAVANTHOR = 29312,
+ CREATURE_ICHORON = 29313,
+ CREATURE_ZURAMAT = 29314,
+ CREATURE_EREKEM = 29315,
+ CREATURE_MORAGG = 29316,
+ CREATURE_CYANIGOSA = 31134,
+ CREATURE_SINCLARI = 30658
};
struct Location
{
@@ -106,28 +113,28 @@ struct TRINITY_DLL_DECL instance_violet_hold : public ScriptedInstance
{
switch(pCreature->GetEntry())
{
- case 29266:
+ case CREATURE_XEVOZZ:
uiXevozz = pCreature->GetGUID();
break;
- case 29312:
+ case CREATURE_LAVANTHOR:
uiLavanthor = pCreature->GetGUID();
break;
- case 29313:
+ case CREATURE_ICHORON:
uiIchoron = pCreature->GetGUID();
break;
- case 29314:
+ case CREATURE_ZURAMAT:
uiZuramat = pCreature->GetGUID();
break;
- case 29315:
+ case CREATURE_EREKEM:
uiErekem = pCreature->GetGUID();
break;
- case 29316:
+ case CREATURE_MORAGG:
uiMoragg = pCreature->GetGUID();
break;
- case 31134:
+ case CREATURE_CYANIGOSA:
uiCyanigosa = pCreature->GetGUID();
break;
- case 30658:
+ case CREATURE_SINCLARI:
uiSinclari = pCreature->GetGUID();
break;
}
@@ -191,7 +198,7 @@ struct TRINITY_DLL_DECL instance_violet_hold : public ScriptedInstance
SaveToDB();
break;
case DATA_CYANIGOSA_EVENT:
- m_auiEncounter[6] = data;
+ m_auiEncounter[2] = data;
if (data == DONE)
{
SaveToDB();
@@ -248,7 +255,7 @@ struct TRINITY_DLL_DECL instance_violet_hold : public ScriptedInstance
{
case DATA_1ST_BOSS_EVENT: return m_auiEncounter[0];
case DATA_2ND_BOSS_EVENT: return m_auiEncounter[1];
- case DATA_CYANIGOSA_EVENT: return m_auiEncounter[3];
+ case DATA_CYANIGOSA_EVENT: return m_auiEncounter[2];
case DATA_WAVE_COUNT: return uiWaveCount;
}
@@ -336,6 +343,7 @@ struct TRINITY_DLL_DECL instance_violet_hold : public ScriptedInstance
case DATA_XEVOZZ_CELL: return uiXevozzCell;
case DATA_ZURAMAT_CELL: return uiZuramatCell;
case DATA_MAIN_DOOR: return uiMainDoor;
+ case DATA_SINCLARI: return uiSinclari;
}
return 0;
diff --git a/src/bindings/scripts/scripts/northrend/violet_hold/violet_hold.cpp b/src/bindings/scripts/scripts/northrend/violet_hold/violet_hold.cpp
index 44803029804..6119261c801 100644
--- a/src/bindings/scripts/scripts/northrend/violet_hold/violet_hold.cpp
+++ b/src/bindings/scripts/scripts/northrend/violet_hold/violet_hold.cpp
@@ -17,7 +17,7 @@ enum Creatures
bool GossipHello_npc_sinclari(Player* pPlayer, Creature* pCreature)
{
ScriptedInstance* pInstance = pCreature->GetInstanceData();
- if (pInstance)
+ if (pInstance && pInstance->GetData(DATA_WAVE_COUNT) == 0)
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT,GOSSIP_START_EVENT,GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+1);
pPlayer->SEND_GOSSIP_MENU(1, pCreature->GetGUID());
return true;
@@ -53,7 +53,7 @@ struct TRINITY_DLL_DECL npc_teleportation_portalAI : public ScriptedAI
void EnterCombat(Unit *who) {}
void MoveInLineOfSight(Unit *who) {}
- void Update(uint32 diff)
+ void UpdateAI(const uint32 diff)
{
if (uiSpawnTimer < diff)
{
@@ -61,13 +61,14 @@ struct TRINITY_DLL_DECL npc_teleportation_portalAI : public ScriptedAI
m_creature->GetPositionX()+rand()%3, m_creature->GetPositionY()+rand()%3,
m_creature->GetPositionZ(),m_creature->GetOrientation(),
TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000))
- pSummon->SetInCombatWithZone();
+ if (pInstance)
+ if (Creature *pSinclari = pInstance->instance->GetCreature(pInstance->GetData64(DATA_SINCLARI)))
+ pSummon->AI()->AttackStart(pSinclari);
uiSpawnTimer = SPAWN_TIME;
} else uiSpawnTimer -= diff;
if (uiDespawnTimer < diff)
{
- m_creature->DealDamage(m_creature, m_creature->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
- m_creature->RemoveCorpse();
+ m_creature->DisappearAndDie();
} else uiDespawnTimer -= diff;
}