Violet Hold: bosses go out of the cell when door is open, by DennisRassmann

From issue #2810

--HG--
branch : trunk
This commit is contained in:
Tartalo
2010-06-26 22:09:11 +02:00
parent 73a2a21ee4
commit 1b95df4194
@@ -42,6 +42,15 @@ const Position PortalLocation[] =
{1908.31, 809.657, 38.7037, 3.08701} // WP 6 {1908.31, 809.657, 38.7037, 3.08701} // WP 6
}; };
const Position BossStartMove1 = {1894.684448, 739.390503, 47.668003};
const Position BossStartMove2 = {1875.173950, 860.832703, 43.333565};
const Position BossStartMove21 = {1858.854614, 855.071411, 43.333565};
const Position BossStartMove22 = {1891.926636, 863.388977, 43.333565};
const Position BossStartMove3 = {1916.138062, 778.152222, 35.772308};
const Position BossStartMove4 = {1853.618286, 758.557617, 38.657505};
const Position BossStartMove5 = {1906.683960, 842.348022, 38.637459};
const Position BossStartMove6 = {1928.207031, 852.864441, 47.200813};
struct instance_violet_hold : public ScriptedInstance struct instance_violet_hold : public ScriptedInstance
{ {
instance_violet_hold(Map* pMap) : ScriptedInstance(pMap) {Initialize();}; instance_violet_hold(Map* pMap) : ScriptedInstance(pMap) {Initialize();};
@@ -355,6 +364,8 @@ struct instance_violet_hold : public ScriptedInstance
case BOSS_MORAGG: case BOSS_MORAGG:
HandleGameObject(uiMoraggCell,bForceRespawn); HandleGameObject(uiMoraggCell,bForceRespawn);
pBoss = instance->GetCreature(uiMoragg); pBoss = instance->GetCreature(uiMoragg);
if (pBoss)
pBoss->GetMotionMaster()->MovePoint(0, BossStartMove1);
break; break;
case BOSS_EREKEM: case BOSS_EREKEM:
HandleGameObject(uiErekemCell, bForceRespawn); HandleGameObject(uiErekemCell, bForceRespawn);
@@ -363,12 +374,16 @@ struct instance_violet_hold : public ScriptedInstance
pBoss = instance->GetCreature(uiErekem); pBoss = instance->GetCreature(uiErekem);
if (pBoss)
pBoss->GetMotionMaster()->MovePoint(0, BossStartMove2);
if (Creature* pGuard1 = instance->GetCreature(uiErekemGuard[0])) if (Creature* pGuard1 = instance->GetCreature(uiErekemGuard[0]))
{ {
if (bForceRespawn) if (bForceRespawn)
pGuard1->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_OOC_NOT_ATTACKABLE|UNIT_FLAG_NON_ATTACKABLE); pGuard1->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_OOC_NOT_ATTACKABLE|UNIT_FLAG_NON_ATTACKABLE);
else else
pGuard1->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_OOC_NOT_ATTACKABLE|UNIT_FLAG_NON_ATTACKABLE); pGuard1->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_OOC_NOT_ATTACKABLE|UNIT_FLAG_NON_ATTACKABLE);
pGuard1->GetMotionMaster()->MovePoint(0, BossStartMove21);
} }
if (Creature* pGuard2 = instance->GetCreature(uiErekemGuard[1])) if (Creature* pGuard2 = instance->GetCreature(uiErekemGuard[1]))
@@ -377,23 +392,32 @@ struct instance_violet_hold : public ScriptedInstance
pGuard2->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_OOC_NOT_ATTACKABLE|UNIT_FLAG_NON_ATTACKABLE); pGuard2->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_OOC_NOT_ATTACKABLE|UNIT_FLAG_NON_ATTACKABLE);
else else
pGuard2->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_OOC_NOT_ATTACKABLE|UNIT_FLAG_NON_ATTACKABLE); pGuard2->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_OOC_NOT_ATTACKABLE|UNIT_FLAG_NON_ATTACKABLE);
pGuard2->GetMotionMaster()->MovePoint(0, BossStartMove22);
} }
break; break;
case BOSS_ICHORON: case BOSS_ICHORON:
HandleGameObject(uiIchoronCell,bForceRespawn); HandleGameObject(uiIchoronCell,bForceRespawn);
pBoss = instance->GetCreature(uiIchoron); pBoss = instance->GetCreature(uiIchoron);
if (pBoss)
pBoss->GetMotionMaster()->MovePoint(0, BossStartMove3);
break; break;
case BOSS_LAVANTHOR: case BOSS_LAVANTHOR:
HandleGameObject(uiLavanthorCell,bForceRespawn); HandleGameObject(uiLavanthorCell,bForceRespawn);
pBoss = instance->GetCreature(uiLavanthor); pBoss = instance->GetCreature(uiLavanthor);
if (pBoss)
pBoss->GetMotionMaster()->MovePoint(0, BossStartMove4);
break; break;
case BOSS_XEVOZZ: case BOSS_XEVOZZ:
HandleGameObject(uiXevozzCell,bForceRespawn); HandleGameObject(uiXevozzCell,bForceRespawn);
pBoss = instance->GetCreature(uiXevozz); pBoss = instance->GetCreature(uiXevozz);
if (pBoss)
pBoss->GetMotionMaster()->MovePoint(0, BossStartMove5);
break; break;
case BOSS_ZURAMAT: case BOSS_ZURAMAT:
HandleGameObject(uiZuramatCell,bForceRespawn); HandleGameObject(uiZuramatCell,bForceRespawn);
pBoss = instance->GetCreature(uiZuramat); pBoss = instance->GetCreature(uiZuramat);
if (pBoss)
pBoss->GetMotionMaster()->MovePoint(0, BossStartMove6);
break; break;
} }