mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-30 09:03:47 +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:
@@ -387,7 +387,7 @@ void hyjalAI::Reset()
|
||||
Debug = false;
|
||||
|
||||
//Flags
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
|
||||
//Initialize spells
|
||||
memset(Spells, 0, sizeof(Spell) * HYJAL_AI_MAX_SPELLS);
|
||||
@@ -587,7 +587,7 @@ void hyjalAI::StartEvent(Player* player)
|
||||
CheckTimer = 5000;
|
||||
PlayerGUID = player->GetGUID();
|
||||
|
||||
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
|
||||
instance->DoUpdateWorldState(WORLD_STATE_WAVES, 0);
|
||||
instance->DoUpdateWorldState(WORLD_STATE_ENEMY, 0);
|
||||
@@ -619,7 +619,7 @@ void hyjalAI::Retreat()
|
||||
Creature* JainaDummy = me->SummonCreature(JAINA, JainaDummySpawn[0][0], JainaDummySpawn[0][1], JainaDummySpawn[0][2], JainaDummySpawn[0][3], TEMPSUMMON_TIMED_DESPAWN, 60000);
|
||||
if (JainaDummy)
|
||||
{
|
||||
JainaDummy->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
JainaDummy->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
CAST_AI(hyjalAI, JainaDummy->AI())->IsDummy = true;
|
||||
DummyGuid = JainaDummy->GetGUID();
|
||||
}
|
||||
@@ -629,7 +629,7 @@ void hyjalAI::Retreat()
|
||||
}
|
||||
SpawnVeins();
|
||||
Overrun = true;
|
||||
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);//cant talk after overrun event started
|
||||
me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);//cant talk after overrun event started
|
||||
}
|
||||
|
||||
void hyjalAI::SpawnVeins()
|
||||
@@ -823,7 +823,7 @@ void hyjalAI::UpdateAI(uint32 diff)
|
||||
}
|
||||
EventBegun = false;
|
||||
CheckTimer = 0;
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
BossGUID[i].Clear();
|
||||
instance->DoUpdateWorldState(WORLD_STATE_ENEMY, 0); // Reset world state for enemies to disable it
|
||||
}
|
||||
|
||||
@@ -292,13 +292,13 @@ public:
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
if (creature->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP))
|
||||
if (creature->HasNpcFlag(UNIT_NPC_FLAG_GOSSIP))
|
||||
{
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF+1:
|
||||
creature->AI()->DoAction(ACTION_START_CITY);
|
||||
creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
creature->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
CloseGossipMenuFor(player);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+2:
|
||||
@@ -309,24 +309,24 @@ public:
|
||||
case GOSSIP_ACTION_INFO_DEF+3:
|
||||
// Start Town Hall part
|
||||
creature->AI()->DoAction(ACTION_START_TOWN_HALL);
|
||||
creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
creature->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
CloseGossipMenuFor(player);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+4:
|
||||
// After killing epoch
|
||||
creature->AI()->DoAction(ACTION_START_SECRET_PASSAGE);
|
||||
creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
creature->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
creature->SetTarget();
|
||||
CloseGossipMenuFor(player);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+5:
|
||||
creature->AI()->DoAction(ACTION_START_LAST_CITY);
|
||||
creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
creature->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
CloseGossipMenuFor(player);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+6:
|
||||
creature->AI()->DoAction(ACTION_START_MALGANIS);
|
||||
creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
creature->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
CloseGossipMenuFor(player);
|
||||
break;
|
||||
}
|
||||
@@ -509,7 +509,7 @@ public:
|
||||
waveKillCount = 0;
|
||||
timeRiftId = 0;
|
||||
|
||||
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
|
||||
if (pInstance)
|
||||
{
|
||||
@@ -543,7 +543,7 @@ public:
|
||||
break;
|
||||
// Reached City
|
||||
case 8:
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
SetEscortPaused(true);
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_ARTHAS_EVENT, COS_PROGRESS_FINISHED_INTRO);
|
||||
@@ -577,7 +577,7 @@ public:
|
||||
case 20:
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_ARTHAS_EVENT, COS_PROGRESS_REACHED_TOWN_HALL);
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
SetRun(false);
|
||||
SetEscortPaused(true);
|
||||
break;
|
||||
@@ -628,7 +628,7 @@ public:
|
||||
// Behind secred passage
|
||||
case 45:
|
||||
SetRun(true);
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
SetEscortPaused(true);
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_ARTHAS_EVENT, COS_PROGRESS_LAST_CITY);
|
||||
@@ -650,7 +650,7 @@ public:
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_ARTHAS_EVENT, COS_PROGRESS_BEFORE_MALGANIS);
|
||||
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
SetEscortPaused(true);
|
||||
break;
|
||||
// Infront of malganis
|
||||
@@ -1123,7 +1123,7 @@ public:
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_ARTHAS_EVENT, COS_PROGRESS_KILLED_EPOCH);
|
||||
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
eventInRun = false;
|
||||
break;
|
||||
case EVENT_ACTION_PHASE5:
|
||||
@@ -1258,7 +1258,7 @@ void npc_arthas::npc_arthasAI::ReorderInstance(uint32 data)
|
||||
{
|
||||
case COS_PROGRESS_FINISHED_INTRO:
|
||||
SetNextWaypoint(9, false);
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
break;
|
||||
case COS_PROGRESS_FINISHED_CITY_INTRO:
|
||||
case COS_PROGRESS_KILLED_MEATHOOK:
|
||||
@@ -1285,19 +1285,19 @@ void npc_arthas::npc_arthasAI::ReorderInstance(uint32 data)
|
||||
break;
|
||||
case COS_PROGRESS_REACHED_TOWN_HALL:
|
||||
SetNextWaypoint(21, false);
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
break;
|
||||
case COS_PROGRESS_KILLED_EPOCH:
|
||||
SetNextWaypoint(32, false);
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
break;
|
||||
case COS_PROGRESS_LAST_CITY:
|
||||
SetNextWaypoint(46, false);
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
break;
|
||||
case COS_PROGRESS_BEFORE_MALGANIS:
|
||||
SetNextWaypoint(55, false);
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -162,7 +162,7 @@ public:
|
||||
}
|
||||
case DATA_THRALL_ADD_FLAG:
|
||||
if (Creature* thrall = instance->GetCreature(_thrallGUID))
|
||||
thrall->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
thrall->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -229,7 +229,7 @@ public:
|
||||
CloseGossipMenuFor(player);
|
||||
|
||||
creature->AI()->DoAction(instance->GetData(DATA_ESCORT_PROGRESS));
|
||||
creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
|
||||
creature->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -365,7 +365,7 @@ public:
|
||||
|
||||
SetEscortPaused(true);
|
||||
SetRun(true);
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
break;
|
||||
case 64:
|
||||
SetRun(false);
|
||||
@@ -413,7 +413,7 @@ public:
|
||||
break;
|
||||
case 103:
|
||||
if (Creature* erozion = summons.GetCreatureWithEntry(NPC_EROZION))
|
||||
erozion->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
|
||||
erozion->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
|
||||
instance->SetData(DATA_ESCORT_PROGRESS, ENCOUNTER_PROGRESS_FINISHED);
|
||||
me->SetVisible(false);
|
||||
break;
|
||||
@@ -468,7 +468,7 @@ public:
|
||||
combatEvents.Reset();
|
||||
summons.DespawnAll();
|
||||
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
|
||||
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
|
||||
instance->SetData(DATA_THRALL_REPOSITION, 1);
|
||||
|
||||
uint32 data = instance->GetData(DATA_ESCORT_PROGRESS);
|
||||
@@ -615,7 +615,7 @@ public:
|
||||
break;
|
||||
case EVENT_THRALL_TALK:
|
||||
Talk(SAY_MEET_TARETHA);
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
break;
|
||||
case EVENT_SUMMON_CHRONO:
|
||||
if (Creature* epoch = me->SummonCreature(NPC_EPOCH_HUNTER, 2640.49f, 696.15f, 64.31f, 4.51f, TEMPSUMMON_MANUAL_DESPAWN))
|
||||
@@ -730,7 +730,7 @@ public:
|
||||
break;
|
||||
case EVENT_SUMMON_EROZION:
|
||||
if (Creature* erozion = me->SummonCreature(NPC_EROZION, 2646.31f, 680.01f, 55.36f, 3.76f, TEMPSUMMON_MANUAL_DESPAWN))
|
||||
erozion->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
|
||||
erozion->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE);
|
||||
break;
|
||||
case EVENT_EROZION_TALK_1:
|
||||
if (Creature* erozion = summons.GetCreatureWithEntry(NPC_EROZION))
|
||||
@@ -808,7 +808,7 @@ public:
|
||||
SetEscortPaused(true);
|
||||
SetDespawnAtEnd(false);
|
||||
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
|
||||
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
|
||||
|
||||
if (data < ENCOUNTER_PROGRESS_THRALL_ARMORED)
|
||||
{
|
||||
@@ -903,7 +903,7 @@ public:
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
|
||||
me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE);
|
||||
me->CastSpell(me, SPELL_SHADOW_PRISON, true);
|
||||
}
|
||||
|
||||
|
||||
@@ -90,7 +90,7 @@ public:
|
||||
channeling = false;
|
||||
eventProgress = 0;
|
||||
spawnerCount = 0;
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
|
||||
me->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
}
|
||||
}
|
||||
@@ -119,7 +119,7 @@ public:
|
||||
{
|
||||
eventInProgress = true;
|
||||
Talk(SAY_QUEST_ACCEPTED);
|
||||
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
|
||||
me->RemoveNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
|
||||
me->SetFaction(FACTION_ESCORTEE_N_NEUTRAL_ACTIVE);
|
||||
me->GetMotionMaster()->MovePath(PATH_ESCORT, false);
|
||||
}
|
||||
|
||||
@@ -68,7 +68,7 @@ public:
|
||||
me->SetFaction(FACTION_FRIENDLY);
|
||||
postGossipStep = 0;
|
||||
Text_Timer = 0;
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
}
|
||||
|
||||
InstanceScript* instance;
|
||||
@@ -285,7 +285,7 @@ public:
|
||||
{
|
||||
case NPC_BLY:
|
||||
case NPC_WEEGLI:
|
||||
crew->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
crew->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -345,7 +345,7 @@ public:
|
||||
|
||||
void InitializeAI() override
|
||||
{
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
Reset();
|
||||
}
|
||||
|
||||
@@ -435,7 +435,7 @@ public:
|
||||
else if (instance->GetData(DATA_PYRAMID) == PYRAMID_KILLED_ALL_TROLLS)
|
||||
{
|
||||
instance->SetData(DATA_PYRAMID, PYRAMID_MOVED_DOWNSTAIRS);
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
}
|
||||
else if (instance->GetData(DATA_PYRAMID) == PYRAMID_DESTROY_GATES)
|
||||
{
|
||||
@@ -458,7 +458,7 @@ public:
|
||||
else if (instance->GetData(DATA_PYRAMID) == PYRAMID_KILLED_ALL_TROLLS)
|
||||
{
|
||||
instance->SetData(DATA_PYRAMID, PYRAMID_MOVED_DOWNSTAIRS);
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
}
|
||||
else if (instance->GetData(DATA_PYRAMID) == PYRAMID_DESTROY_GATES)
|
||||
{
|
||||
@@ -478,7 +478,7 @@ public:
|
||||
instance->SetData(DATA_PYRAMID, PYRAMID_DESTROY_GATES);
|
||||
if (Creature* sergeantBly = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_BLY)))
|
||||
{
|
||||
sergeantBly->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
sergeantBly->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -64,7 +64,7 @@ public:
|
||||
{
|
||||
me->RemoveAurasDueToSpell(SPELL_MARK_OF_FROST_AURA);
|
||||
_scheduler.CancelAll();
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
me->RestoreFaction();
|
||||
me->GetMap()->DoForAllPlayers([&](Player* p)
|
||||
{
|
||||
|
||||
@@ -355,7 +355,7 @@ public:
|
||||
if (me->IsWithinDist(player, 10) && me->GetPositionX() > player->GetPositionX() && !Reached)
|
||||
{
|
||||
Talk(SAY_RIZZLE_FINAL);
|
||||
me->SetUInt32Value(UNIT_NPC_FLAGS, 1);
|
||||
me->ReplaceAllNpcFlags(NPCFlags(1));
|
||||
me->SetFaction(FACTION_FRIENDLY);
|
||||
me->GetMotionMaster()->MoveIdle();
|
||||
me->RemoveAurasDueToSpell(SPELL_PERIODIC_DEPTH_CHARGE);
|
||||
|
||||
@@ -147,7 +147,7 @@ public:
|
||||
_faction = faction;
|
||||
SetEscortPaused(false);
|
||||
if (Creature* active = !headNorth ? me : ObjectAccessor::GetCreature(*me, summons[0]))
|
||||
active->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
|
||||
active->RemoveNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
|
||||
events.CancelEvent(EVENT_WAIT_FOR_ASSIST);
|
||||
}
|
||||
|
||||
@@ -192,11 +192,11 @@ public:
|
||||
void SummonHelpers()
|
||||
{
|
||||
RemoveSummons();
|
||||
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
|
||||
me->RemoveNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
|
||||
|
||||
if (Creature* cr = me->SummonCreature(NPC_RIGGER_GIZELTON, *me))
|
||||
{
|
||||
cr->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
|
||||
cr->RemoveNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
|
||||
summons[0] = cr->GetGUID();
|
||||
}
|
||||
if (Creature* cr = me->SummonCreature(NPC_CARAVAN_KODO, *me))
|
||||
@@ -291,7 +291,7 @@ public:
|
||||
// North -> South - hire
|
||||
case 77:
|
||||
SetEscortPaused(true);
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
|
||||
me->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
|
||||
Talk(SAY_CARAVAN_HIRE);
|
||||
events.ScheduleEvent(EVENT_WAIT_FOR_ASSIST, TIME_HIRE_STOP);
|
||||
break;
|
||||
@@ -300,7 +300,7 @@ public:
|
||||
SetEscortPaused(true);
|
||||
if (Creature* rigger = ObjectAccessor::GetCreature(*me, summons[0]))
|
||||
{
|
||||
rigger->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
|
||||
rigger->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
|
||||
rigger->AI()->Talk(SAY_CARAVAN_HIRE);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_WAIT_FOR_ASSIST, TIME_HIRE_STOP);
|
||||
@@ -403,7 +403,7 @@ public:
|
||||
case EVENT_WAIT_FOR_ASSIST:
|
||||
SetEscortPaused(false);
|
||||
if (Creature* active = !headNorth ? me : ObjectAccessor::GetCreature(*me, summons[0]))
|
||||
active->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
|
||||
active->RemoveNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
|
||||
break;
|
||||
case EVENT_RESTART_ESCORT:
|
||||
CheckCaravan();
|
||||
@@ -484,7 +484,7 @@ public:
|
||||
}
|
||||
else if (spell->Id == SPELL_KODO_KOMBO_GOSSIP)
|
||||
{
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
me->DespawnOrUnsummon(60000);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -98,7 +98,7 @@ public:
|
||||
|
||||
void InitializeAI() override
|
||||
{
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
|
||||
me->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->RestoreFaction();
|
||||
|
||||
@@ -202,7 +202,7 @@ public:
|
||||
|
||||
Talk(TALK_0, player);
|
||||
|
||||
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
|
||||
me->RemoveNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetFaction(FACTION_ESCORT_N_NEUTRAL_ACTIVE);
|
||||
me->GetMotionMaster()->MoveFollow(player, 3.f, M_PI);
|
||||
|
||||
@@ -258,7 +258,7 @@ public:
|
||||
{
|
||||
if (action == ACTION_START_TALKING)
|
||||
{
|
||||
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
me->GetMap()->LoadGrid(heraldOfThrallPos.GetPositionX(), heraldOfThrallPos.GetPositionY());
|
||||
me->SummonCreature(NPC_HERALD_OF_THRALL, heraldOfThrallPos, TEMPSUMMON_TIMED_DESPAWN, 20 * IN_MILLISECONDS);
|
||||
_scheduler.Schedule(2s, [this](TaskContext /*context*/)
|
||||
@@ -272,7 +272,7 @@ public:
|
||||
.Schedule(15s, [this](TaskContext /*context*/)
|
||||
{
|
||||
DoCastAOE(SPELL_WARCHIEF_BLESSING, true);
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
me->GetMap()->DoForAllPlayers([&](Player* p)
|
||||
{
|
||||
if (p->IsAlive() && !p->IsGameMaster())
|
||||
|
||||
@@ -915,7 +915,7 @@ public:
|
||||
|
||||
if (Merithra)
|
||||
{
|
||||
Merithra->SetUInt32Value(UNIT_NPC_FLAGS, 0);
|
||||
Merithra->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE);
|
||||
Merithra->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
|
||||
Merithra->SetUInt32Value(UNIT_FIELD_DISPLAYID, 15420);
|
||||
Merithra->SetFaction(FACTION_FRIENDLY);
|
||||
@@ -923,7 +923,7 @@ public:
|
||||
|
||||
if (Caelestrasz)
|
||||
{
|
||||
Caelestrasz->SetUInt32Value(UNIT_NPC_FLAGS, 0);
|
||||
Caelestrasz->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE);
|
||||
Caelestrasz->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
|
||||
Caelestrasz->SetUInt32Value(UNIT_FIELD_DISPLAYID, 15419);
|
||||
Caelestrasz->SetFaction(FACTION_FRIENDLY);
|
||||
@@ -931,7 +931,7 @@ public:
|
||||
|
||||
if (Arygos)
|
||||
{
|
||||
Arygos->SetUInt32Value(UNIT_NPC_FLAGS, 0);
|
||||
Arygos->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE);
|
||||
Arygos->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
|
||||
Arygos->SetUInt32Value(UNIT_FIELD_DISPLAYID, 15418);
|
||||
Arygos->SetFaction(FACTION_FRIENDLY);
|
||||
|
||||
@@ -263,8 +263,8 @@ public:
|
||||
if (me->GetFaction() != NormFaction)
|
||||
me->SetFaction(NormFaction);
|
||||
|
||||
if (me->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP))
|
||||
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
if (me->HasNpcFlag(UNIT_NPC_FLAG_GOSSIP))
|
||||
me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
|
||||
DoCast(me, SPELL_PLUCKY_CHICKEN, false);
|
||||
}
|
||||
@@ -276,19 +276,19 @@ public:
|
||||
if (TextEmote == TEXT_EMOTE_BECKON)
|
||||
{
|
||||
me->SetFaction(FACTION_FRIENDLY);
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
DoCast(me, SPELL_PLUCKY_HUMAN, false);
|
||||
}
|
||||
}
|
||||
|
||||
if (TextEmote == TEXT_EMOTE_CHICKEN)
|
||||
{
|
||||
if (me->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP))
|
||||
if (me->HasNpcFlag(UNIT_NPC_FLAG_GOSSIP))
|
||||
return;
|
||||
else
|
||||
{
|
||||
me->SetFaction(FACTION_FRIENDLY);
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
DoCast(me, SPELL_PLUCKY_HUMAN, false);
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_WAVE);
|
||||
}
|
||||
@@ -297,14 +297,14 @@ public:
|
||||
|
||||
void UpdateAI(uint32 Diff) override
|
||||
{
|
||||
if (me->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP))
|
||||
if (me->HasNpcFlag(UNIT_NPC_FLAG_GOSSIP))
|
||||
{
|
||||
if (ResetTimer <= Diff)
|
||||
{
|
||||
if (!me->GetVictim())
|
||||
EnterEvadeMode();
|
||||
else
|
||||
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user