mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-27 07:36:23 +00:00
feat(Core/Unit): NPCFlags helpers (#11286)
* cherry-pick commit (TrinityCore/TrinityCore@d611925) Co-Authored-By: Shauren <shauren.trinity@gmail.com>
This commit is contained in:
@@ -796,7 +796,7 @@ public:
|
||||
void Reset() override
|
||||
{
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
me->setActive(false);
|
||||
me->SetVisible(instance->GetBossState(DATA_ILLIDARI_COUNCIL) == DONE && instance->GetBossState(DATA_ILLIDAN_STORMRAGE) != DONE);
|
||||
events.Reset();
|
||||
@@ -806,7 +806,7 @@ public:
|
||||
void sGossipSelect(Player* player, uint32 /*sender*/, uint32 /*action*/) override
|
||||
{
|
||||
CloseGossipMenuFor(player);
|
||||
me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
|
||||
me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE);
|
||||
me->setActive(true);
|
||||
|
||||
if (instance->GetBossState(DATA_AKAMA_FINISHED) != DONE)
|
||||
@@ -835,7 +835,7 @@ public:
|
||||
void JustSummoned(Creature* summon) override
|
||||
{
|
||||
summons.Summon(summon);
|
||||
summon->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
|
||||
summon->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE);
|
||||
if (summon->GetEntry() == NPC_ILLIDARI_ELITE)
|
||||
{
|
||||
me->AddThreat(summon, 1000000.0f);
|
||||
@@ -864,7 +864,7 @@ public:
|
||||
}
|
||||
else if (pointId == POINT_ILLIDAN)
|
||||
{
|
||||
me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_GOSSIP);
|
||||
me->setActive(false);
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
}
|
||||
|
||||
@@ -294,11 +294,11 @@ public:
|
||||
{
|
||||
if (instance->GetBossState(DATA_SHADE_OF_AKAMA) == DONE)
|
||||
{
|
||||
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
return;
|
||||
}
|
||||
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
me->CastSpell(me, SPELL_STEALTH, true);
|
||||
events.Reset();
|
||||
events2.Reset();
|
||||
@@ -425,7 +425,7 @@ public:
|
||||
if (action == 0)
|
||||
{
|
||||
CloseGossipMenuFor(player);
|
||||
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
events2.ScheduleEvent(EVENT_AKAMA_START_ENCOUNTER, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -347,7 +347,7 @@ public:
|
||||
{
|
||||
instance->DoCastSpellOnPlayers(SPELL_QID10886);
|
||||
creature->AI()->Talk(SAY_COMPLETE);
|
||||
creature->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
creature->ReplaceAllNpcFlags(UNIT_NPC_FLAG_GOSSIP);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -101,7 +101,7 @@ public:
|
||||
envelopingWinds_Timer = 9000;
|
||||
shock_Timer = 5000;
|
||||
|
||||
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
|
||||
me->RemoveNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
|
||||
me->SetFaction(FACTION_FRIENDLY);
|
||||
|
||||
Talk(SAY_SUMMON);
|
||||
@@ -125,7 +125,7 @@ public:
|
||||
if (HealthBelowPct(30))
|
||||
{
|
||||
me->SetFaction(FACTION_FRIENDLY);
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
|
||||
me->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
|
||||
me->RemoveAllAuras();
|
||||
me->DeleteThreatList();
|
||||
me->CombatStop(true);
|
||||
|
||||
@@ -265,7 +265,7 @@ public:
|
||||
if (action == GOSSIP_ACTION_INFO_DEF + 1)
|
||||
{
|
||||
CloseGossipMenuFor(player);
|
||||
creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
creature->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
creature->AI()->DoAction(EVENT_START_PLAYER_READY);
|
||||
if (Creature* orelis = creature->FindNearestCreature(EXARCH_ORELIS, 15.0f, true))
|
||||
orelis->AI()->DoAction(EVENT_ORELIS_WALK);
|
||||
@@ -397,7 +397,7 @@ public:
|
||||
if (param == EVENT_KARJA_WALK)
|
||||
{
|
||||
me->GetMotionMaster()->MovePath(KARJA_PATH_ID, false);
|
||||
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
}
|
||||
else if (param == RESET_DEATHBLOW_EVENT)
|
||||
{
|
||||
@@ -470,7 +470,7 @@ public:
|
||||
if (param == EVENT_ORELIS_WALK)
|
||||
{
|
||||
me->GetMotionMaster()->MovePath(ORELIS_PATH_ID, false);
|
||||
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
}
|
||||
else if (param == RESET_DEATHBLOW_EVENT)
|
||||
{
|
||||
@@ -643,7 +643,7 @@ public:
|
||||
|
||||
if (GetCreature(ISHANAH_HIGH_PRIESTESS))
|
||||
{
|
||||
ishanah->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
|
||||
ishanah->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
|
||||
ishanah->DespawnOrUnsummon(60000);
|
||||
}
|
||||
|
||||
@@ -793,7 +793,7 @@ public:
|
||||
if (Creature* summonIshanah = me->SummonCreature(ISHANAH_HIGH_PRIESTESS, IshanahSpawnPosition, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 180000))
|
||||
{
|
||||
summonIshanah->GetMotionMaster()->MovePath(ISHANAH_PATH_ID, false);
|
||||
summonIshanah->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
|
||||
summonIshanah->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
|
||||
}
|
||||
break;
|
||||
case EVENT_ISHANAH_SAY_1:
|
||||
@@ -853,7 +853,7 @@ public:
|
||||
ishanah->Respawn();
|
||||
ishanah->setActive(true); // ensure that Ishanah disappears, even when no player is near
|
||||
ishanah->DespawnOrUnsummon(600000); // ensure that Ishanah disappears after 10 minutes
|
||||
ishanah->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
|
||||
ishanah->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
|
||||
}
|
||||
_actionEvents.ScheduleEvent(EVENT_SOCRETHAR_SAY_6, 3000);
|
||||
break;
|
||||
@@ -1166,7 +1166,7 @@ public:
|
||||
{
|
||||
Talk(SAY_SAEED_2);
|
||||
SetEscortPaused(false);
|
||||
me->SetUInt32Value(UNIT_NPC_FLAGS, 0);
|
||||
me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1208,7 +1208,7 @@ public:
|
||||
{
|
||||
case 16:
|
||||
Talk(SAY_SAEED_1);
|
||||
me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_GOSSIP);
|
||||
SetEscortPaused(true);
|
||||
break;
|
||||
case 18:
|
||||
|
||||
Reference in New Issue
Block a user