diff options
-rw-r--r-- | src/server/game/Combat/CombatManager.cpp | 8 | ||||
-rw-r--r-- | src/server/game/Combat/ThreatManager.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Entities/Creature/Creature.cpp | 4 | ||||
-rw-r--r-- | src/server/game/Entities/Object/Object.cpp | 28 | ||||
-rw-r--r-- | src/server/game/Entities/Pet/Pet.cpp | 4 | ||||
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 4 | ||||
-rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 34 | ||||
-rw-r--r-- | src/server/game/Entities/Unit/UnitDefines.h | 6 | ||||
-rw-r--r-- | src/server/game/Spells/Auras/SpellAuraEffects.cpp | 4 | ||||
-rw-r--r-- | src/server/game/Spells/Spell.cpp | 6 | ||||
-rw-r--r-- | src/server/scripts/Commands/cs_npc.cpp | 4 | ||||
-rw-r--r-- | src/server/scripts/Commands/cs_reset.cpp | 2 | ||||
-rw-r--r-- | src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp | 4 | ||||
-rw-r--r-- | src/server/scripts/Northrend/zone_dragonblight.cpp | 2 | ||||
-rw-r--r-- | src/server/scripts/World/npcs_special.cpp | 2 |
15 files changed, 57 insertions, 57 deletions
diff --git a/src/server/game/Combat/CombatManager.cpp b/src/server/game/Combat/CombatManager.cpp index fbcad98cb50..18e4e011351 100644 --- a/src/server/game/Combat/CombatManager.cpp +++ b/src/server/game/Combat/CombatManager.cpp @@ -214,8 +214,8 @@ void CombatManager::InheritCombatStatesFrom(Unit const* who) if (!IsInCombatWith(ref.first)) { Unit* target = ref.second->GetOther(who); - if ((_owner->IsImmuneToPC() && target->HasUnitFlag(UNIT_FLAG_PVP_ATTACKABLE)) || - (_owner->IsImmuneToNPC() && !target->HasUnitFlag(UNIT_FLAG_PVP_ATTACKABLE))) + if ((_owner->IsImmuneToPC() && target->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) || + (_owner->IsImmuneToNPC() && !target->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED))) continue; SetInCombatWith(target); } @@ -225,8 +225,8 @@ void CombatManager::InheritCombatStatesFrom(Unit const* who) if (!IsInCombatWith(ref.first)) { Unit* target = ref.second->GetOther(who); - if ((_owner->IsImmuneToPC() && target->HasUnitFlag(UNIT_FLAG_PVP_ATTACKABLE)) || - (_owner->IsImmuneToNPC() && !target->HasUnitFlag(UNIT_FLAG_PVP_ATTACKABLE))) + if ((_owner->IsImmuneToPC() && target->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) || + (_owner->IsImmuneToNPC() && !target->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED))) continue; SetInCombatWith(target); } diff --git a/src/server/game/Combat/ThreatManager.cpp b/src/server/game/Combat/ThreatManager.cpp index f0d7cd163b0..d6c744dd43b 100644 --- a/src/server/game/Combat/ThreatManager.cpp +++ b/src/server/game/Combat/ThreatManager.cpp @@ -72,7 +72,7 @@ void ThreatReference::UpdateOnlineState() { if (a->GetTypeId() == TYPEID_UNIT && a->ToCreature()->IsTrigger()) return false; - if (a->HasUnitFlag(UNIT_FLAG_PVP_ATTACKABLE)) + if (a->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) { if (b->HasUnitFlag(UNIT_FLAG_IMMUNE_TO_PC)) return false; diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index 4d1ad9ba5be..08b57f37fed 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -1984,8 +1984,8 @@ bool Creature::CanStartAttack(Unit const* who, bool force) const return false; // This set of checks is should be done only for creatures - if ((IsImmuneToNPC() && !who->HasUnitFlag(UNIT_FLAG_PVP_ATTACKABLE)) - || (IsImmuneToPC() && who->HasUnitFlag(UNIT_FLAG_PVP_ATTACKABLE))) + if ((IsImmuneToNPC() && !who->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) + || (IsImmuneToPC() && who->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED))) return false; // Do not attack non-combat pets diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index 45a99197fbf..6e44854e77e 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -2487,9 +2487,9 @@ ReputationRank WorldObject::GetReactionTo(WorldObject const* target) const Unit const* unit = ToUnit(); Unit const* targetUnit = target->ToUnit(); - if (unit && unit->HasUnitFlag(UNIT_FLAG_PVP_ATTACKABLE)) + if (unit && unit->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) { - if (targetUnit && targetUnit->HasUnitFlag(UNIT_FLAG_PVP_ATTACKABLE)) + if (targetUnit && targetUnit->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) { if (selfPlayerOwner && targetPlayerOwner) { @@ -2724,24 +2724,24 @@ bool WorldObject::IsValidAttackTarget(WorldObject const* target, SpellInfo const // ignore immunity flags when assisting if (!bySpell || (isPositiveSpell && !bySpell->HasAttribute(SPELL_ATTR6_ASSIST_IGNORE_IMMUNE_FLAG))) { - if (unit && !unit->HasUnitFlag(UNIT_FLAG_PVP_ATTACKABLE) && unitTarget && unitTarget->IsImmuneToNPC()) + if (unit && !unit->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED) && unitTarget && unitTarget->IsImmuneToNPC()) return false; - if (unitTarget && !unitTarget->HasUnitFlag(UNIT_FLAG_PVP_ATTACKABLE) && unit && unit->IsImmuneToNPC()) + if (unitTarget && !unitTarget->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED) && unit && unit->IsImmuneToNPC()) return false; if (!bySpell || !bySpell->HasAttribute(SPELL_ATTR8_ATTACK_IGNORE_IMMUNE_TO_PC_FLAG)) { - if (unit && unit->HasUnitFlag(UNIT_FLAG_PVP_ATTACKABLE) && unitTarget && unitTarget->IsImmuneToPC()) + if (unit && unit->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED) && unitTarget && unitTarget->IsImmuneToPC()) return false; - if (unitTarget && unitTarget->HasUnitFlag(UNIT_FLAG_PVP_ATTACKABLE) && unit && unit->IsImmuneToPC()) + if (unitTarget && unitTarget->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED) && unit && unit->IsImmuneToPC()) return false; } } // CvC case - can attack each other only when one of them is hostile - if (unit && !unit->HasUnitFlag(UNIT_FLAG_PVP_ATTACKABLE) && unitTarget && !unitTarget->HasUnitFlag(UNIT_FLAG_PVP_ATTACKABLE)) + if (unit && !unit->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED) && unitTarget && !unitTarget->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) return IsHostileTo(target) || target->IsHostileTo(this); // PvP, PvC, CvP case @@ -2749,8 +2749,8 @@ bool WorldObject::IsValidAttackTarget(WorldObject const* target, SpellInfo const if (IsFriendlyTo(target) || target->IsFriendlyTo(this)) return false; - Player const* playerAffectingAttacker = unit && unit->HasUnitFlag(UNIT_FLAG_PVP_ATTACKABLE) ? GetAffectingPlayer() : nullptr; - Player const* playerAffectingTarget = unitTarget && unitTarget->HasUnitFlag(UNIT_FLAG_PVP_ATTACKABLE) ? target->GetAffectingPlayer() : nullptr; + Player const* playerAffectingAttacker = unit && unit->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED) ? GetAffectingPlayer() : nullptr; + Player const* playerAffectingTarget = unitTarget && unitTarget->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED) ? target->GetAffectingPlayer() : nullptr; // Not all neutral creatures can be attacked (even some unfriendly faction does not react aggresive to you, like Sporaggar) if ((playerAffectingAttacker && !playerAffectingTarget) || (!playerAffectingAttacker && playerAffectingTarget)) @@ -2784,7 +2784,7 @@ bool WorldObject::IsValidAttackTarget(WorldObject const* target, SpellInfo const // PvP case - can't attack when attacker or target are in sanctuary // however, 13850 client doesn't allow to attack when one of the unit's has sanctuary flag and is pvp - if (unitTarget && unitTarget->HasUnitFlag(UNIT_FLAG_PVP_ATTACKABLE) && unit && unit->HasUnitFlag(UNIT_FLAG_PVP_ATTACKABLE) && (unitTarget->IsInSanctuary() || unit->IsInSanctuary())) + if (unitTarget && unitTarget->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED) && unit && unit->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED) && (unitTarget->IsInSanctuary() || unit->IsInSanctuary())) return false; // additional checks - only PvP case @@ -2853,7 +2853,7 @@ bool WorldObject::IsValidAssistTarget(WorldObject const* target, SpellInfo const if (isNegativeSpell || !bySpell || !bySpell->HasAttribute(SPELL_ATTR6_ASSIST_IGNORE_IMMUNE_FLAG)) { - if (unit && unit->HasUnitFlag(UNIT_FLAG_PVP_ATTACKABLE)) + if (unit && unit->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) { if (!bySpell || !bySpell->HasAttribute(SPELL_ATTR8_ATTACK_IGNORE_IMMUNE_TO_PC_FLAG)) if (unitTarget && unitTarget->IsImmuneToPC()) @@ -2871,10 +2871,10 @@ bool WorldObject::IsValidAssistTarget(WorldObject const* target, SpellInfo const return false; // PvP case - if (unitTarget && unitTarget->HasUnitFlag(UNIT_FLAG_PVP_ATTACKABLE)) + if (unitTarget && unitTarget->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) { Player const* targetPlayerOwner = target->GetAffectingPlayer(); - if (unit && unit->HasUnitFlag(UNIT_FLAG_PVP_ATTACKABLE)) + if (unit && unit->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) { Player const* selfPlayerOwner = GetAffectingPlayer(); if (selfPlayerOwner && targetPlayerOwner) @@ -2895,7 +2895,7 @@ bool WorldObject::IsValidAssistTarget(WorldObject const* target, SpellInfo const } // PvC case - player can assist creature only if has specific type flags // !target->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PVP_ATTACKABLE) && - else if (unit && unit->HasUnitFlag(UNIT_FLAG_PVP_ATTACKABLE)) + else if (unit && unit->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) { if (!bySpell || !bySpell->HasAttribute(SPELL_ATTR6_ASSIST_IGNORE_IMMUNE_FLAG)) if (unitTarget && !unitTarget->IsPvP()) diff --git a/src/server/game/Entities/Pet/Pet.cpp b/src/server/game/Entities/Pet/Pet.cpp index f7bd8b75bb1..8e1926ab99c 100644 --- a/src/server/game/Entities/Pet/Pet.cpp +++ b/src/server/game/Entities/Pet/Pet.cpp @@ -220,14 +220,14 @@ bool Pet::LoadPetFromDB(Player* owner, uint32 petEntry, uint32 petnumber, bool c case SUMMON_PET: petlevel = owner->getLevel(); SetClass(CLASS_MAGE); - SetUnitFlags(UNIT_FLAG_PVP_ATTACKABLE); // this enables popup window (pet dismiss, cancel) + SetUnitFlags(UNIT_FLAG_PLAYER_CONTROLLED); // this enables popup window (pet dismiss, cancel) break; case HUNTER_PET: SetClass(CLASS_WARRIOR); SetGender(GENDER_NONE); SetSheath(SHEATH_STATE_MELEE); SetPetFlags(fields[9].GetBool() ? UNIT_PET_FLAG_CAN_BE_ABANDONED : UnitPetFlag(UNIT_PET_FLAG_CAN_BE_RENAMED | UNIT_PET_FLAG_CAN_BE_ABANDONED)); - SetUnitFlags(UNIT_FLAG_PVP_ATTACKABLE); // this enables popup window (pet abandon, cancel) + SetUnitFlags(UNIT_FLAG_PLAYER_CONTROLLED); // this enables popup window (pet abandon, cancel) break; default: if (!IsPetGhoul()) diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index d93cd968b56..2bb930747c5 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -472,7 +472,7 @@ bool Player::Create(ObjectGuid::LowType guidlow, WorldPackets::Character::Charac if (sWorld->getIntConfig(CONFIG_GAME_TYPE) == REALM_TYPE_PVP || sWorld->getIntConfig(CONFIG_GAME_TYPE) == REALM_TYPE_RPPVP) { AddPvpFlag(UNIT_BYTE2_FLAG_PVP); - AddUnitFlag(UNIT_FLAG_PVP_ATTACKABLE); + AddUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED); } AddUnitFlag2(UNIT_FLAG2_REGENERATE_POWER); @@ -2553,7 +2553,7 @@ void Player::InitStatsForLevel(bool reapplyMods) UNIT_FLAG_STUNNED | UNIT_FLAG_IN_COMBAT | UNIT_FLAG_DISARMED | UNIT_FLAG_CONFUSED | UNIT_FLAG_FLEEING | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_SKINNABLE | UNIT_FLAG_MOUNT | UNIT_FLAG_TAXI_FLIGHT )); - AddUnitFlag(UNIT_FLAG_PVP_ATTACKABLE); // must be set + AddUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED); // must be set AddUnitFlag2(UNIT_FLAG2_REGENERATE_POWER);// must be set diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index c519fbeb8f9..f2e83e199ca 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -1971,7 +1971,7 @@ void Unit::AttackerStateUpdate(Unit* victim, WeaponAttackType attType, bool extr if (attType != BASE_ATTACK && attType != OFF_ATTACK) return; // ignore ranged case - if (GetTypeId() == TYPEID_UNIT && !HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED) && !HasUnitFlag2(UNIT_FLAG2_DISABLE_TURN)) + if (GetTypeId() == TYPEID_UNIT && !HasUnitFlag(UNIT_FLAG_POSSESSED) && !HasUnitFlag2(UNIT_FLAG2_DISABLE_TURN)) SetFacingToObject(victim, false); // update client side facing to face the target (prevents visual glitches when casting untargeted spells) // melee attack spell cast at main hand attack only - no normal melee dmg dealt @@ -2055,7 +2055,7 @@ void Unit::FakeAttackerStateUpdate(Unit* victim, WeaponAttackType attType /*= BA if (attType != BASE_ATTACK && attType != OFF_ATTACK) return; // ignore ranged case - if (GetTypeId() == TYPEID_UNIT && !HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED) && !HasUnitFlag2(UNIT_FLAG2_DISABLE_TURN)) + if (GetTypeId() == TYPEID_UNIT && !HasUnitFlag(UNIT_FLAG_POSSESSED) && !HasUnitFlag2(UNIT_FLAG2_DISABLE_TURN)) SetFacingToObject(victim, false); // update client side facing to face the target (prevents visual glitches when casting untargeted spells) CalcDamageInfo damageInfo; @@ -5790,7 +5790,7 @@ void Unit::SetMinion(Minion *minion, bool apply) if (GetTypeId() == TYPEID_PLAYER) { minion->m_ControlledByPlayer = true; - minion->AddUnitFlag(UNIT_FLAG_PVP_ATTACKABLE); + minion->AddUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED); } // Can only have one pet. If a new one is summoned, dismiss the old one. @@ -5960,7 +5960,7 @@ void Unit::SetCharm(Unit* charm, bool apply) charm->m_ControlledByPlayer = true; /// @todo maybe we can use this flag to check if controlled by player - charm->AddUnitFlag(UNIT_FLAG_PVP_ATTACKABLE); + charm->AddUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED); } else charm->m_ControlledByPlayer = false; @@ -5999,19 +5999,19 @@ void Unit::SetCharm(Unit* charm, bool apply) if (charm->GetTypeId() == TYPEID_PLAYER) { charm->m_ControlledByPlayer = true; - charm->AddUnitFlag(UNIT_FLAG_PVP_ATTACKABLE); + charm->AddUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED); charm->ToPlayer()->UpdatePvPState(); } else if (Player* player = charm->GetCharmerOrOwnerPlayerOrPlayerItself()) { charm->m_ControlledByPlayer = true; - charm->AddUnitFlag(UNIT_FLAG_PVP_ATTACKABLE); + charm->AddUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED); charm->SetPvpFlags(player->GetPvpFlags()); } else { charm->m_ControlledByPlayer = false; - charm->RemoveUnitFlag(UNIT_FLAG_PVP_ATTACKABLE); + charm->RemoveUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED); charm->SetPvpFlags(UNIT_BYTE2_FLAG_NONE); } @@ -7725,10 +7725,10 @@ void Unit::SetImmuneToPC(bool apply, bool keepCombat) { std::list<CombatReference*> toEnd; for (auto const& pair : m_combatManager.GetPvECombatRefs()) - if (pair.second->GetOther(this)->HasUnitFlag(UNIT_FLAG_PVP_ATTACKABLE)) + if (pair.second->GetOther(this)->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) toEnd.push_back(pair.second); for (auto const& pair : m_combatManager.GetPvPCombatRefs()) - if (pair.second->GetOther(this)->HasUnitFlag(UNIT_FLAG_PVP_ATTACKABLE)) + if (pair.second->GetOther(this)->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) toEnd.push_back(pair.second); for (CombatReference* ref : toEnd) ref->EndCombat(); @@ -7753,10 +7753,10 @@ void Unit::SetImmuneToNPC(bool apply, bool keepCombat) { std::list<CombatReference*> toEnd; for (auto const& pair : m_combatManager.GetPvECombatRefs()) - if (!pair.second->GetOther(this)->HasUnitFlag(UNIT_FLAG_PVP_ATTACKABLE)) + if (!pair.second->GetOther(this)->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) toEnd.push_back(pair.second); for (auto const& pair : m_combatManager.GetPvPCombatRefs()) - if (!pair.second->GetOther(this)->HasUnitFlag(UNIT_FLAG_PVP_ATTACKABLE)) + if (!pair.second->GetOther(this)->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) toEnd.push_back(pair.second); for (CombatReference* ref : toEnd) ref->EndCombat(); @@ -10222,7 +10222,7 @@ bool Unit::InitTamedPet(Pet* pet, uint8 level, uint32 spell_id) pet->SetCreatedBySpell(spell_id); if (GetTypeId() == TYPEID_PLAYER) - pet->AddUnitFlag(UNIT_FLAG_PVP_ATTACKABLE); + pet->AddUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED); if (!pet->InitStatsForLevel(level)) { @@ -10942,12 +10942,12 @@ bool Unit::SetCharmedBy(Unit* charmer, CharmType type, AuraApplication const* au switch (type) { case CHARM_TYPE_VEHICLE: - AddUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED); + AddUnitFlag(UNIT_FLAG_POSSESSED); playerCharmer->SetClientControl(this, true); playerCharmer->VehicleSpellInitialize(); break; case CHARM_TYPE_POSSESS: - AddUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED); + AddUnitFlag(UNIT_FLAG_POSSESSED); charmer->AddUnitFlag(UNIT_FLAG_REMOVE_CLIENT_CONTROL); playerCharmer->SetClientControl(this, true); playerCharmer->PossessSpellInitialize(); @@ -11047,14 +11047,14 @@ void Unit::RemoveCharmedBy(Unit* charmer) case CHARM_TYPE_VEHICLE: playerCharmer->SetClientControl(this, false); playerCharmer->SetClientControl(charmer, true); - RemoveUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED); + RemoveUnitFlag(UNIT_FLAG_POSSESSED); break; case CHARM_TYPE_POSSESS: ClearUnitState(UNIT_STATE_POSSESSED); playerCharmer->SetClientControl(this, false); playerCharmer->SetClientControl(charmer, true); charmer->RemoveUnitFlag(UNIT_FLAG_REMOVE_CLIENT_CONTROL); - RemoveUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED); + RemoveUnitFlag(UNIT_FLAG_POSSESSED); break; case CHARM_TYPE_CHARM: if (GetTypeId() == TYPEID_UNIT && charmer->getClass() == CLASS_WARLOCK) @@ -11970,7 +11970,7 @@ bool Unit::CanSwim() const // Mirror client behavior, if this method returns false then client will not use swimming animation and for players will apply gravity as if there was no water if (HasUnitFlag(UNIT_FLAG_CANNOT_SWIM)) return false; - if (HasUnitFlag(UNIT_FLAG_PVP_ATTACKABLE)) // is player + if (HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) // is player return true; if (HasUnitFlag2(UnitFlags2(0x1000000))) return false; diff --git a/src/server/game/Entities/Unit/UnitDefines.h b/src/server/game/Entities/Unit/UnitDefines.h index fac8eda8d46..c7918344e0f 100644 --- a/src/server/game/Entities/Unit/UnitDefines.h +++ b/src/server/game/Entities/Unit/UnitDefines.h @@ -119,11 +119,11 @@ 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_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_PLAYER_CONTROLLED = 0x00000008, // controlled by player, use _IMMUNE_TO_PC instead of _IMMUNE_TO_NPC UNIT_FLAG_RENAME = 0x00000010, UNIT_FLAG_PREPARATION = 0x00000020, // don't take reagents for spells with SPELL_ATTR5_NO_REAGENT_WHILE_PREP UNIT_FLAG_UNK_6 = 0x00000040, - UNIT_FLAG_NOT_ATTACKABLE_1 = 0x00000080, // ?? (UNIT_FLAG_PVP_ATTACKABLE | UNIT_FLAG_NOT_ATTACKABLE_1) is NON_PVP_ATTACKABLE + UNIT_FLAG_NOT_ATTACKABLE_1 = 0x00000080, // ?? (UNIT_FLAG_PLAYER_CONTROLLED | UNIT_FLAG_NOT_ATTACKABLE_1) is NON_PVP_ATTACKABLE UNIT_FLAG_IMMUNE_TO_PC = 0x00000100, // disables combat/assistance with PlayerCharacters (PC) - see Unit::IsValidAttackTarget, Unit::IsValidAssistTarget UNIT_FLAG_IMMUNE_TO_NPC = 0x00000200, // disables combat/assistance with NonPlayerCharacters (NPC) - see Unit::IsValidAttackTarget, Unit::IsValidAssistTarget UNIT_FLAG_LOOTING = 0x00000400, // loot animation @@ -140,7 +140,7 @@ enum UnitFlags : uint32 UNIT_FLAG_DISARMED = 0x00200000, // 3.0.3, disable melee spells casting..., "Required melee weapon" added to melee spells tooltip. UNIT_FLAG_CONFUSED = 0x00400000, UNIT_FLAG_FLEEING = 0x00800000, - UNIT_FLAG_PLAYER_CONTROLLED = 0x01000000, // used in spell Eyes of the Beast for pet... let attack by controlled creature + UNIT_FLAG_POSSESSED = 0x01000000, // under direct client control by a player (possess or vehicle) UNIT_FLAG_NOT_SELECTABLE = 0x02000000, UNIT_FLAG_SKINNABLE = 0x04000000, UNIT_FLAG_MOUNT = 0x08000000, diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index 241683c1ef3..b5da3c00b0f 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -4839,13 +4839,13 @@ void AuraEffect::HandleAuraModFaction(AuraApplication const* aurApp, uint8 mode, { target->SetFaction(GetMiscValue()); if (target->GetTypeId() == TYPEID_PLAYER) - target->RemoveUnitFlag(UNIT_FLAG_PVP_ATTACKABLE); + target->RemoveUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED); } else { target->RestoreFaction(); if (target->GetTypeId() == TYPEID_PLAYER) - target->AddUnitFlag(UNIT_FLAG_PVP_ATTACKABLE); + target->AddUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED); } } diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index fc951be491f..cf324178003 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -2765,7 +2765,7 @@ SpellMissInfo Spell::PreprocessSpellHit(Unit* unit, TargetInfo& hitInfo) if (m_originalCaster && unit->IsInCombat() && m_spellInfo->HasInitialAggro()) { - if (m_originalCaster->HasUnitFlag(UNIT_FLAG_PVP_ATTACKABLE)) // only do explicit combat forwarding for PvP enabled units + if (m_originalCaster->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) // only do explicit combat forwarding for PvP enabled units m_originalCaster->GetCombatManager().InheritCombatStatesFrom(unit); // for creature v creature combat, the threat forward does it for us unit->GetThreatManager().ForwardThreatForAssistingMe(m_originalCaster, 0.0f, nullptr, true); } @@ -3154,7 +3154,7 @@ void Spell::prepare(SpellCastTargets const& targets, AuraEffect const* triggered } // focus if not controlled creature - if (m_caster->GetTypeId() == TYPEID_UNIT && !m_caster->ToUnit()->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) + if (m_caster->GetTypeId() == TYPEID_UNIT && !m_caster->ToUnit()->HasUnitFlag(UNIT_FLAG_POSSESSED)) { if (!(m_spellInfo->IsNextMeleeSwingSpell() || IsAutoRepeat())) { @@ -3398,7 +3398,7 @@ void Spell::_cast(bool skipCheck) // if the spell allows the creature to turn while casting, then adjust server-side orientation to face the target now // client-side orientation is handled by the client itself, as the cast target is targeted due to Creature::FocusTarget - if (m_caster->GetTypeId() == TYPEID_UNIT && !m_caster->ToUnit()->HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) + if (m_caster->GetTypeId() == TYPEID_UNIT && !m_caster->ToUnit()->HasUnitFlag(UNIT_FLAG_POSSESSED)) if (!m_spellInfo->HasAttribute(SPELL_ATTR5_DONT_TURN_DURING_CAST)) if (WorldObject* objTarget = m_targets.GetObjectTarget()) m_caster->ToCreature()->SetInFront(objTarget); diff --git a/src/server/scripts/Commands/cs_npc.cpp b/src/server/scripts/Commands/cs_npc.cpp index b235c539e8e..c5ec5bd5f75 100644 --- a/src/server/scripts/Commands/cs_npc.cpp +++ b/src/server/scripts/Commands/cs_npc.cpp @@ -125,7 +125,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_REMOVE_CLIENT_CONTROL), - CREATE_NAMED_ENUM(UNIT_FLAG_PVP_ATTACKABLE), + CREATE_NAMED_ENUM(UNIT_FLAG_PLAYER_CONTROLLED), CREATE_NAMED_ENUM(UNIT_FLAG_RENAME), CREATE_NAMED_ENUM(UNIT_FLAG_PREPARATION), CREATE_NAMED_ENUM(UNIT_FLAG_UNK_6), @@ -146,7 +146,7 @@ EnumName<UnitFlags> const unitFlags[MAX_UNIT_FLAGS] = CREATE_NAMED_ENUM(UNIT_FLAG_DISARMED), CREATE_NAMED_ENUM(UNIT_FLAG_CONFUSED), CREATE_NAMED_ENUM(UNIT_FLAG_FLEEING), - CREATE_NAMED_ENUM(UNIT_FLAG_PLAYER_CONTROLLED), + CREATE_NAMED_ENUM(UNIT_FLAG_POSSESSED), CREATE_NAMED_ENUM(UNIT_FLAG_NOT_SELECTABLE), CREATE_NAMED_ENUM(UNIT_FLAG_SKINNABLE), CREATE_NAMED_ENUM(UNIT_FLAG_MOUNT), diff --git a/src/server/scripts/Commands/cs_reset.cpp b/src/server/scripts/Commands/cs_reset.cpp index f6014cd4061..e168681fee2 100644 --- a/src/server/scripts/Commands/cs_reset.cpp +++ b/src/server/scripts/Commands/cs_reset.cpp @@ -113,7 +113,7 @@ public: player->SetPvpFlags(UNIT_BYTE2_FLAG_PVP); - player->SetUnitFlags(UNIT_FLAG_PVP_ATTACKABLE); + player->SetUnitFlags(UNIT_FLAG_PLAYER_CONTROLLED); //-1 is default value player->SetWatchedFactionIndex(-1); diff --git a/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp b/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp index b438eb8f687..31afc1b65ef 100644 --- a/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp +++ b/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp @@ -87,7 +87,7 @@ public: DoCastSelf(SPELL_IRRIDATION, true); - me->AddUnitFlag(UNIT_FLAG_PVP_ATTACKABLE); + me->AddUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED); me->AddUnitFlag(UNIT_FLAG_IN_COMBAT); me->SetHealth(me->CountPctFromMaxHealth(10)); me->SetStandState(UNIT_STAND_STATE_SLEEP); @@ -117,7 +117,7 @@ public: _canAskForHelp = false; _canUpdateEvents = true; - me->RemoveUnitFlag(UNIT_FLAG_PVP_ATTACKABLE); + me->RemoveUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED); me->SetStandState(UNIT_STAND_STATE_STAND); _playerGUID = caster->GetGUID(); diff --git a/src/server/scripts/Northrend/zone_dragonblight.cpp b/src/server/scripts/Northrend/zone_dragonblight.cpp index ba94f8f6e91..62eff94663f 100644 --- a/src/server/scripts/Northrend/zone_dragonblight.cpp +++ b/src/server/scripts/Northrend/zone_dragonblight.cpp @@ -549,7 +549,7 @@ class npc_wyrmrest_defender : public CreatureScript case SPELL_WYRMREST_DEFENDER_MOUNT: Talk(WHISPER_MOUNTED, me->GetCharmerOrOwner()); me->SetImmuneToAll(false); - me->AddUnitFlag(UNIT_FLAG_PVP_ATTACKABLE); + me->AddUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED); break; // Both below are for checking low hp warning case SPELL_DEFENDER_ON_LOW_HEALTH_EMOTE: diff --git a/src/server/scripts/World/npcs_special.cpp b/src/server/scripts/World/npcs_special.cpp index 4b76c2db170..55801cdc7b2 100644 --- a/src/server/scripts/World/npcs_special.cpp +++ b/src/server/scripts/World/npcs_special.cpp @@ -969,7 +969,7 @@ void npc_doctor::npc_doctorAI::UpdateAI(uint32 diff) if (Creature* Patient = me->SummonCreature(patientEntry, **point, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000)) { //303, this flag appear to be required for client side item->spell to work (TARGET_SINGLE_FRIEND) - Patient->AddUnitFlag(UNIT_FLAG_PVP_ATTACKABLE); + Patient->AddUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED); Patients.push_back(Patient->GetGUID()); ENSURE_AI(npc_injured_patient::npc_injured_patientAI, Patient->AI())->DoctorGUID = me->GetGUID(); |