mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-02-01 18:13:48 +00:00
fix(Scripts/BlackMorass): Fixed mob waves sequence. (#14863)
This commit is contained in:
@@ -207,10 +207,14 @@ public:
|
||||
case NPC_RIFT_LORD:
|
||||
case NPC_RIFT_LORD_2:
|
||||
case NPC_INFINITE_ASSASIN:
|
||||
case NPC_INFINITE_ASSASIN_2:
|
||||
case NPC_INFINITE_WHELP:
|
||||
case NPC_INFINITE_CRONOMANCER:
|
||||
case NPC_INFINITE_CHRONOMANCER:
|
||||
case NPC_INFINITE_CHRONOMANCER_2:
|
||||
case NPC_INFINITE_EXECUTIONER:
|
||||
case NPC_INFINITE_EXECUTIONER_2:
|
||||
case NPC_INFINITE_VANQUISHER:
|
||||
case NPC_INFINITE_VANQUISHER_2:
|
||||
case NPC_DP_BEAM_STALKER:
|
||||
_encounterNPCs.insert(creature->GetGUID());
|
||||
break;
|
||||
@@ -248,10 +252,14 @@ public:
|
||||
case NPC_RIFT_LORD:
|
||||
case NPC_RIFT_LORD_2:
|
||||
case NPC_INFINITE_ASSASIN:
|
||||
case NPC_INFINITE_ASSASIN_2:
|
||||
case NPC_INFINITE_WHELP:
|
||||
case NPC_INFINITE_CRONOMANCER:
|
||||
case NPC_INFINITE_CHRONOMANCER:
|
||||
case NPC_INFINITE_CHRONOMANCER_2:
|
||||
case NPC_INFINITE_EXECUTIONER:
|
||||
case NPC_INFINITE_EXECUTIONER_2:
|
||||
case NPC_INFINITE_VANQUISHER:
|
||||
case NPC_INFINITE_VANQUISHER_2:
|
||||
_encounterNPCs.erase(creature->GetGUID());
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -43,6 +43,10 @@ enum medivhMisc
|
||||
EVENT_OUTRO_8 = 17
|
||||
};
|
||||
|
||||
static std::vector<uint32> firstWave = { NPC_INFINITE_ASSASIN, NPC_INFINITE_WHELP, NPC_INFINITE_CHRONOMANCER };
|
||||
static std::vector<uint32> secondWave = { NPC_INFINITE_EXECUTIONER, NPC_INFINITE_CHRONOMANCER, NPC_INFINITE_WHELP, NPC_INFINITE_ASSASIN };
|
||||
static std::vector<uint32> thirdWave = { NPC_INFINITE_EXECUTIONER, NPC_INFINITE_VANQUISHER, NPC_INFINITE_CHRONOMANCER, NPC_INFINITE_ASSASIN };
|
||||
|
||||
class NpcRunToHome : public BasicEvent
|
||||
{
|
||||
public:
|
||||
@@ -258,12 +262,27 @@ struct npc_time_rift : public NullCreatureAI
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
if (_instance->GetData(DATA_RIFT_NUMBER) > 18)
|
||||
uint32 riftNumer = _instance->GetData(DATA_RIFT_NUMBER);
|
||||
if (riftNumer >= 18)
|
||||
{
|
||||
me->DespawnOrUnsummon(30000);
|
||||
return;
|
||||
}
|
||||
|
||||
if (riftNumer < 6)
|
||||
{
|
||||
waveMobs = firstWave;
|
||||
}
|
||||
else if (riftNumer < 12)
|
||||
{
|
||||
waveMobs = secondWave;
|
||||
}
|
||||
else
|
||||
{
|
||||
waveMobs = thirdWave;
|
||||
}
|
||||
|
||||
waveMobIndex = 0;
|
||||
events.ScheduleEvent(EVENT_SUMMON_AT_RIFT, 16s);
|
||||
events.ScheduleEvent(EVENT_SUMMON_BOSS, 6s);
|
||||
}
|
||||
@@ -294,7 +313,7 @@ struct npc_time_rift : public NullCreatureAI
|
||||
|
||||
void DoSelectSummon()
|
||||
{
|
||||
uint32 entry = RAND(NPC_INFINITE_ASSASIN, NPC_INFINITE_WHELP, NPC_INFINITE_CRONOMANCER, NPC_INFINITE_EXECUTIONER, NPC_INFINITE_VANQUISHER);
|
||||
uint32 entry = waveMobs[waveMobIndex];
|
||||
if (entry == NPC_INFINITE_WHELP)
|
||||
{
|
||||
DoSummonAtRift(entry);
|
||||
@@ -303,8 +322,34 @@ struct npc_time_rift : public NullCreatureAI
|
||||
}
|
||||
else
|
||||
{
|
||||
if (urand(0, 1))
|
||||
{
|
||||
switch (entry)
|
||||
{
|
||||
case NPC_INFINITE_ASSASIN:
|
||||
entry = NPC_INFINITE_ASSASIN_2;
|
||||
break;
|
||||
case NPC_INFINITE_CHRONOMANCER:
|
||||
entry = NPC_INFINITE_CHRONOMANCER_2;
|
||||
break;
|
||||
case NPC_INFINITE_EXECUTIONER:
|
||||
entry = NPC_INFINITE_EXECUTIONER_2;
|
||||
break;
|
||||
case NPC_INFINITE_VANQUISHER:
|
||||
entry = NPC_INFINITE_VANQUISHER_2;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
DoSummonAtRift(entry);
|
||||
}
|
||||
|
||||
if (++waveMobIndex >= waveMobs.size())
|
||||
{
|
||||
waveMobIndex = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void SummonedCreatureDies(Creature* creature, Unit* /*killer*/) override
|
||||
@@ -368,6 +413,8 @@ private:
|
||||
EventMap _events;
|
||||
InstanceScript* _instance;
|
||||
ObjectGuid _riftKeeperGUID;
|
||||
std::vector<uint32> waveMobs;
|
||||
uint8 waveMobIndex;
|
||||
};
|
||||
|
||||
struct npc_black_morass_summoned_add : public SmartAI
|
||||
|
||||
@@ -77,10 +77,15 @@ enum CreatureIds
|
||||
|
||||
NPC_INFINITE_ASSASIN = 17835,
|
||||
NPC_INFINITE_WHELP = 21818,
|
||||
NPC_INFINITE_CRONOMANCER = 17892,
|
||||
NPC_INFINITE_CHRONOMANCER = 17892,
|
||||
NPC_INFINITE_EXECUTIONER = 18994,
|
||||
NPC_INFINITE_VANQUISHER = 18995,
|
||||
|
||||
NPC_INFINITE_ASSASIN_2 = 21137,
|
||||
NPC_INFINITE_CHRONOMANCER_2 = 21136,
|
||||
NPC_INFINITE_EXECUTIONER_2 = 21138,
|
||||
NPC_INFINITE_VANQUISHER_2 = 21139,
|
||||
|
||||
NPC_DP_EMITTER_STALKER = 18582,
|
||||
NPC_DP_CRYSTAL_STALKER = 18553,
|
||||
NPC_DP_BEAM_STALKER = 18555
|
||||
|
||||
Reference in New Issue
Block a user