Fix Zul Aman
This commit is contained in:
@@ -143,7 +143,9 @@ class boss_nalorakk : public CreatureScript
|
|||||||
waitTimer = 0;
|
waitTimer = 0;
|
||||||
me->SetSpeed(MOVE_RUN, 2);
|
me->SetSpeed(MOVE_RUN, 2);
|
||||||
me->SetWalk(false);
|
me->SetWalk(false);
|
||||||
}else
|
ResetMobs();
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
(*me).GetMotionMaster()->MovePoint(0, NalorakkWay[7][0], NalorakkWay[7][1], NalorakkWay[7][2]);
|
(*me).GetMotionMaster()->MovePoint(0, NalorakkWay[7][0], NalorakkWay[7][1], NalorakkWay[7][2]);
|
||||||
}
|
}
|
||||||
@@ -160,6 +162,33 @@ class boss_nalorakk : public CreatureScript
|
|||||||
// me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1, 5122); /// @todo find the correct equipment id
|
// me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1, 5122); /// @todo find the correct equipment id
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ResetMobs()
|
||||||
|
{
|
||||||
|
std::list<Creature*> templist;
|
||||||
|
float x, y, z;
|
||||||
|
me->GetPosition(x, y, z);
|
||||||
|
|
||||||
|
{
|
||||||
|
CellCoord pair(Trinity::ComputeCellCoord(x, y));
|
||||||
|
Cell cell(pair);
|
||||||
|
cell.SetNoCreate();
|
||||||
|
|
||||||
|
Trinity::AllFriendlyCreaturesInGrid check(me);
|
||||||
|
Trinity::CreatureListSearcher<Trinity::AllFriendlyCreaturesInGrid> searcher(me, templist, check);
|
||||||
|
|
||||||
|
TypeContainerVisitor<Trinity::CreatureListSearcher<Trinity::AllFriendlyCreaturesInGrid>, GridTypeMapContainer> cSearcher(searcher);
|
||||||
|
|
||||||
|
cell.Visit(pair, cSearcher, *(me->GetMap()), *me, me->GetGridActivationRange());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (templist.empty())
|
||||||
|
return;
|
||||||
|
|
||||||
|
for (std::list<Creature*>::const_iterator i = templist.begin(); i != templist.end(); ++i)
|
||||||
|
if ((*i) && me->IsWithinDistInMap((*i), 25))
|
||||||
|
(*i)->AI()->Reset();
|
||||||
|
}
|
||||||
|
|
||||||
void SendAttacker(Unit* target)
|
void SendAttacker(Unit* target)
|
||||||
{
|
{
|
||||||
std::list<Creature*> templist;
|
std::list<Creature*> templist;
|
||||||
@@ -283,6 +312,7 @@ class boss_nalorakk : public CreatureScript
|
|||||||
|
|
||||||
void JustDied(Unit* /*killer*/)
|
void JustDied(Unit* /*killer*/)
|
||||||
{
|
{
|
||||||
|
ResetMobs();
|
||||||
instance->SetData(DATA_NALORAKKEVENT, DONE);
|
instance->SetData(DATA_NALORAKKEVENT, DONE);
|
||||||
|
|
||||||
me->MonsterYell(YELL_DEATH, LANG_UNIVERSAL, NULL);
|
me->MonsterYell(YELL_DEATH, LANG_UNIVERSAL, NULL);
|
||||||
|
|||||||
@@ -235,69 +235,75 @@ class instance_zulaman : public InstanceMapScript
|
|||||||
{
|
{
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case DATA_GONGEVENT:
|
case DATA_GONGEVENT:
|
||||||
m_auiEncounter[DATA_GONGEVENT] = data;
|
m_auiEncounter[DATA_GONGEVENT] = data;
|
||||||
if (data == IN_PROGRESS)
|
if (data == IN_PROGRESS)
|
||||||
|
SaveToDB();
|
||||||
|
else if (data == DONE)
|
||||||
|
QuestMinute = 21;
|
||||||
|
break;
|
||||||
|
case DATA_NALORAKKEVENT:
|
||||||
|
m_auiEncounter[DATA_NALORAKKEVENT] = data;
|
||||||
|
if (data == DONE)
|
||||||
|
{
|
||||||
|
if (QuestMinute)
|
||||||
|
{
|
||||||
|
QuestMinute += 15;
|
||||||
|
DoUpdateWorldState(WORLDSTATE_TIME_TO_SACRIFICE, QuestMinute);
|
||||||
|
}
|
||||||
|
SummonHostage(0);
|
||||||
|
SaveToDB();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case DATA_AKILZONEVENT:
|
||||||
|
m_auiEncounter[DATA_AKILZONEVENT] = data;
|
||||||
|
HandleGameObject(AkilzonDoorGUID, data != IN_PROGRESS);
|
||||||
|
if (data == DONE)
|
||||||
|
{
|
||||||
|
if (QuestMinute)
|
||||||
|
{
|
||||||
|
QuestMinute += 10;
|
||||||
|
DoUpdateWorldState(WORLDSTATE_TIME_TO_SACRIFICE, QuestMinute);
|
||||||
|
}
|
||||||
|
SummonHostage(1);
|
||||||
|
SaveToDB();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case DATA_JANALAIEVENT:
|
||||||
|
m_auiEncounter[DATA_JANALAIEVENT] = data;
|
||||||
|
if (data == DONE)
|
||||||
|
SummonHostage(2);
|
||||||
SaveToDB();
|
SaveToDB();
|
||||||
else if (data == DONE)
|
break;
|
||||||
QuestMinute = 21;
|
case DATA_HALAZZIEVENT:
|
||||||
break;
|
m_auiEncounter[DATA_HALAZZIEVENT] = data;
|
||||||
case DATA_NALORAKKEVENT:
|
HandleGameObject(HalazziDoorGUID, data != IN_PROGRESS);
|
||||||
m_auiEncounter[DATA_NALORAKKEVENT] = data;
|
if (data == DONE) SummonHostage(3);
|
||||||
if (data == DONE)
|
SaveToDB();
|
||||||
{
|
break;
|
||||||
if (QuestMinute)
|
case DATA_HEXLORDEVENT:
|
||||||
{
|
m_auiEncounter[DATA_HEXLORDEVENT] = data;
|
||||||
QuestMinute += 15;
|
if (data == IN_PROGRESS)
|
||||||
DoUpdateWorldState(WORLDSTATE_TIME_TO_SACRIFICE, QuestMinute);
|
HandleGameObject(HexLordGateGUID, false);
|
||||||
}
|
else if (data == NOT_STARTED)
|
||||||
SummonHostage(0);
|
CheckInstanceStatus();
|
||||||
}
|
SaveToDB();
|
||||||
break;
|
break;
|
||||||
case DATA_AKILZONEVENT:
|
case DATA_ZULJINEVENT:
|
||||||
m_auiEncounter[DATA_AKILZONEVENT] = data;
|
m_auiEncounter[DATA_ZULJINEVENT] = data;
|
||||||
HandleGameObject(AkilzonDoorGUID, data != IN_PROGRESS);
|
HandleGameObject(ZulJinDoorGUID, data != IN_PROGRESS);
|
||||||
if (data == DONE)
|
SaveToDB();
|
||||||
{
|
break;
|
||||||
if (QuestMinute)
|
case DATA_CHESTLOOTED:
|
||||||
{
|
++ChestLooted;
|
||||||
QuestMinute += 10;
|
SaveToDB();
|
||||||
DoUpdateWorldState(WORLDSTATE_TIME_TO_SACRIFICE, QuestMinute);
|
break;
|
||||||
}
|
case TYPE_RAND_VENDOR_1:
|
||||||
SummonHostage(1);
|
RandVendor[0] = data;
|
||||||
}
|
break;
|
||||||
break;
|
case TYPE_RAND_VENDOR_2:
|
||||||
case DATA_JANALAIEVENT:
|
RandVendor[1] = data;
|
||||||
m_auiEncounter[DATA_JANALAIEVENT] = data;
|
break;
|
||||||
if (data == DONE)
|
|
||||||
SummonHostage(2);
|
|
||||||
break;
|
|
||||||
case DATA_HALAZZIEVENT:
|
|
||||||
m_auiEncounter[DATA_HALAZZIEVENT] = data;
|
|
||||||
HandleGameObject(HalazziDoorGUID, data != IN_PROGRESS);
|
|
||||||
if (data == DONE) SummonHostage(3);
|
|
||||||
break;
|
|
||||||
case DATA_HEXLORDEVENT:
|
|
||||||
m_auiEncounter[DATA_HEXLORDEVENT] = data;
|
|
||||||
if (data == IN_PROGRESS)
|
|
||||||
HandleGameObject(HexLordGateGUID, false);
|
|
||||||
else if (data == NOT_STARTED)
|
|
||||||
CheckInstanceStatus();
|
|
||||||
break;
|
|
||||||
case DATA_ZULJINEVENT:
|
|
||||||
m_auiEncounter[DATA_ZULJINEVENT] = data;
|
|
||||||
HandleGameObject(ZulJinDoorGUID, data != IN_PROGRESS);
|
|
||||||
break;
|
|
||||||
case DATA_CHESTLOOTED:
|
|
||||||
++ChestLooted;
|
|
||||||
SaveToDB();
|
|
||||||
break;
|
|
||||||
case TYPE_RAND_VENDOR_1:
|
|
||||||
RandVendor[0] = data;
|
|
||||||
break;
|
|
||||||
case TYPE_RAND_VENDOR_2:
|
|
||||||
RandVendor[1] = data;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data == DONE)
|
if (data == DONE)
|
||||||
@@ -317,17 +323,17 @@ class instance_zulaman : public InstanceMapScript
|
|||||||
{
|
{
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case DATA_GONGEVENT: return m_auiEncounter[DATA_GONGEVENT];
|
case DATA_GONGEVENT: return m_auiEncounter[DATA_GONGEVENT];
|
||||||
case DATA_NALORAKKEVENT: return m_auiEncounter[DATA_NALORAKKEVENT];
|
case DATA_NALORAKKEVENT: return m_auiEncounter[DATA_NALORAKKEVENT];
|
||||||
case DATA_AKILZONEVENT: return m_auiEncounter[DATA_AKILZONEVENT];
|
case DATA_AKILZONEVENT: return m_auiEncounter[DATA_AKILZONEVENT];
|
||||||
case DATA_JANALAIEVENT: return m_auiEncounter[DATA_JANALAIEVENT];
|
case DATA_JANALAIEVENT: return m_auiEncounter[DATA_JANALAIEVENT];
|
||||||
case DATA_HALAZZIEVENT: return m_auiEncounter[DATA_HALAZZIEVENT];
|
case DATA_HALAZZIEVENT: return m_auiEncounter[DATA_HALAZZIEVENT];
|
||||||
case DATA_HEXLORDEVENT: return m_auiEncounter[DATA_HEXLORDEVENT];
|
case DATA_HEXLORDEVENT: return m_auiEncounter[DATA_HEXLORDEVENT];
|
||||||
case DATA_ZULJINEVENT: return m_auiEncounter[DATA_ZULJINEVENT];
|
case DATA_ZULJINEVENT: return m_auiEncounter[DATA_ZULJINEVENT];
|
||||||
case DATA_CHESTLOOTED: return ChestLooted;
|
case DATA_CHESTLOOTED: return ChestLooted;
|
||||||
case TYPE_RAND_VENDOR_1: return RandVendor[0];
|
case TYPE_RAND_VENDOR_1: return RandVendor[0];
|
||||||
case TYPE_RAND_VENDOR_2: return RandVendor[1];
|
case TYPE_RAND_VENDOR_2: return RandVendor[1];
|
||||||
default: return 0;
|
default: return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user