mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-02-01 18:13:48 +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:
@@ -69,9 +69,9 @@ public:
|
||||
void DoAction(int32 a) override
|
||||
{
|
||||
if (a == 1)
|
||||
if (me->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP))
|
||||
if (me->HasNpcFlag(UNIT_NPC_FLAG_GOSSIP))
|
||||
{
|
||||
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
events.Reset();
|
||||
events.ScheduleEvent(1, 1000);
|
||||
}
|
||||
@@ -190,7 +190,7 @@ public:
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (creature->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP))
|
||||
if (creature->HasNpcFlag(UNIT_NPC_FLAG_GOSSIP))
|
||||
{
|
||||
if (creature->GetEntry() == NPC_JAINA_PART1)
|
||||
AddGossipItemFor(player, GOSSIP_JAINA_INTRO, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
@@ -232,14 +232,14 @@ public:
|
||||
{
|
||||
npc_fos_leader_secondAI(Creature* creature) : ScriptedAI(creature)
|
||||
{
|
||||
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
|
||||
me->RemoveNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
|
||||
}
|
||||
|
||||
void MovementInform(uint32 type, uint32 id) override
|
||||
{
|
||||
if (type == POINT_MOTION_TYPE && id == 1)
|
||||
{
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
|
||||
me->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
|
||||
if (me->GetEntry() == NPC_JAINA_PART1)
|
||||
Talk(SAY_JAINA_OUTRO);
|
||||
else
|
||||
|
||||
@@ -91,7 +91,7 @@ public:
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (!creature->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP))
|
||||
if (!creature->HasNpcFlag(UNIT_NPC_FLAG_GOSSIP))
|
||||
return true;
|
||||
|
||||
if (creature->IsQuestGiver())
|
||||
@@ -134,7 +134,7 @@ public:
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction) override
|
||||
{
|
||||
if (!creature->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP))
|
||||
if (!creature->HasNpcFlag(UNIT_NPC_FLAG_GOSSIP))
|
||||
return true;
|
||||
|
||||
InstanceScript* instance = creature->GetInstanceScript();
|
||||
@@ -154,13 +154,13 @@ public:
|
||||
CloseGossipMenuFor(player);
|
||||
if (creature->AI())
|
||||
creature->AI()->DoAction(ACTION_START_INTRO);
|
||||
creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
|
||||
creature->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+2:
|
||||
CloseGossipMenuFor(player);
|
||||
if (creature->AI())
|
||||
creature->AI()->DoAction(ACTION_SKIP_INTRO);
|
||||
creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
|
||||
creature->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -233,7 +233,7 @@ public:
|
||||
me->GetMotionMaster()->MovePoint(0, SpawnPos);
|
||||
break;
|
||||
case EVENT_PRE_INTRO_3:
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
|
||||
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
|
||||
Talk(me->GetEntry() == NPC_JAINA_PART1 ? SAY_JAINA_INTRO_2 : SAY_SYLVANAS_INTRO_1);
|
||||
me->SetFacingTo(0.89f);
|
||||
break;
|
||||
@@ -1619,7 +1619,7 @@ public:
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 /*uiAction*/) override
|
||||
{
|
||||
if (!creature->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP))
|
||||
if (!creature->HasNpcFlag(UNIT_NPC_FLAG_GOSSIP))
|
||||
return true;
|
||||
|
||||
ClearGossipMenuFor(player);
|
||||
@@ -1627,7 +1627,7 @@ public:
|
||||
if (InstanceScript* pInstance = creature->GetInstanceScript())
|
||||
if (!pInstance->GetData(DATA_LICH_KING))
|
||||
{
|
||||
creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
|
||||
creature->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
|
||||
creature->AI()->DoAction(ACTION_START_LK_FIGHT_REAL);
|
||||
return true;
|
||||
}
|
||||
@@ -1748,7 +1748,7 @@ public:
|
||||
case EVENT_ADD_GOSSIP:
|
||||
me->RemoveAura(me->GetEntry() == NPC_JAINA_PART2 ? SPELL_JAINA_ICE_BARRIER : SPELL_SYLVANAS_CLOAK_OF_DARKNESS);
|
||||
me->SetFacingTo(LeaderEscapePos.GetOrientation());
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
break;
|
||||
case EVENT_START_RUN:
|
||||
{
|
||||
|
||||
@@ -221,7 +221,7 @@ public:
|
||||
NPC_LeaderIntroGUID = creature->GetGUID();
|
||||
if (TeamIdInInstance == TEAM_ALLIANCE)
|
||||
creature->UpdateEntry(NPC_JAINA_PART1);
|
||||
creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
|
||||
creature->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
|
||||
creature->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
|
||||
break;
|
||||
case NPC_DARK_RANGER_LORALEN:
|
||||
@@ -313,7 +313,7 @@ public:
|
||||
if (!(EncounterMask & (1 << DATA_LK_INTRO)))
|
||||
{
|
||||
creature->SetUInt32Value(UNIT_NPC_EMOTESTATE, TeamIdInInstance == TEAM_ALLIANCE ? EMOTE_ONESHOT_ATTACK2HTIGHT : EMOTE_ONESHOT_ATTACK1H);
|
||||
creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
|
||||
creature->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
|
||||
creature->CastSpell(creature, TeamIdInInstance == TEAM_ALLIANCE ? SPELL_JAINA_ICE_BARRIER : SPELL_SYLVANAS_CLOAK_OF_DARKNESS, true);
|
||||
if (TeamIdInInstance != TEAM_ALLIANCE)
|
||||
{
|
||||
@@ -323,8 +323,8 @@ public:
|
||||
}
|
||||
else if (!(EncounterMask & (1 << DATA_LICH_KING)))
|
||||
{
|
||||
creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
|
||||
creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
creature->RemoveNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
|
||||
creature->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
creature->UpdatePosition(LeaderEscapePos, true);
|
||||
creature->StopMovingOnCurrentPos();
|
||||
}
|
||||
@@ -530,8 +530,8 @@ public:
|
||||
c->GetMotionMaster()->MoveIdle();
|
||||
c->UpdatePosition(LeaderEscapePos, true);
|
||||
c->StopMovingOnCurrentPos();
|
||||
c->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
|
||||
c->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
c->RemoveNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
|
||||
c->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
c->SetHealth(c->GetMaxHealth() / 20);
|
||||
c->AI()->Reset();
|
||||
c->setActive(false);
|
||||
@@ -1196,7 +1196,7 @@ public:
|
||||
break;
|
||||
case 11:
|
||||
if (Creature* c = instance->GetCreature(NPC_LeaderGUID))
|
||||
c->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
|
||||
c->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
|
||||
++outroStep;
|
||||
outroTimer = 300 * 1000;
|
||||
break;
|
||||
|
||||
@@ -1150,7 +1150,7 @@ public:
|
||||
pInstance = me->GetInstanceScript();
|
||||
barrierGUID.Clear();
|
||||
events.Reset();
|
||||
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
|
||||
me->RemoveNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
|
||||
|
||||
if (pInstance)
|
||||
{
|
||||
@@ -1206,7 +1206,7 @@ public:
|
||||
Talk(SAY_JAINA_OUTRO_3);
|
||||
break;
|
||||
case 6:
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
|
||||
me->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
|
||||
if (GameObject* g = me->FindNearestGameObject(GO_HOR_PORTCULLIS, 50.0f))
|
||||
g->SetGoState(GO_STATE_ACTIVE);
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user