Core/Units: Renamed and documented UNIT_FLAG_DISABLE_MOVE to prevent people from trying to use this flag to root a creature leaving them wondering why it doesn't do anything
(cherry picked from commit b36da771857554c5bd652bf8ccc1386d4be607b0) Core/Scripts: build fix (cherry picked from commit 258368a2bd0e7c2d395d98dc3220d8e32e65303f)
This commit is contained in:
@@ -142,8 +142,8 @@ void BattlegroundIC::PostUpdateImpl(uint32 diff)
|
||||
{
|
||||
if (siege->IsAlive())
|
||||
{
|
||||
if (siege->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE|UNIT_FLAG_UNK_14|UNIT_FLAG_IMMUNE_TO_PC))
|
||||
// following sniffs the vehicle always has UNIT_FLAG_UNK_14
|
||||
if (siege->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE|UNIT_FLAG_CANNOT_SWIM|UNIT_FLAG_IMMUNE_TO_PC))
|
||||
// following sniffs the vehicle always has UNIT_FLAG_CANNOT_SWIM
|
||||
siege->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE|UNIT_FLAG_IMMUNE_TO_PC);
|
||||
else
|
||||
siege->SetHealth(siege->GetMaxHealth());
|
||||
@@ -763,7 +763,7 @@ void BattlegroundIC::HandleCapturedNodes(ICNodePoint* node, bool recapture)
|
||||
|
||||
if (Creature* siegeEngine = GetBGCreature(siegeType))
|
||||
{
|
||||
siegeEngine->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE|UNIT_FLAG_UNK_14|UNIT_FLAG_IMMUNE_TO_PC);
|
||||
siegeEngine->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE|UNIT_FLAG_CANNOT_SWIM|UNIT_FLAG_IMMUNE_TO_PC);
|
||||
siegeEngine->setFaction(BG_IC_Factions[(node->faction == TEAM_ALLIANCE ? 0 : 1)]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2643,7 +2643,7 @@ void Player::InitStatsForLevel(bool reapplyMods)
|
||||
|
||||
// cleanup unit flags (will be re-applied if need at aura load).
|
||||
RemoveFlag(UNIT_FIELD_FLAGS,
|
||||
UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_NOT_ATTACKABLE_1 |
|
||||
UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_REMOVE_CLIENT_CONTROL | UNIT_FLAG_NOT_ATTACKABLE_1 |
|
||||
UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_LOOTING |
|
||||
UNIT_FLAG_PET_IN_COMBAT | UNIT_FLAG_SILENCED | UNIT_FLAG_PACIFIED |
|
||||
UNIT_FLAG_STUNNED | UNIT_FLAG_IN_COMBAT | UNIT_FLAG_DISARMED |
|
||||
@@ -21545,7 +21545,7 @@ bool Player::ActivateTaxiPathTo(std::vector<uint32> const& nodes, Creature* npc
|
||||
return false;
|
||||
}
|
||||
|
||||
if (HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE))
|
||||
if (HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL))
|
||||
return false;
|
||||
|
||||
// taximaster case
|
||||
@@ -21743,7 +21743,7 @@ void Player::CleanupAfterTaxiFlight()
|
||||
{
|
||||
m_taxi.ClearTaxiDestinations(); // not destinations, clear source node
|
||||
Dismount();
|
||||
RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_TAXI_FLIGHT);
|
||||
RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL | UNIT_FLAG_TAXI_FLIGHT);
|
||||
getHostileRefManager().setOnlineOfflineState(true);
|
||||
}
|
||||
|
||||
|
||||
@@ -13494,7 +13494,7 @@ bool Unit::SetCharmedBy(Unit* charmer, CharmType type, AuraApplication const* au
|
||||
case CHARM_TYPE_POSSESS:
|
||||
AddUnitState(UNIT_STATE_POSSESSED);
|
||||
SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED);
|
||||
charmer->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
charmer->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL);
|
||||
playerCharmer->SetClientControl(this, true);
|
||||
playerCharmer->PossessSpellInitialize();
|
||||
break;
|
||||
@@ -13597,7 +13597,7 @@ void Unit::RemoveCharmedBy(Unit* charmer)
|
||||
case CHARM_TYPE_POSSESS:
|
||||
playerCharmer->SetClientControl(this, false);
|
||||
playerCharmer->SetClientControl(charmer, true);
|
||||
charmer->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
charmer->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL);
|
||||
RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED);
|
||||
ClearUnitState(UNIT_STATE_POSSESSED);
|
||||
break;
|
||||
|
||||
@@ -692,7 +692,7 @@ enum UnitFlags : uint32
|
||||
{
|
||||
UNIT_FLAG_SERVER_CONTROLLED = 0x00000001, // set only when unit movement is controlled by server - by SPLINE/MONSTER_MOVE packets, together with UNIT_FLAG_STUNNED; only set to units controlled by client; client function CGUnit_C::IsClientControlled returns false when set for owner
|
||||
UNIT_FLAG_NON_ATTACKABLE = 0x00000002, // not attackable
|
||||
UNIT_FLAG_DISABLE_MOVE = 0x00000004,
|
||||
UNIT_FLAG_REMOVE_CLIENT_CONTROL = 0x00000004, // This is a legacy flag used to disable movement player's movement while controlling other units, SMSG_CLIENT_CONTROL replaces this functionality clientside now. CONFUSED and FLEEING flags have the same effect on client movement asDISABLE_MOVE_CONTROL in addition to preventing spell casts/autoattack (they all allow climbing steeper hills and emotes while moving)
|
||||
UNIT_FLAG_PVP_ATTACKABLE = 0x00000008, // allow apply pvp rules to attackable state in addition to faction dependent state
|
||||
UNIT_FLAG_RENAME = 0x00000010,
|
||||
UNIT_FLAG_PREPARATION = 0x00000020, // don't take reagents for spells with SPELL_ATTR5_NO_REAGENT_WHILE_PREP
|
||||
@@ -704,7 +704,7 @@ enum UnitFlags : uint32
|
||||
UNIT_FLAG_PET_IN_COMBAT = 0x00000800, // in combat?, 2.0.8
|
||||
UNIT_FLAG_PVP = 0x00001000, // changed in 3.0.3
|
||||
UNIT_FLAG_SILENCED = 0x00002000, // silenced, 2.1.1
|
||||
UNIT_FLAG_UNK_14 = 0x00004000, // 2.0.8
|
||||
UNIT_FLAG_CANNOT_SWIM = 0x00004000, // 2.0.8
|
||||
UNIT_FLAG_UNK_15 = 0x00008000,
|
||||
UNIT_FLAG_UNK_16 = 0x00010000,
|
||||
UNIT_FLAG_PACIFIED = 0x00020000, // 3.0.3 ok
|
||||
|
||||
@@ -241,7 +241,7 @@ void MotionMaster::MoveConfused()
|
||||
void MotionMaster::MoveChase(Unit* target, float dist, float angle)
|
||||
{
|
||||
// ignore movement request if target not exist
|
||||
if (!target || target == _owner || _owner->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE))
|
||||
if (!target || target == _owner)
|
||||
return;
|
||||
|
||||
//_owner->ClearUnitState(UNIT_STATE_FOLLOW);
|
||||
@@ -265,7 +265,7 @@ void MotionMaster::MoveChase(Unit* target, float dist, float angle)
|
||||
void MotionMaster::MoveFollow(Unit* target, float dist, float angle, MovementSlot slot)
|
||||
{
|
||||
// ignore movement request if target not exist
|
||||
if (!target || target == _owner || _owner->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE))
|
||||
if (!target || target == _owner)
|
||||
return;
|
||||
|
||||
//_owner->AddUnitState(UNIT_STATE_FOLLOW);
|
||||
|
||||
@@ -317,7 +317,7 @@ void FlightPathMovementGenerator::DoFinalize(Player* player)
|
||||
player->ClearUnitState(UNIT_STATE_IN_FLIGHT);
|
||||
|
||||
player->Dismount();
|
||||
player->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_TAXI_FLIGHT);
|
||||
player->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL | UNIT_FLAG_TAXI_FLIGHT);
|
||||
|
||||
if (player->m_taxi.empty())
|
||||
{
|
||||
@@ -337,7 +337,7 @@ void FlightPathMovementGenerator::DoReset(Player* player)
|
||||
{
|
||||
player->getHostileRefManager().setOnlineOfflineState(false);
|
||||
player->AddUnitState(UNIT_STATE_IN_FLIGHT);
|
||||
player->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_TAXI_FLIGHT);
|
||||
player->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL | UNIT_FLAG_TAXI_FLIGHT);
|
||||
|
||||
Movement::MoveSplineInit init(player);
|
||||
uint32 end = GetPathAtMapEnd();
|
||||
|
||||
@@ -114,7 +114,7 @@ EnumName<UnitFlags> const unitFlags[MAX_UNIT_FLAGS] =
|
||||
{
|
||||
CREATE_NAMED_ENUM(UNIT_FLAG_SERVER_CONTROLLED),
|
||||
CREATE_NAMED_ENUM(UNIT_FLAG_NON_ATTACKABLE),
|
||||
CREATE_NAMED_ENUM(UNIT_FLAG_DISABLE_MOVE),
|
||||
CREATE_NAMED_ENUM(UNIT_FLAG_REMOVE_CLIENT_CONTROL),
|
||||
CREATE_NAMED_ENUM(UNIT_FLAG_PVP_ATTACKABLE),
|
||||
CREATE_NAMED_ENUM(UNIT_FLAG_RENAME),
|
||||
CREATE_NAMED_ENUM(UNIT_FLAG_PREPARATION),
|
||||
@@ -126,7 +126,7 @@ EnumName<UnitFlags> const unitFlags[MAX_UNIT_FLAGS] =
|
||||
CREATE_NAMED_ENUM(UNIT_FLAG_PET_IN_COMBAT),
|
||||
CREATE_NAMED_ENUM(UNIT_FLAG_PVP),
|
||||
CREATE_NAMED_ENUM(UNIT_FLAG_SILENCED),
|
||||
CREATE_NAMED_ENUM(UNIT_FLAG_UNK_14),
|
||||
CREATE_NAMED_ENUM(UNIT_FLAG_CANNOT_SWIM),
|
||||
CREATE_NAMED_ENUM(UNIT_FLAG_UNK_15),
|
||||
CREATE_NAMED_ENUM(UNIT_FLAG_UNK_16),
|
||||
CREATE_NAMED_ENUM(UNIT_FLAG_PACIFIED),
|
||||
|
||||
@@ -98,7 +98,7 @@ class boss_archaedas : public CreatureScript
|
||||
instance->SetData(0, 5); // respawn any dead minions
|
||||
me->setFaction(35);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL);
|
||||
me->AddAura(SPELL_FREEZE_ANIM, me);
|
||||
}
|
||||
|
||||
@@ -111,7 +111,7 @@ class boss_archaedas : public CreatureScript
|
||||
DoCast(minion, SPELL_AWAKEN_VAULT_WALKER, flag);
|
||||
minion->CastSpell(minion, SPELL_ARCHAEDAS_AWAKEN, true);
|
||||
minion->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
minion->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
minion->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL);
|
||||
minion->setFaction(14);
|
||||
minion->RemoveAura(SPELL_MINION_FREEZE_ANIM);
|
||||
}
|
||||
@@ -121,7 +121,7 @@ class boss_archaedas : public CreatureScript
|
||||
{
|
||||
me->setFaction(14);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL);
|
||||
}
|
||||
|
||||
void SpellHit(Unit* /*caster*/, const SpellInfo* spell) override
|
||||
@@ -261,7 +261,7 @@ class npc_archaedas_minions : public CreatureScript
|
||||
|
||||
me->setFaction(35);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL);
|
||||
me->RemoveAllAuras();
|
||||
me->AddAura(SPELL_MINION_FREEZE_ANIM, me);
|
||||
}
|
||||
@@ -271,7 +271,7 @@ class npc_archaedas_minions : public CreatureScript
|
||||
me->setFaction (14);
|
||||
me->RemoveAllAuras();
|
||||
me->RemoveFlag (UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveFlag (UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
me->RemoveFlag (UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL);
|
||||
bAmIAwake = true;
|
||||
}
|
||||
|
||||
@@ -350,7 +350,7 @@ class npc_stonekeepers : public CreatureScript
|
||||
{
|
||||
me->setFaction(35);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL);
|
||||
me->RemoveAllAuras();
|
||||
me->AddAura(SPELL_MINION_FREEZE_ANIM, me);
|
||||
}
|
||||
@@ -359,7 +359,7 @@ class npc_stonekeepers : public CreatureScript
|
||||
{
|
||||
me->setFaction(14);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 /*diff*/) override
|
||||
|
||||
@@ -147,7 +147,7 @@ class instance_uldaman : public InstanceMapScript
|
||||
creature->setFaction(35);
|
||||
creature->RemoveAllAuras();
|
||||
creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL);
|
||||
creature->AddAura(SPELL_MINION_FREEZE_ANIM, creature);
|
||||
}
|
||||
|
||||
@@ -178,7 +178,7 @@ class instance_uldaman : public InstanceMapScript
|
||||
Creature* target = instance->GetCreature(*i);
|
||||
if (!target || !target->IsAlive())
|
||||
continue;
|
||||
target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL);
|
||||
target->setFaction(14);
|
||||
target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
target->RemoveAura(SPELL_MINION_FREEZE_ANIM);
|
||||
@@ -202,7 +202,7 @@ class instance_uldaman : public InstanceMapScript
|
||||
Creature* target = instance->GetCreature(*i);
|
||||
if (!target || !target->IsAlive() || target->getFaction() == 14)
|
||||
continue;
|
||||
target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL);
|
||||
target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
target->setFaction(14);
|
||||
target->RemoveAura(SPELL_MINION_FREEZE_ANIM);
|
||||
@@ -268,7 +268,7 @@ class instance_uldaman : public InstanceMapScript
|
||||
return;
|
||||
|
||||
ironaya->setFaction(415);
|
||||
ironaya->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
ironaya->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL);
|
||||
ironaya->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
|
||||
ironaya->GetMotionMaster()->Clear();
|
||||
|
||||
@@ -156,7 +156,7 @@ public:
|
||||
ImpaleTarget = impaleTarget->GetGUID();
|
||||
impaleTarget->SetReactState(REACT_PASSIVE);
|
||||
impaleTarget->SetDisplayId(DISPLAY_INVISIBLE);
|
||||
impaleTarget->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE|UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE);
|
||||
impaleTarget->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL|UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE);
|
||||
return impaleTarget;
|
||||
}
|
||||
|
||||
|
||||
+4
-4
@@ -633,7 +633,7 @@ struct boss_jormungarAI : public BossAI
|
||||
// if the worm was mobile before submerging, make him stationary now
|
||||
if (WasMobile)
|
||||
{
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL);
|
||||
SetCombatMovement(false);
|
||||
me->SetDisplayId(ModelStationary);
|
||||
events.SetPhase(PHASE_STATIONARY);
|
||||
@@ -644,7 +644,7 @@ struct boss_jormungarAI : public BossAI
|
||||
}
|
||||
else
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL);
|
||||
SetCombatMovement(true);
|
||||
me->GetMotionMaster()->MoveChase(me->GetVictim());
|
||||
me->SetDisplayId(ModelMobile);
|
||||
@@ -1008,7 +1008,7 @@ class boss_icehowl : public CreatureScript
|
||||
me->SetTarget(_trampleTargetGUID);
|
||||
_trampleCast = false;
|
||||
SetCombatMovement(false);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_DISABLE_MOVE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_REMOVE_CLIENT_CONTROL);
|
||||
me->GetMotionMaster()->Clear();
|
||||
me->GetMotionMaster()->MoveIdle();
|
||||
events.ScheduleEvent(EVENT_TRAMPLE, 4*IN_MILLISECONDS);
|
||||
@@ -1092,7 +1092,7 @@ class boss_icehowl : public CreatureScript
|
||||
Talk(EMOTE_TRAMPLE_FAIL);
|
||||
}
|
||||
_movementStarted = false;
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_DISABLE_MOVE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_REMOVE_CLIENT_CONTROL);
|
||||
SetCombatMovement(true);
|
||||
me->GetMotionMaster()->MovementExpired();
|
||||
me->GetMotionMaster()->Clear();
|
||||
|
||||
@@ -144,7 +144,7 @@ class boss_devourer_of_souls : public CreatureScript
|
||||
void Reset() override
|
||||
{
|
||||
_Reset();
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL);
|
||||
me->SetDisplayId(DISPLAY_ANGER);
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
|
||||
@@ -297,7 +297,7 @@ class boss_devourer_of_souls : public CreatureScript
|
||||
me->SetTarget(ObjectGuid::Empty);
|
||||
|
||||
me->GetMotionMaster()->Clear();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL);
|
||||
|
||||
wailingSoulTick = 15;
|
||||
events.DelayEvents(18000); // no other events during wailing souls
|
||||
@@ -317,7 +317,7 @@ class boss_devourer_of_souls : public CreatureScript
|
||||
{
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
me->SetDisplayId(DISPLAY_ANGER);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL);
|
||||
me->GetMotionMaster()->MoveChase(me->GetVictim());
|
||||
events.ScheduleEvent(EVENT_WAILING_SOULS, urand(60000, 70000));
|
||||
}
|
||||
|
||||
@@ -309,7 +309,7 @@ public:
|
||||
_Reset();
|
||||
|
||||
me->setFaction(35);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_REMOVE_CLIENT_CONTROL | UNIT_FLAG_NOT_SELECTABLE);
|
||||
|
||||
ResetPlayerScale();
|
||||
spawns.DespawnAll();
|
||||
@@ -356,7 +356,7 @@ public:
|
||||
}
|
||||
DoCast(me, SPELL_KELTHUZAD_CHANNEL, false);
|
||||
Talk(SAY_SUMMON_MINIONS);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_REMOVE_CLIENT_CONTROL | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetFloatValue(UNIT_FIELD_COMBATREACH, 4);
|
||||
me->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 4);
|
||||
events.SetPhase(PHASE_ONE);
|
||||
@@ -426,7 +426,7 @@ public:
|
||||
Talk(SAY_AGGRO);
|
||||
Talk(EMOTE_PHASE_TWO);
|
||||
spawns.DespawnAll();
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_REMOVE_CLIENT_CONTROL | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->CastStop();
|
||||
|
||||
DoStartMovement(me->GetVictim());
|
||||
|
||||
@@ -113,7 +113,7 @@ public:
|
||||
|
||||
Initialize();
|
||||
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE|UNIT_FLAG_DISABLE_MOVE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE|UNIT_FLAG_REMOVE_CLIENT_CONTROL);
|
||||
|
||||
if (!me->IsVisible())
|
||||
me->SetVisible(true);
|
||||
@@ -152,7 +152,7 @@ public:
|
||||
|
||||
me->AttackStop();
|
||||
me->SetVisible(false);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE|UNIT_FLAG_DISABLE_MOVE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE|UNIT_FLAG_REMOVE_CLIENT_CONTROL);
|
||||
|
||||
me->GetMotionMaster()->Clear();
|
||||
me->GetMotionMaster()->MoveIdle();
|
||||
@@ -236,7 +236,7 @@ public:
|
||||
else if (lSparkList.empty())
|
||||
{
|
||||
me->SetVisible(true);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE|UNIT_FLAG_DISABLE_MOVE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE|UNIT_FLAG_REMOVE_CLIENT_CONTROL);
|
||||
|
||||
DoCast(me, SPELL_SPARK_DESPAWN, false);
|
||||
|
||||
|
||||
@@ -415,7 +415,7 @@ class npc_saronite_vapors : public CreatureScript
|
||||
if (damage >= me->GetHealth())
|
||||
{
|
||||
damage = 0;
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_DISABLE_MOVE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_REMOVE_CLIENT_CONTROL);
|
||||
me->SetStandState(UNIT_STAND_STATE_DEAD);
|
||||
me->SetHealth(me->GetMaxHealth());
|
||||
me->RemoveAllAuras();
|
||||
|
||||
@@ -184,7 +184,7 @@ class npc_flash_freeze : public CreatureScript
|
||||
Initialize();
|
||||
instance = me->GetInstanceScript();
|
||||
me->SetDisplayId(me->GetCreatureTemplate()->Modelid2);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_STUNNED | UNIT_FLAG_PACIFIED);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL | UNIT_FLAG_STUNNED | UNIT_FLAG_PACIFIED);
|
||||
}
|
||||
|
||||
void Initialize()
|
||||
@@ -259,7 +259,7 @@ class npc_ice_block : public CreatureScript
|
||||
{
|
||||
instance = me->GetInstanceScript();
|
||||
me->SetDisplayId(me->GetCreatureTemplate()->Modelid2);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_STUNNED | UNIT_FLAG_PACIFIED);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL | UNIT_FLAG_STUNNED | UNIT_FLAG_PACIFIED);
|
||||
}
|
||||
|
||||
InstanceScript* instance;
|
||||
@@ -269,7 +269,7 @@ class npc_ice_block : public CreatureScript
|
||||
void IsSummonedBy(Unit* summoner) override
|
||||
{
|
||||
targetGUID = summoner->GetGUID();
|
||||
summoner->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_STUNNED | UNIT_FLAG_PACIFIED);
|
||||
summoner->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL | UNIT_FLAG_STUNNED | UNIT_FLAG_PACIFIED);
|
||||
me->SetInCombatWith(summoner);
|
||||
me->AddThreat(summoner, 250.0f);
|
||||
summoner->AddThreat(me, 250.0f);
|
||||
@@ -285,7 +285,7 @@ class npc_ice_block : public CreatureScript
|
||||
{
|
||||
if (Creature* Helper = ObjectAccessor::GetCreature(*me, targetGUID))
|
||||
{
|
||||
Helper->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_STUNNED | UNIT_FLAG_PACIFIED);
|
||||
Helper->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL | UNIT_FLAG_STUNNED | UNIT_FLAG_PACIFIED);
|
||||
|
||||
if (Creature* Hodir = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_HODIR)))
|
||||
{
|
||||
@@ -388,7 +388,7 @@ class boss_hodir : public CreatureScript
|
||||
me->RemoveAllAttackers();
|
||||
me->AttackStop();
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_DISABLE_MOVE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_REMOVE_CLIENT_CONTROL);
|
||||
me->InterruptNonMeleeSpells(true);
|
||||
me->StopMoving();
|
||||
me->GetMotionMaster()->Clear();
|
||||
@@ -539,7 +539,7 @@ class npc_icicle : public CreatureScript
|
||||
{
|
||||
Initialize();
|
||||
me->SetDisplayId(me->GetCreatureTemplate()->Modelid1);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_PACIFIED | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL | UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_PACIFIED | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
}
|
||||
|
||||
@@ -593,7 +593,7 @@ class npc_snowpacked_icicle : public CreatureScript
|
||||
{
|
||||
Initialize();
|
||||
me->SetDisplayId(me->GetCreatureTemplate()->Modelid2);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_PACIFIED);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL | UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_PACIFIED);
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
}
|
||||
|
||||
|
||||
@@ -178,7 +178,7 @@ class boss_ignis : public CreatureScript
|
||||
{
|
||||
summon->setFaction(16);
|
||||
summon->SetReactState(REACT_AGGRESSIVE);
|
||||
summon->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_PACIFIED | UNIT_FLAG_STUNNED | UNIT_FLAG_DISABLE_MOVE);
|
||||
summon->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_PACIFIED | UNIT_FLAG_STUNNED | UNIT_FLAG_REMOVE_CLIENT_CONTROL);
|
||||
}
|
||||
|
||||
summon->AI()->AttackStart(me->GetVictim());
|
||||
@@ -375,7 +375,7 @@ class npc_scorch_ground : public CreatureScript
|
||||
npc_scorch_groundAI(Creature* creature) : ScriptedAI(creature)
|
||||
{
|
||||
Initialize();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE |UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_PACIFIED);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL |UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_PACIFIED);
|
||||
creature->SetDisplayId(16925); //model 2 in db cannot overwrite wdb fields
|
||||
}
|
||||
|
||||
|
||||
@@ -104,7 +104,7 @@ class boss_kologarn : public CreatureScript
|
||||
left(false), right(false)
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL);
|
||||
|
||||
DoCast(SPELL_KOLOGARN_REDUCE_PARRY);
|
||||
SetCombatMovement(false);
|
||||
|
||||
@@ -247,7 +247,7 @@ class npc_frozen_orb_stalker : public CreatureScript
|
||||
npc_frozen_orb_stalkerAI(Creature* creature) : ScriptedAI(creature)
|
||||
{
|
||||
creature->SetVisible(false);
|
||||
creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_DISABLE_MOVE);
|
||||
creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_REMOVE_CLIENT_CONTROL);
|
||||
creature->SetReactState(REACT_PASSIVE);
|
||||
|
||||
instance = creature->GetInstanceScript();
|
||||
|
||||
@@ -174,7 +174,7 @@ public:
|
||||
|
||||
void Initialize()
|
||||
{
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_REMOVE_CLIENT_CONTROL);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
@@ -308,7 +308,7 @@ public:
|
||||
void Initialize()
|
||||
{
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_DISABLE_MOVE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_REMOVE_CLIENT_CONTROL);
|
||||
DoCast(me, SPELL_FROZEN_CORE_GETS_HIT);
|
||||
DoCast(me, SPELL_ICE_SPEAR_AURA);
|
||||
}
|
||||
@@ -341,7 +341,7 @@ public:
|
||||
{
|
||||
_events.Reset();
|
||||
DoCast(me, SPELL_ICE_SPEAR_AURA);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_DISABLE_MOVE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_REMOVE_CLIENT_CONTROL);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1980,7 +1980,7 @@ class spell_gen_mounted_charge: public SpellScriptLoader
|
||||
}
|
||||
|
||||
// If target isn't a training dummy there's a chance of failing the charge
|
||||
if (!target->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE) && roll_chance_f(12.5f))
|
||||
if (!target->IsCharmedOwnedByPlayerOrPlayer() && roll_chance_f(12.5f))
|
||||
spellId = SPELL_CHARGE_MISS_EFFECT;
|
||||
|
||||
if (Unit* vehicle = GetCaster()->GetVehicleBase())
|
||||
|
||||
Reference in New Issue
Block a user