feat(Core/Unit): New helpers for DynamicFlags (#11230)
* feat(Core/Unit): New helpers for DynamicFlags * cherry-pick commit (https://github.com/TrinityCore/TrinityCore/commit/d611925dc7ab2b3f19c5ee9e0f75b8dfb6de1291) Co-Authored-By: Shauren <shauren.trinity@gmail.com> * oopsie Co-authored-by: Shauren <shauren.trinity@gmail.com>
This commit is contained in:
@@ -48,14 +48,14 @@ void PossessedAI::UpdateAI(uint32 /*diff*/)
|
|||||||
void PossessedAI::JustDied(Unit* /*u*/)
|
void PossessedAI::JustDied(Unit* /*u*/)
|
||||||
{
|
{
|
||||||
// We died while possessed, disable our loot
|
// We died while possessed, disable our loot
|
||||||
me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
|
me->RemoveDynamicFlag(UNIT_DYNFLAG_LOOTABLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PossessedAI::KilledUnit(Unit* /*victim*/)
|
void PossessedAI::KilledUnit(Unit* /*victim*/)
|
||||||
{
|
{
|
||||||
// We killed a creature, disable victim's loot
|
// We killed a creature, disable victim's loot
|
||||||
//if (victim->GetTypeId() == TYPEID_UNIT)
|
//if (victim->GetTypeId() == TYPEID_UNIT)
|
||||||
// victim->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
|
// victim->RemoveDynamicFlag(UNIT_DYNFLAG_LOOTABLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CritterAI::DamageTaken(Unit*, uint32&, DamageEffectType, SpellSchoolMask)
|
void CritterAI::DamageTaken(Unit*, uint32&, DamageEffectType, SpellSchoolMask)
|
||||||
|
|||||||
@@ -2428,7 +2428,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
|
|||||||
|
|
||||||
for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
|
for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
|
||||||
if (IsUnit(*itr))
|
if (IsUnit(*itr))
|
||||||
(*itr)->ToUnit()->SetUInt32Value(UNIT_DYNAMIC_FLAGS, e.action.flag.flag);
|
(*itr)->ToUnit()->ReplaceAllDynamicFlags(e.action.flag.flag);
|
||||||
|
|
||||||
delete targets;
|
delete targets;
|
||||||
break;
|
break;
|
||||||
@@ -2441,7 +2441,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
|
|||||||
|
|
||||||
for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
|
for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
|
||||||
if (IsUnit(*itr))
|
if (IsUnit(*itr))
|
||||||
(*itr)->ToUnit()->SetFlag(UNIT_DYNAMIC_FLAGS, e.action.flag.flag);
|
(*itr)->ToUnit()->SetDynamicFlag(e.action.flag.flag);
|
||||||
|
|
||||||
delete targets;
|
delete targets;
|
||||||
break;
|
break;
|
||||||
@@ -2454,7 +2454,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
|
|||||||
|
|
||||||
for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
|
for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
|
||||||
if (IsUnit(*itr))
|
if (IsUnit(*itr))
|
||||||
(*itr)->ToUnit()->RemoveFlag(UNIT_DYNAMIC_FLAGS, e.action.flag.flag);
|
(*itr)->ToUnit()->RemoveDynamicFlag(e.action.flag.flag);
|
||||||
|
|
||||||
delete targets;
|
delete targets;
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -504,7 +504,7 @@ bool Creature::UpdateEntry(uint32 Entry, const CreatureData* data, bool changele
|
|||||||
ReplaceAllUnitFlags(UnitFlags(unit_flags));
|
ReplaceAllUnitFlags(UnitFlags(unit_flags));
|
||||||
ReplaceAllUnitFlags2(UnitFlags2(cInfo->unit_flags2));
|
ReplaceAllUnitFlags2(UnitFlags2(cInfo->unit_flags2));
|
||||||
|
|
||||||
SetUInt32Value(UNIT_DYNAMIC_FLAGS, dynamicflags);
|
ReplaceAllDynamicFlags(dynamicflags);
|
||||||
|
|
||||||
SetAttackTime(BASE_ATTACK, cInfo->BaseAttackTime);
|
SetAttackTime(BASE_ATTACK, cInfo->BaseAttackTime);
|
||||||
SetAttackTime(OFF_ATTACK, cInfo->BaseAttackTime);
|
SetAttackTime(OFF_ATTACK, cInfo->BaseAttackTime);
|
||||||
@@ -1214,7 +1214,7 @@ void Creature::SetLootRecipient(Unit* unit, bool withGroup)
|
|||||||
{
|
{
|
||||||
m_lootRecipient.Clear();
|
m_lootRecipient.Clear();
|
||||||
m_lootRecipientGroup = 0;
|
m_lootRecipientGroup = 0;
|
||||||
RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE | UNIT_DYNFLAG_TAPPED);
|
RemoveDynamicFlag(UNIT_DYNFLAG_LOOTABLE | UNIT_DYNFLAG_TAPPED);
|
||||||
ResetAllowedLooters();
|
ResetAllowedLooters();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -1261,7 +1261,7 @@ void Creature::SetLootRecipient(Unit* unit, bool withGroup)
|
|||||||
else
|
else
|
||||||
m_lootRecipientGroup = 0;
|
m_lootRecipientGroup = 0;
|
||||||
|
|
||||||
SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_TAPPED);
|
SetDynamicFlag(UNIT_DYNFLAG_TAPPED);
|
||||||
}
|
}
|
||||||
|
|
||||||
// return true if this creature is tapped by the player or by a member of his group.
|
// return true if this creature is tapped by the player or by a member of his group.
|
||||||
@@ -1303,7 +1303,7 @@ void Creature::SaveToDB(uint32 mapid, uint8 spawnMask, uint32 phaseMask)
|
|||||||
uint32 displayId = GetNativeDisplayId();
|
uint32 displayId = GetNativeDisplayId();
|
||||||
uint32 npcflag = GetUInt32Value(UNIT_NPC_FLAGS);
|
uint32 npcflag = GetUInt32Value(UNIT_NPC_FLAGS);
|
||||||
uint32 unit_flags = GetUnitFlags();
|
uint32 unit_flags = GetUnitFlags();
|
||||||
uint32 dynamicflags = GetUInt32Value(UNIT_DYNAMIC_FLAGS);
|
uint32 dynamicflags = GetDynamicFlags();
|
||||||
|
|
||||||
// check if it's a custom model and if not, use 0 for displayId
|
// check if it's a custom model and if not, use 0 for displayId
|
||||||
CreatureTemplate const* cinfo = GetCreatureTemplate();
|
CreatureTemplate const* cinfo = GetCreatureTemplate();
|
||||||
|
|||||||
@@ -771,6 +771,9 @@ public:
|
|||||||
void RemoveFromWorld() override;
|
void RemoveFromWorld() override;
|
||||||
void CleanupsBeforeDelete(bool finalCleanup = true) override;
|
void CleanupsBeforeDelete(bool finalCleanup = true) override;
|
||||||
|
|
||||||
|
uint32 GetDynamicFlags() const override { return GetUInt32Value(GAMEOBJECT_DYNAMIC); }
|
||||||
|
void ReplaceAllDynamicFlags(uint32 flag) override { SetUInt32Value(GAMEOBJECT_DYNAMIC, flag); }
|
||||||
|
|
||||||
virtual bool Create(ObjectGuid::LowType guidlow, uint32 name_id, Map* map, uint32 phaseMask, float x, float y, float z, float ang, G3D::Quat const& rotation, uint32 animprogress, GOState go_state, uint32 artKit = 0);
|
virtual bool Create(ObjectGuid::LowType guidlow, uint32 name_id, Map* map, uint32 phaseMask, float x, float y, float z, float ang, G3D::Quat const& rotation, uint32 animprogress, GOState go_state, uint32 artKit = 0);
|
||||||
void Update(uint32 p_time) override;
|
void Update(uint32 p_time) override;
|
||||||
[[nodiscard]] GameObjectTemplate const* GetGOInfo() const { return m_goInfo; }
|
[[nodiscard]] GameObjectTemplate const* GetGOInfo() const { return m_goInfo; }
|
||||||
|
|||||||
@@ -583,7 +583,7 @@ uint32 Object::GetUpdateFieldData(Player const* target, uint32*& flags) const
|
|||||||
if (ToUnit()->GetOwnerGUID() == target->GetGUID())
|
if (ToUnit()->GetOwnerGUID() == target->GetGUID())
|
||||||
visibleFlag |= UF_FLAG_OWNER;
|
visibleFlag |= UF_FLAG_OWNER;
|
||||||
|
|
||||||
if (HasFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_SPECIALINFO))
|
if (HasDynamicFlag(UNIT_DYNFLAG_SPECIALINFO))
|
||||||
if (ToUnit()->HasAuraTypeWithCaster(SPELL_AURA_EMPATHY, target->GetGUID()))
|
if (ToUnit()->HasAuraTypeWithCaster(SPELL_AURA_EMPATHY, target->GetGUID()))
|
||||||
visibleFlag |= UF_FLAG_SPECIAL_INFO;
|
visibleFlag |= UF_FLAG_SPECIAL_INFO;
|
||||||
|
|
||||||
|
|||||||
@@ -105,6 +105,12 @@ public:
|
|||||||
[[nodiscard]] float GetObjectScale() const { return GetFloatValue(OBJECT_FIELD_SCALE_X); }
|
[[nodiscard]] float GetObjectScale() const { return GetFloatValue(OBJECT_FIELD_SCALE_X); }
|
||||||
virtual void SetObjectScale(float scale) { SetFloatValue(OBJECT_FIELD_SCALE_X, scale); }
|
virtual void SetObjectScale(float scale) { SetFloatValue(OBJECT_FIELD_SCALE_X, scale); }
|
||||||
|
|
||||||
|
virtual uint32 GetDynamicFlags() const { return 0; }
|
||||||
|
bool HasDynamicFlag(uint32 flag) const { return (GetDynamicFlags() & flag) != 0; }
|
||||||
|
virtual void SetDynamicFlag(uint32 flag) { ReplaceAllDynamicFlags(GetDynamicFlags() | flag); }
|
||||||
|
virtual void RemoveDynamicFlag(uint32 flag) { ReplaceAllDynamicFlags(GetDynamicFlags() & ~flag); }
|
||||||
|
virtual void ReplaceAllDynamicFlags([[maybe_unused]] uint32 flag) { }
|
||||||
|
|
||||||
[[nodiscard]] TypeID GetTypeId() const { return m_objectTypeId; }
|
[[nodiscard]] TypeID GetTypeId() const { return m_objectTypeId; }
|
||||||
[[nodiscard]] bool isType(uint16 mask) const { return (mask & m_objectType); }
|
[[nodiscard]] bool isType(uint16 mask) const { return (mask & m_objectType); }
|
||||||
|
|
||||||
|
|||||||
@@ -621,7 +621,7 @@ void Pet::setDeathState(DeathState s, bool /*despawn = false*/)
|
|||||||
if (getPetType() == HUNTER_PET)
|
if (getPetType() == HUNTER_PET)
|
||||||
{
|
{
|
||||||
// pet corpse non lootable and non skinnable
|
// pet corpse non lootable and non skinnable
|
||||||
SetUInt32Value(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_NONE);
|
ReplaceAllDynamicFlags(UNIT_DYNFLAG_NONE);
|
||||||
RemoveUnitFlag(UNIT_FLAG_SKINNABLE);
|
RemoveUnitFlag(UNIT_FLAG_SKINNABLE);
|
||||||
|
|
||||||
//lose happiness when died and not in BG/Arena
|
//lose happiness when died and not in BG/Arena
|
||||||
|
|||||||
@@ -4361,7 +4361,7 @@ void Player::ResurrectPlayer(float restore_percent, bool applySickness)
|
|||||||
RemoveAurasDueToSpell(8326); // SPELL_AURA_GHOST
|
RemoveAurasDueToSpell(8326); // SPELL_AURA_GHOST
|
||||||
|
|
||||||
if (GetSession()->IsARecruiter() || (GetSession()->GetRecruiterId() != 0))
|
if (GetSession()->IsARecruiter() || (GetSession()->GetRecruiterId() != 0))
|
||||||
SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_REFER_A_FRIEND);
|
SetDynamicFlag(UNIT_DYNFLAG_REFER_A_FRIEND);
|
||||||
|
|
||||||
setDeathState(ALIVE);
|
setDeathState(ALIVE);
|
||||||
SetMovement(MOVE_LAND_WALK);
|
SetMovement(MOVE_LAND_WALK);
|
||||||
@@ -4433,7 +4433,7 @@ void Player::KillPlayer()
|
|||||||
setDeathState(CORPSE);
|
setDeathState(CORPSE);
|
||||||
//SetUnitFlag(UNIT_FLAG_NOT_IN_PVP);
|
//SetUnitFlag(UNIT_FLAG_NOT_IN_PVP);
|
||||||
|
|
||||||
SetUInt32Value(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_NONE);
|
ReplaceAllDynamicFlags(UNIT_DYNFLAG_NONE);
|
||||||
ApplyModFlag(PLAYER_FIELD_BYTES, PLAYER_FIELD_BYTE_RELEASE_TIMER, !sMapStore.LookupEntry(GetMapId())->Instanceable() && !HasAuraType(SPELL_AURA_PREVENT_RESURRECTION));
|
ApplyModFlag(PLAYER_FIELD_BYTES, PLAYER_FIELD_BYTE_RELEASE_TIMER, !sMapStore.LookupEntry(GetMapId())->Instanceable() && !HasAuraType(SPELL_AURA_PREVENT_RESURRECTION));
|
||||||
|
|
||||||
// 6 minutes until repop at graveyard
|
// 6 minutes until repop at graveyard
|
||||||
@@ -7866,7 +7866,7 @@ void Player::SendLoot(ObjectGuid guid, LootType loot_type)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Xinef: Exploit fix
|
// Xinef: Exploit fix
|
||||||
if (!creature->HasFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE))
|
if (!creature->HasDynamicFlag(UNIT_DYNFLAG_LOOTABLE))
|
||||||
{
|
{
|
||||||
SendLootError(guid, LOOT_ERROR_DIDNT_KILL);
|
SendLootError(guid, LOOT_ERROR_DIDNT_KILL);
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -5595,7 +5595,7 @@ bool Player::LoadFromDB(ObjectGuid playerGuid, CharacterDatabaseQueryHolder cons
|
|||||||
// RaF stuff.
|
// RaF stuff.
|
||||||
m_grantableLevels = fields[71].Get<uint8>();
|
m_grantableLevels = fields[71].Get<uint8>();
|
||||||
if (GetSession()->IsARecruiter() || (GetSession()->GetRecruiterId() != 0))
|
if (GetSession()->IsARecruiter() || (GetSession()->GetRecruiterId() != 0))
|
||||||
SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_REFER_A_FRIEND);
|
SetDynamicFlag(UNIT_DYNFLAG_REFER_A_FRIEND);
|
||||||
|
|
||||||
if (m_grantableLevels > 0)
|
if (m_grantableLevels > 0)
|
||||||
SetByteValue(PLAYER_FIELD_BYTES, 1, 0x01);
|
SetByteValue(PLAYER_FIELD_BYTES, 1, 0x01);
|
||||||
|
|||||||
@@ -13160,8 +13160,8 @@ void Unit::ClearInCombat()
|
|||||||
SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC); // set immunity state to the one from db on evade
|
SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC); // set immunity state to the one from db on evade
|
||||||
|
|
||||||
ClearUnitState(UNIT_STATE_ATTACK_PLAYER);
|
ClearUnitState(UNIT_STATE_ATTACK_PLAYER);
|
||||||
if (HasFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_TAPPED))
|
if (HasDynamicFlag(UNIT_DYNFLAG_TAPPED))
|
||||||
SetUInt32Value(UNIT_DYNAMIC_FLAGS, creature->GetCreatureTemplate()->dynamicflags);
|
ReplaceAllDynamicFlags(creature->GetCreatureTemplate()->dynamicflags);
|
||||||
|
|
||||||
creature->SetAssistanceTimer(0);
|
creature->SetAssistanceTimer(0);
|
||||||
|
|
||||||
@@ -17412,7 +17412,7 @@ void Unit::Kill(Unit* killer, Unit* victim, bool durabilityLoss, WeaponAttackTyp
|
|||||||
// must be after setDeathState which resets dynamic flags
|
// must be after setDeathState which resets dynamic flags
|
||||||
if (!creature->loot.isLooted())
|
if (!creature->loot.isLooted())
|
||||||
{
|
{
|
||||||
creature->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
|
creature->SetDynamicFlag(UNIT_DYNFLAG_LOOTABLE);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -20165,7 +20165,7 @@ void Unit::BuildValuesUpdate(uint8 updateType, ByteBuffer* data, Player* target)
|
|||||||
if (GetOwnerGUID() == target->GetGUID())
|
if (GetOwnerGUID() == target->GetGUID())
|
||||||
visibleFlag |= UF_FLAG_OWNER;
|
visibleFlag |= UF_FLAG_OWNER;
|
||||||
|
|
||||||
if (HasFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_SPECIALINFO))
|
if (HasDynamicFlag(UNIT_DYNFLAG_SPECIALINFO))
|
||||||
if (HasAuraTypeWithCaster(SPELL_AURA_EMPATHY, target->GetGUID()))
|
if (HasAuraTypeWithCaster(SPELL_AURA_EMPATHY, target->GetGUID()))
|
||||||
visibleFlag |= UF_FLAG_SPECIAL_INFO;
|
visibleFlag |= UF_FLAG_SPECIAL_INFO;
|
||||||
|
|
||||||
|
|||||||
@@ -1296,6 +1296,9 @@ public:
|
|||||||
void CleanupBeforeRemoveFromMap(bool finalCleanup);
|
void CleanupBeforeRemoveFromMap(bool finalCleanup);
|
||||||
void CleanupsBeforeDelete(bool finalCleanup = true) override; // used in ~Creature/~Player (or before mass creature delete to remove cross-references to already deleted units)
|
void CleanupsBeforeDelete(bool finalCleanup = true) override; // used in ~Creature/~Player (or before mass creature delete to remove cross-references to already deleted units)
|
||||||
|
|
||||||
|
uint32 GetDynamicFlags() const override { return GetUInt32Value(UNIT_DYNAMIC_FLAGS); }
|
||||||
|
void ReplaceAllDynamicFlags(uint32 flag) override { SetUInt32Value(UNIT_DYNAMIC_FLAGS, flag); }
|
||||||
|
|
||||||
DiminishingLevels GetDiminishing(DiminishingGroup group);
|
DiminishingLevels GetDiminishing(DiminishingGroup group);
|
||||||
void IncrDiminishing(DiminishingGroup group);
|
void IncrDiminishing(DiminishingGroup group);
|
||||||
float ApplyDiminishingToDuration(DiminishingGroup group, int32& duration, Unit* caster, DiminishingLevels Level, int32 limitduration);
|
float ApplyDiminishingToDuration(DiminishingGroup group, int32& duration, Unit* caster, DiminishingLevels Level, int32 limitduration);
|
||||||
|
|||||||
@@ -380,7 +380,7 @@ void WorldSession::DoLootRelease(ObjectGuid lguid)
|
|||||||
if (!creature->IsAlive())
|
if (!creature->IsAlive())
|
||||||
creature->AllLootRemovedFromCorpse();
|
creature->AllLootRemovedFromCorpse();
|
||||||
|
|
||||||
creature->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
|
creature->RemoveDynamicFlag(UNIT_DYNFLAG_LOOTABLE);
|
||||||
loot->clear();
|
loot->clear();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -2483,7 +2483,7 @@ void AuraEffect::HandleFeignDeath(AuraApplication const* aurApp, uint8 mode, boo
|
|||||||
// blizz like 2.0.x
|
// blizz like 2.0.x
|
||||||
target->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
target->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||||
// blizz like 2.0.x
|
// blizz like 2.0.x
|
||||||
target->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
target->SetDynamicFlag(UNIT_DYNFLAG_DEAD);
|
||||||
|
|
||||||
target->AddUnitState(UNIT_STATE_DIED);
|
target->AddUnitState(UNIT_STATE_DIED);
|
||||||
}
|
}
|
||||||
@@ -2500,7 +2500,7 @@ void AuraEffect::HandleFeignDeath(AuraApplication const* aurApp, uint8 mode, boo
|
|||||||
// blizz like 2.0.x
|
// blizz like 2.0.x
|
||||||
target->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
target->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||||
// blizz like 2.0.x
|
// blizz like 2.0.x
|
||||||
target->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
target->RemoveDynamicFlag(UNIT_DYNFLAG_DEAD);
|
||||||
|
|
||||||
target->ClearUnitState(UNIT_STATE_DIED);
|
target->ClearUnitState(UNIT_STATE_DIED);
|
||||||
}
|
}
|
||||||
@@ -2746,12 +2746,12 @@ void AuraEffect::HandleAuraModStalked(AuraApplication const* aurApp, uint8 mode,
|
|||||||
|
|
||||||
// used by spells: Hunter's Mark, Mind Vision, Syndicate Tracker (MURP) DND
|
// used by spells: Hunter's Mark, Mind Vision, Syndicate Tracker (MURP) DND
|
||||||
if (apply)
|
if (apply)
|
||||||
target->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_TRACK_UNIT);
|
target->SetDynamicFlag(UNIT_DYNFLAG_TRACK_UNIT);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// do not remove unit flag if there are more than this auraEffect of that kind on unit on unit
|
// do not remove unit flag if there are more than this auraEffect of that kind on unit on unit
|
||||||
if (!target->HasAuraType(GetAuraType()))
|
if (!target->HasAuraType(GetAuraType()))
|
||||||
target->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_TRACK_UNIT);
|
target->RemoveDynamicFlag(UNIT_DYNFLAG_TRACK_UNIT);
|
||||||
}
|
}
|
||||||
|
|
||||||
// call functions which may have additional effects after chainging state of unit
|
// call functions which may have additional effects after chainging state of unit
|
||||||
|
|||||||
@@ -4854,7 +4854,7 @@ void Spell::EffectSkinning(SpellEffIndex /*effIndex*/)
|
|||||||
uint32 skill = creature->GetCreatureTemplate()->GetRequiredLootSkill();
|
uint32 skill = creature->GetCreatureTemplate()->GetRequiredLootSkill();
|
||||||
|
|
||||||
creature->RemoveUnitFlag(UNIT_FLAG_SKINNABLE);
|
creature->RemoveUnitFlag(UNIT_FLAG_SKINNABLE);
|
||||||
creature->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
|
creature->SetDynamicFlag(UNIT_DYNFLAG_LOOTABLE);
|
||||||
m_caster->ToPlayer()->SendLoot(creature->GetGUID(), LOOT_SKINNING);
|
m_caster->ToPlayer()->SendLoot(creature->GetGUID(), LOOT_SKINNING);
|
||||||
|
|
||||||
int32 reqValue = targetLevel < 10 ? 0 : targetLevel < 20 ? (targetLevel - 10) * 10 : targetLevel * 5;
|
int32 reqValue = targetLevel < 10 ? 0 : targetLevel < 20 ? (targetLevel - 10) * 10 : targetLevel * 5;
|
||||||
@@ -5204,7 +5204,7 @@ void Spell::EffectResurrectPet(SpellEffIndex /*effIndex*/)
|
|||||||
player->GetClosePoint(x, y, z, pet->GetCombatReach(), PET_FOLLOW_DIST, pet->GetFollowAngle());
|
player->GetClosePoint(x, y, z, pet->GetCombatReach(), PET_FOLLOW_DIST, pet->GetFollowAngle());
|
||||||
pet->NearTeleportTo(x, y, z, player->GetOrientation());
|
pet->NearTeleportTo(x, y, z, player->GetOrientation());
|
||||||
pet->Relocate(x, y, z, player->GetOrientation()); // This is needed so SaveStayPosition() will get the proper coords.
|
pet->Relocate(x, y, z, player->GetOrientation()); // This is needed so SaveStayPosition() will get the proper coords.
|
||||||
pet->SetUInt32Value(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_NONE);
|
pet->ReplaceAllDynamicFlags(UNIT_DYNFLAG_NONE);
|
||||||
pet->RemoveUnitFlag(UNIT_FLAG_SKINNABLE);
|
pet->RemoveUnitFlag(UNIT_FLAG_SKINNABLE);
|
||||||
pet->setDeathState(ALIVE);
|
pet->setDeathState(ALIVE);
|
||||||
pet->ClearUnitState(uint32(UNIT_STATE_ALL_STATE & ~(UNIT_STATE_POSSESSED))); // xinef: just in case
|
pet->ClearUnitState(uint32(UNIT_STATE_ALL_STATE & ~(UNIT_STATE_POSSESSED))); // xinef: just in case
|
||||||
|
|||||||
@@ -267,7 +267,7 @@ public:
|
|||||||
uint32 factionid = target->GetFaction();
|
uint32 factionid = target->GetFaction();
|
||||||
uint32 flag = target->GetUnitFlags();
|
uint32 flag = target->GetUnitFlags();
|
||||||
uint32 npcflag = target->GetUInt32Value(UNIT_NPC_FLAGS);
|
uint32 npcflag = target->GetUInt32Value(UNIT_NPC_FLAGS);
|
||||||
uint32 dyflag = target->GetUInt32Value(UNIT_DYNAMIC_FLAGS);
|
uint32 dyflag = target->GetDynamicFlags();
|
||||||
handler->PSendSysMessage(LANG_CURRENT_FACTION, target->GetGUID().GetCounter(), factionid, flag, npcflag, dyflag);
|
handler->PSendSysMessage(LANG_CURRENT_FACTION, target->GetGUID().GetCounter(), factionid, flag, npcflag, dyflag);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -291,7 +291,7 @@ public:
|
|||||||
|
|
||||||
auto pdyflag = dynamicFlagID;
|
auto pdyflag = dynamicFlagID;
|
||||||
if (!pdyflag)
|
if (!pdyflag)
|
||||||
dyflag = target->GetUInt32Value(UNIT_DYNAMIC_FLAGS);
|
dyflag = target->GetDynamicFlags();
|
||||||
else
|
else
|
||||||
dyflag = *dynamicFlagID;
|
dyflag = *dynamicFlagID;
|
||||||
|
|
||||||
@@ -307,7 +307,7 @@ public:
|
|||||||
target->SetFaction(factionid);
|
target->SetFaction(factionid);
|
||||||
target->ReplaceAllUnitFlags(flag);
|
target->ReplaceAllUnitFlags(flag);
|
||||||
target->SetUInt32Value(UNIT_NPC_FLAGS, npcflag);
|
target->SetUInt32Value(UNIT_NPC_FLAGS, npcflag);
|
||||||
target->SetUInt32Value(UNIT_DYNAMIC_FLAGS, dyflag);
|
target->ReplaceAllDynamicFlags(dyflag);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -614,7 +614,7 @@ public:
|
|||||||
handler->PSendSysMessage(LANG_NPCINFO_LEVEL, target->getLevel());
|
handler->PSendSysMessage(LANG_NPCINFO_LEVEL, target->getLevel());
|
||||||
handler->PSendSysMessage(LANG_NPCINFO_EQUIPMENT, target->GetCurrentEquipmentId(), target->GetOriginalEquipmentId());
|
handler->PSendSysMessage(LANG_NPCINFO_EQUIPMENT, target->GetCurrentEquipmentId(), target->GetOriginalEquipmentId());
|
||||||
handler->PSendSysMessage(LANG_NPCINFO_HEALTH, target->GetCreateHealth(), target->GetMaxHealth(), target->GetHealth());
|
handler->PSendSysMessage(LANG_NPCINFO_HEALTH, target->GetCreateHealth(), target->GetMaxHealth(), target->GetHealth());
|
||||||
handler->PSendSysMessage(LANG_NPCINFO_FLAGS, target->GetUnitFlags(), target->GetUnitFlags2(), target->GetUInt32Value(UNIT_DYNAMIC_FLAGS), target->GetFaction());
|
handler->PSendSysMessage(LANG_NPCINFO_FLAGS, target->GetUnitFlags(), target->GetUnitFlags2(), target->GetDynamicFlags(), target->GetFaction());
|
||||||
handler->PSendSysMessage(LANG_COMMAND_RAWPAWNTIMES, defRespawnDelayStr.c_str(), curRespawnDelayStr.c_str());
|
handler->PSendSysMessage(LANG_COMMAND_RAWPAWNTIMES, defRespawnDelayStr.c_str(), curRespawnDelayStr.c_str());
|
||||||
handler->PSendSysMessage(LANG_NPCINFO_LOOT, cInfo->lootid, cInfo->pickpocketLootId, cInfo->SkinLootId);
|
handler->PSendSysMessage(LANG_NPCINFO_LOOT, cInfo->lootid, cInfo->pickpocketLootId, cInfo->SkinLootId);
|
||||||
handler->PSendSysMessage(LANG_NPCINFO_DUNGEON_ID, target->GetInstanceId());
|
handler->PSendSysMessage(LANG_NPCINFO_DUNGEON_ID, target->GetInstanceId());
|
||||||
|
|||||||
@@ -132,7 +132,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
creatureTarget->CastSpell(creatureTarget, SPELL_PLAY_DEAD_PACIFY, true);
|
creatureTarget->CastSpell(creatureTarget, SPELL_PLAY_DEAD_PACIFY, true);
|
||||||
creatureTarget->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
creatureTarget->SetDynamicFlag(UNIT_DYNFLAG_DEAD);
|
||||||
creatureTarget->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
creatureTarget->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||||
//creatureTarget->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
//creatureTarget->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||||
creatureTarget->SetReactState(REACT_PASSIVE);
|
creatureTarget->SetReactState(REACT_PASSIVE);
|
||||||
@@ -150,7 +150,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
creatureTarget->RemoveAurasDueToSpell(SPELL_PLAY_DEAD_PACIFY);
|
creatureTarget->RemoveAurasDueToSpell(SPELL_PLAY_DEAD_PACIFY);
|
||||||
creatureTarget->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
creatureTarget->RemoveDynamicFlag(UNIT_DYNFLAG_DEAD);
|
||||||
creatureTarget->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
creatureTarget->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||||
//creatureTarget->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
//creatureTarget->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||||
creatureTarget->SetControlled(false, UNIT_STATE_ROOT);
|
creatureTarget->SetControlled(false, UNIT_STATE_ROOT);
|
||||||
|
|||||||
@@ -1244,7 +1244,7 @@ public:
|
|||||||
Julianne->setDeathState(JUST_DIED);
|
Julianne->setDeathState(JUST_DIED);
|
||||||
Julianne->CombatStop(true);
|
Julianne->CombatStop(true);
|
||||||
Julianne->DeleteThreatList();
|
Julianne->DeleteThreatList();
|
||||||
Julianne->SetUInt32Value(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
|
Julianne->ReplaceAllDynamicFlags(UNIT_DYNFLAG_LOOTABLE);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -1547,7 +1547,7 @@ void boss_julianne::boss_julianneAI::DamageTaken(Unit* /*done_by*/, uint32& dama
|
|||||||
Romulo->setDeathState(JUST_DIED);
|
Romulo->setDeathState(JUST_DIED);
|
||||||
Romulo->CombatStop(true);
|
Romulo->CombatStop(true);
|
||||||
Romulo->DeleteThreatList();
|
Romulo->DeleteThreatList();
|
||||||
Romulo->SetUInt32Value(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
|
Romulo->ReplaceAllDynamicFlags(UNIT_DYNFLAG_LOOTABLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -142,7 +142,7 @@ public:
|
|||||||
me->loot.clear();
|
me->loot.clear();
|
||||||
me->loot.FillLoot(me->GetCreatureTemplate()->lootid, LootTemplates_Creature, me->GetLootRecipient(), false, false, 1, me);
|
me->loot.FillLoot(me->GetCreatureTemplate()->lootid, LootTemplates_Creature, me->GetLootRecipient(), false, false, 1, me);
|
||||||
instance->SetData(DATA_DELRISSA_EVENT, DONE);
|
instance->SetData(DATA_DELRISSA_EVENT, DONE);
|
||||||
me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
|
me->SetDynamicFlag(UNIT_DYNFLAG_LOOTABLE);
|
||||||
}
|
}
|
||||||
++HelpersKilled;
|
++HelpersKilled;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -217,7 +217,7 @@ public:
|
|||||||
bool appear = instance->GetBossState(DATA_BRUTALLUS) != DONE && instance->GetBossState(DATA_MADRIGOSA) == DONE;
|
bool appear = instance->GetBossState(DATA_BRUTALLUS) != DONE && instance->GetBossState(DATA_MADRIGOSA) == DONE;
|
||||||
creature->SetVisible(appear);
|
creature->SetVisible(appear);
|
||||||
creature->SetStandState(UNIT_STAND_STATE_DEAD);
|
creature->SetStandState(UNIT_STAND_STATE_DEAD);
|
||||||
creature->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
creature->SetDynamicFlag(UNIT_DYNFLAG_DEAD);
|
||||||
}
|
}
|
||||||
|
|
||||||
EventMap events;
|
EventMap events;
|
||||||
@@ -229,7 +229,7 @@ public:
|
|||||||
{
|
{
|
||||||
me->SetDisableGravity(true);
|
me->SetDisableGravity(true);
|
||||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||||
me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
me->RemoveDynamicFlag(UNIT_DYNFLAG_DEAD);
|
||||||
me->NearTeleportTo(1570.97f, 725.51f, 79.77f, 3.82f);
|
me->NearTeleportTo(1570.97f, 725.51f, 79.77f, 3.82f);
|
||||||
events.ScheduleEvent(EVENT_MAD_1, 2000);
|
events.ScheduleEvent(EVENT_MAD_1, 2000);
|
||||||
}
|
}
|
||||||
@@ -361,7 +361,7 @@ public:
|
|||||||
break;
|
break;
|
||||||
case EVENT_MAD_18:
|
case EVENT_MAD_18:
|
||||||
Talk(SAY_MAD_5);
|
Talk(SAY_MAD_5);
|
||||||
me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
me->SetDynamicFlag(UNIT_DYNFLAG_DEAD);
|
||||||
me->SetStandState(UNIT_STAND_STATE_DEAD);
|
me->SetStandState(UNIT_STAND_STATE_DEAD);
|
||||||
events.ScheduleEvent(EVENT_MAD_19, 6000);
|
events.ScheduleEvent(EVENT_MAD_19, 6000);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -642,7 +642,7 @@ public:
|
|||||||
me->SetDisplayId(MODEL_HARRISON_JONES_2);
|
me->SetDisplayId(MODEL_HARRISON_JONES_2);
|
||||||
me->SetTarget();
|
me->SetTarget();
|
||||||
me->SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_STAND_STATE, UNIT_STAND_STATE_DEAD);
|
me->SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_STAND_STATE, UNIT_STAND_STATE_DEAD);
|
||||||
me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
me->SetDynamicFlag(UNIT_DYNFLAG_DEAD);
|
||||||
instance->SetData(DATA_GONGEVENT, DONE);
|
instance->SetData(DATA_GONGEVENT, DONE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -400,7 +400,7 @@ void hyjal_trashAI::JustDied(Unit* /*killer*/)
|
|||||||
instance->SetData(DATA_TRASH, 0);//signal trash is dead
|
instance->SetData(DATA_TRASH, 0);//signal trash is dead
|
||||||
|
|
||||||
if ((instance->GetData(DATA_RAIDDAMAGE) < MINRAIDDAMAGE && !me->isWorldBoss()) || (damageTaken < me->GetMaxHealth() / 4 && me->isWorldBoss()))
|
if ((instance->GetData(DATA_RAIDDAMAGE) < MINRAIDDAMAGE && !me->isWorldBoss()) || (damageTaken < me->GetMaxHealth() / 4 && me->isWorldBoss()))
|
||||||
me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);//no loot
|
me->RemoveDynamicFlag(UNIT_DYNFLAG_LOOTABLE);//no loot
|
||||||
}
|
}
|
||||||
|
|
||||||
class npc_giant_infernal : public CreatureScript
|
class npc_giant_infernal : public CreatureScript
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ public:
|
|||||||
void JustDied(Unit* /*killer*/) override
|
void JustDied(Unit* /*killer*/) override
|
||||||
{
|
{
|
||||||
if (instance->GetData(DATA_BUG_TRIO_DEATH) < 2)// Unlootable if death
|
if (instance->GetData(DATA_BUG_TRIO_DEATH) < 2)// Unlootable if death
|
||||||
me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
|
me->RemoveDynamicFlag(UNIT_DYNFLAG_LOOTABLE);
|
||||||
|
|
||||||
instance->SetData(DATA_BUG_TRIO_DEATH, 1);
|
instance->SetData(DATA_BUG_TRIO_DEATH, 1);
|
||||||
}
|
}
|
||||||
@@ -173,7 +173,7 @@ public:
|
|||||||
{
|
{
|
||||||
instance->SetData(DATA_VEM_DEATH, 0);
|
instance->SetData(DATA_VEM_DEATH, 0);
|
||||||
if (instance->GetData(DATA_BUG_TRIO_DEATH) < 2)// Unlootable if death
|
if (instance->GetData(DATA_BUG_TRIO_DEATH) < 2)// Unlootable if death
|
||||||
me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
|
me->RemoveDynamicFlag(UNIT_DYNFLAG_LOOTABLE);
|
||||||
instance->SetData(DATA_BUG_TRIO_DEATH, 1);
|
instance->SetData(DATA_BUG_TRIO_DEATH, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -262,7 +262,7 @@ public:
|
|||||||
void JustDied(Unit* /*killer*/) override
|
void JustDied(Unit* /*killer*/) override
|
||||||
{
|
{
|
||||||
if (instance->GetData(DATA_BUG_TRIO_DEATH) < 2)// Unlootable if death
|
if (instance->GetData(DATA_BUG_TRIO_DEATH) < 2)// Unlootable if death
|
||||||
me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
|
me->RemoveDynamicFlag(UNIT_DYNFLAG_LOOTABLE);
|
||||||
instance->SetData(DATA_BUG_TRIO_DEATH, 1);
|
instance->SetData(DATA_BUG_TRIO_DEATH, 1);
|
||||||
|
|
||||||
for (uint8 i = 0; i < 10; ++i)
|
for (uint8 i = 0; i < 10; ++i)
|
||||||
|
|||||||
@@ -115,7 +115,7 @@ struct boss_twinemperorsAI : public ScriptedAI
|
|||||||
if (ohealth <= 0)
|
if (ohealth <= 0)
|
||||||
{
|
{
|
||||||
pOtherBoss->setDeathState(JUST_DIED);
|
pOtherBoss->setDeathState(JUST_DIED);
|
||||||
pOtherBoss->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
|
pOtherBoss->SetDynamicFlag(UNIT_DYNFLAG_LOOTABLE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -127,7 +127,7 @@ struct boss_twinemperorsAI : public ScriptedAI
|
|||||||
{
|
{
|
||||||
pOtherBoss->SetHealth(0);
|
pOtherBoss->SetHealth(0);
|
||||||
pOtherBoss->setDeathState(JUST_DIED);
|
pOtherBoss->setDeathState(JUST_DIED);
|
||||||
pOtherBoss->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
|
pOtherBoss->SetDynamicFlag(UNIT_DYNFLAG_LOOTABLE);
|
||||||
CAST_AI(boss_twinemperorsAI, pOtherBoss->AI())->DontYellWhenDead = true;
|
CAST_AI(boss_twinemperorsAI, pOtherBoss->AI())->DontYellWhenDead = true;
|
||||||
}
|
}
|
||||||
if (!DontYellWhenDead) // I hope AI is not threaded
|
if (!DontYellWhenDead) // I hope AI is not threaded
|
||||||
|
|||||||
+2
-2
@@ -156,7 +156,7 @@ public:
|
|||||||
me->CastSpell(me, SPELL_BK_FEIGN_DEATH, true);
|
me->CastSpell(me, SPELL_BK_FEIGN_DEATH, true);
|
||||||
me->SetUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
|
me->SetUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
|
||||||
me->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
me->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||||
me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
me->SetDynamicFlag(UNIT_DYNFLAG_DEAD);
|
||||||
me->AddUnitState(UNIT_STATE_DIED);
|
me->AddUnitState(UNIT_STATE_DIED);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -198,7 +198,7 @@ public:
|
|||||||
|
|
||||||
me->RemoveUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
|
me->RemoveUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
|
||||||
me->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
me->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||||
me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
me->RemoveDynamicFlag(UNIT_DYNFLAG_DEAD);
|
||||||
me->ClearUnitState(UNIT_STATE_DIED);
|
me->ClearUnitState(UNIT_STATE_DIED);
|
||||||
|
|
||||||
++Phase;
|
++Phase;
|
||||||
|
|||||||
@@ -420,7 +420,7 @@ public:
|
|||||||
me->SetReactState(REACT_PASSIVE);
|
me->SetReactState(REACT_PASSIVE);
|
||||||
me->SetUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
me->SetUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||||
me->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
me->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||||
me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
me->SetDynamicFlag(UNIT_DYNFLAG_DEAD);
|
||||||
me->AddUnitState(UNIT_STATE_DIED);
|
me->AddUnitState(UNIT_STATE_DIED);
|
||||||
|
|
||||||
me->CastSpell(me, SPELL_KRICK_KILL_CREDIT, true);
|
me->CastSpell(me, SPELL_KRICK_KILL_CREDIT, true);
|
||||||
|
|||||||
@@ -210,7 +210,7 @@ public:
|
|||||||
c->CastSpell(c, SPELL_FEIGN_DEATH, true);
|
c->CastSpell(c, SPELL_FEIGN_DEATH, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
me->SetDynamicFlag(UNIT_DYNFLAG_DEAD);
|
||||||
me->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
me->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||||
me->SetReactState(REACT_PASSIVE);
|
me->SetReactState(REACT_PASSIVE);
|
||||||
@@ -368,7 +368,7 @@ public:
|
|||||||
case ACTION_STAND_UP:
|
case ACTION_STAND_UP:
|
||||||
summons.DespawnEntry(WORLD_TRIGGER);
|
summons.DespawnEntry(WORLD_TRIGGER);
|
||||||
me->RemoveUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
me->RemoveUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||||
me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
me->RemoveDynamicFlag(UNIT_DYNFLAG_DEAD);
|
||||||
me->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
me->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||||
me->SetReactState(REACT_AGGRESSIVE);
|
me->SetReactState(REACT_AGGRESSIVE);
|
||||||
me->ForceValuesUpdateAtIndex(UNIT_NPC_FLAGS); // was in sniff. don't ask why
|
me->ForceValuesUpdateAtIndex(UNIT_NPC_FLAGS); // was in sniff. don't ask why
|
||||||
@@ -469,7 +469,7 @@ public:
|
|||||||
c->CastSpell(c, SPELL_FEIGN_DEATH, true);
|
c->CastSpell(c, SPELL_FEIGN_DEATH, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
me->SetDynamicFlag(UNIT_DYNFLAG_DEAD);
|
||||||
me->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
me->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||||
me->SetReactState(REACT_PASSIVE);
|
me->SetReactState(REACT_PASSIVE);
|
||||||
@@ -637,7 +637,7 @@ public:
|
|||||||
case ACTION_STAND_UP:
|
case ACTION_STAND_UP:
|
||||||
summons.DespawnEntry(WORLD_TRIGGER);
|
summons.DespawnEntry(WORLD_TRIGGER);
|
||||||
me->RemoveUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
me->RemoveUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||||
me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
me->RemoveDynamicFlag(UNIT_DYNFLAG_DEAD);
|
||||||
me->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
me->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||||
me->SetReactState(REACT_AGGRESSIVE);
|
me->SetReactState(REACT_AGGRESSIVE);
|
||||||
me->ForceValuesUpdateAtIndex(UNIT_NPC_FLAGS); // was in sniff. don't ask why
|
me->ForceValuesUpdateAtIndex(UNIT_NPC_FLAGS); // was in sniff. don't ask why
|
||||||
@@ -753,7 +753,7 @@ public:
|
|||||||
c->CastSpell(c, SPELL_FEIGN_DEATH, true);
|
c->CastSpell(c, SPELL_FEIGN_DEATH, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
me->SetDynamicFlag(UNIT_DYNFLAG_DEAD);
|
||||||
me->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
me->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||||
me->SetReactState(REACT_PASSIVE);
|
me->SetReactState(REACT_PASSIVE);
|
||||||
@@ -930,7 +930,7 @@ public:
|
|||||||
case ACTION_STAND_UP:
|
case ACTION_STAND_UP:
|
||||||
summons.DespawnEntry(WORLD_TRIGGER);
|
summons.DespawnEntry(WORLD_TRIGGER);
|
||||||
me->RemoveUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
me->RemoveUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||||
me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
me->RemoveDynamicFlag(UNIT_DYNFLAG_DEAD);
|
||||||
me->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
me->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||||
me->SetReactState(REACT_AGGRESSIVE);
|
me->SetReactState(REACT_AGGRESSIVE);
|
||||||
me->ForceValuesUpdateAtIndex(UNIT_NPC_FLAGS); // was in sniff. don't ask why
|
me->ForceValuesUpdateAtIndex(UNIT_NPC_FLAGS); // was in sniff. don't ask why
|
||||||
|
|||||||
@@ -744,7 +744,7 @@ public:
|
|||||||
break;
|
break;
|
||||||
case EVENT_CULTIST_DARK_MARTYRDOM_REVIVE:
|
case EVENT_CULTIST_DARK_MARTYRDOM_REVIVE:
|
||||||
me->RemoveAurasDueToSpell(SPELL_PERMANENT_FEIGN_DEATH);
|
me->RemoveAurasDueToSpell(SPELL_PERMANENT_FEIGN_DEATH);
|
||||||
me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
me->RemoveDynamicFlag(UNIT_DYNFLAG_DEAD);
|
||||||
me->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
me->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||||
me->UpdateEntry(NPC_REANIMATED_FANATIC);
|
me->UpdateEntry(NPC_REANIMATED_FANATIC);
|
||||||
me->RemoveUnitFlag(UNIT_FLAG_STUNNED | UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT | UNIT_FLAG_NOT_SELECTABLE);
|
me->RemoveUnitFlag(UNIT_FLAG_STUNNED | UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT | UNIT_FLAG_NOT_SELECTABLE);
|
||||||
@@ -759,7 +759,7 @@ public:
|
|||||||
me->CastSpell(me, SPELL_PERMANENT_FEIGN_DEATH, true);
|
me->CastSpell(me, SPELL_PERMANENT_FEIGN_DEATH, true);
|
||||||
me->CastSpell(me, SPELL_CLEAR_ALL_DEBUFFS, true);
|
me->CastSpell(me, SPELL_CLEAR_ALL_DEBUFFS, true);
|
||||||
me->CastSpell(me, SPELL_FULL_HEAL, true);
|
me->CastSpell(me, SPELL_FULL_HEAL, true);
|
||||||
me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
me->SetDynamicFlag(UNIT_DYNFLAG_DEAD);
|
||||||
me->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
me->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||||
me->SetUnitFlag(UNIT_FLAG_STUNNED | UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT | UNIT_FLAG_NOT_SELECTABLE);
|
me->SetUnitFlag(UNIT_FLAG_STUNNED | UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT | UNIT_FLAG_NOT_SELECTABLE);
|
||||||
Reset();
|
Reset();
|
||||||
@@ -865,7 +865,7 @@ public:
|
|||||||
break;
|
break;
|
||||||
case EVENT_CULTIST_DARK_MARTYRDOM_REVIVE:
|
case EVENT_CULTIST_DARK_MARTYRDOM_REVIVE:
|
||||||
me->RemoveAurasDueToSpell(SPELL_PERMANENT_FEIGN_DEATH);
|
me->RemoveAurasDueToSpell(SPELL_PERMANENT_FEIGN_DEATH);
|
||||||
me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
me->RemoveDynamicFlag(UNIT_DYNFLAG_DEAD);
|
||||||
me->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
me->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||||
me->UpdateEntry(NPC_REANIMATED_ADHERENT);
|
me->UpdateEntry(NPC_REANIMATED_ADHERENT);
|
||||||
me->RemoveUnitFlag(UNIT_FLAG_STUNNED | UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT | UNIT_FLAG_NOT_SELECTABLE);
|
me->RemoveUnitFlag(UNIT_FLAG_STUNNED | UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT | UNIT_FLAG_NOT_SELECTABLE);
|
||||||
@@ -880,7 +880,7 @@ public:
|
|||||||
me->CastSpell(me, SPELL_PERMANENT_FEIGN_DEATH, true);
|
me->CastSpell(me, SPELL_PERMANENT_FEIGN_DEATH, true);
|
||||||
me->CastSpell(me, SPELL_CLEAR_ALL_DEBUFFS, true);
|
me->CastSpell(me, SPELL_CLEAR_ALL_DEBUFFS, true);
|
||||||
me->CastSpell(me, SPELL_FULL_HEAL, true);
|
me->CastSpell(me, SPELL_FULL_HEAL, true);
|
||||||
me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
me->SetDynamicFlag(UNIT_DYNFLAG_DEAD);
|
||||||
me->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
me->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||||
me->SetUnitFlag(UNIT_FLAG_STUNNED | UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT | UNIT_FLAG_NOT_SELECTABLE);
|
me->SetUnitFlag(UNIT_FLAG_STUNNED | UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT | UNIT_FLAG_NOT_SELECTABLE);
|
||||||
Reset();
|
Reset();
|
||||||
|
|||||||
@@ -209,14 +209,14 @@ public:
|
|||||||
me->SetStandState(UNIT_STAND_STATE_DEAD);
|
me->SetStandState(UNIT_STAND_STATE_DEAD);
|
||||||
me->SetUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
|
me->SetUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
|
||||||
me->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
me->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||||
me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
me->SetDynamicFlag(UNIT_DYNFLAG_DEAD);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||||
me->RemoveUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
|
me->RemoveUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
|
||||||
me->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
me->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||||
me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
me->RemoveDynamicFlag(UNIT_DYNFLAG_DEAD);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -284,7 +284,7 @@ public:
|
|||||||
me->SetStandState(UNIT_STAND_STATE_DEAD);
|
me->SetStandState(UNIT_STAND_STATE_DEAD);
|
||||||
me->SetUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
|
me->SetUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
|
||||||
me->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
me->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||||
me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
me->SetDynamicFlag(UNIT_DYNFLAG_DEAD);
|
||||||
events.RescheduleEvent(EVENT_RESURRECT, 12000);
|
events.RescheduleEvent(EVENT_RESURRECT, 12000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -326,7 +326,7 @@ public:
|
|||||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||||
me->RemoveUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
|
me->RemoveUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
|
||||||
me->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
me->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||||
me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
me->RemoveDynamicFlag(UNIT_DYNFLAG_DEAD);
|
||||||
events.RescheduleEvent(EVENT_RESURRECT_2, 3000);
|
events.RescheduleEvent(EVENT_RESURRECT_2, 3000);
|
||||||
break;
|
break;
|
||||||
case EVENT_RESURRECT_2:
|
case EVENT_RESURRECT_2:
|
||||||
|
|||||||
@@ -220,7 +220,7 @@ public:
|
|||||||
case DATA_UNLOCK_SKARVALD_LOOT:
|
case DATA_UNLOCK_SKARVALD_LOOT:
|
||||||
if( Creature* c = instance->GetCreature(NPC_SkarvaldGUID) )
|
if( Creature* c = instance->GetCreature(NPC_SkarvaldGUID) )
|
||||||
{
|
{
|
||||||
c->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE | UNIT_DYNFLAG_TAPPED | UNIT_DYNFLAG_TAPPED_BY_PLAYER);
|
c->SetDynamicFlag(UNIT_DYNFLAG_LOOTABLE | UNIT_DYNFLAG_TAPPED | UNIT_DYNFLAG_TAPPED_BY_PLAYER);
|
||||||
c->SetLootMode(1);
|
c->SetLootMode(1);
|
||||||
c->loot.clear();
|
c->loot.clear();
|
||||||
if (uint32 lootid = c->GetCreatureTemplate()->lootid)
|
if (uint32 lootid = c->GetCreatureTemplate()->lootid)
|
||||||
@@ -235,7 +235,7 @@ public:
|
|||||||
if( Creature* c = instance->GetCreature(NPC_DalronnGUID) )
|
if( Creature* c = instance->GetCreature(NPC_DalronnGUID) )
|
||||||
{
|
{
|
||||||
c->AI()->DoAction(-1);
|
c->AI()->DoAction(-1);
|
||||||
c->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE | UNIT_DYNFLAG_TAPPED | UNIT_DYNFLAG_TAPPED_BY_PLAYER);
|
c->SetDynamicFlag(UNIT_DYNFLAG_LOOTABLE | UNIT_DYNFLAG_TAPPED | UNIT_DYNFLAG_TAPPED_BY_PLAYER);
|
||||||
c->SetLootMode(1);
|
c->SetLootMode(1);
|
||||||
c->loot.clear();
|
c->loot.clear();
|
||||||
if (uint32 lootid = c->GetCreatureTemplate()->lootid)
|
if (uint32 lootid = c->GetCreatureTemplate()->lootid)
|
||||||
|
|||||||
@@ -190,7 +190,7 @@ public:
|
|||||||
if (Unit* worm = me->FindNearestCreature(NPC_SCOURGED_BURROWER, 3.0f))
|
if (Unit* worm = me->FindNearestCreature(NPC_SCOURGED_BURROWER, 3.0f))
|
||||||
{
|
{
|
||||||
Unit::Kill(me, worm);
|
Unit::Kill(me, worm);
|
||||||
worm->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
|
worm->RemoveDynamicFlag(UNIT_DYNFLAG_LOOTABLE);
|
||||||
}
|
}
|
||||||
phaseTimer = 2000;
|
phaseTimer = 2000;
|
||||||
phase = 7;
|
phase = 7;
|
||||||
|
|||||||
@@ -417,7 +417,7 @@ public:
|
|||||||
{
|
{
|
||||||
me->SetStandState(UNIT_STAND_STATE_DEAD);
|
me->SetStandState(UNIT_STAND_STATE_DEAD);
|
||||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||||
me->SetUInt32Value(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
me->ReplaceAllDynamicFlags(UNIT_DYNFLAG_DEAD);
|
||||||
}
|
}
|
||||||
_phase = 0;
|
_phase = 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -118,7 +118,7 @@ public:
|
|||||||
{
|
{
|
||||||
me->loot.clear();
|
me->loot.clear();
|
||||||
me->loot.FillLoot(me->GetCreatureTemplate()->lootid, LootTemplates_Creature, me->GetLootRecipient(), false, false, 1, me);
|
me->loot.FillLoot(me->GetCreatureTemplate()->lootid, LootTemplates_Creature, me->GetLootRecipient(), false, false, 1, me);
|
||||||
me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
|
me->SetDynamicFlag(UNIT_DYNFLAG_LOOTABLE);
|
||||||
_JustDied();
|
_JustDied();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -366,7 +366,7 @@ public:
|
|||||||
_Reset();
|
_Reset();
|
||||||
me->setActive(false);
|
me->setActive(false);
|
||||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||||
me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
me->RemoveDynamicFlag(UNIT_DYNFLAG_DEAD);
|
||||||
me->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
me->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||||
me->CastSpell((Unit*)nullptr, SPELL_TARGET_OMEGA, false);
|
me->CastSpell((Unit*)nullptr, SPELL_TARGET_OMEGA, false);
|
||||||
instance->HandleGameObject(instance->GetGuidData(DATA_WARDENS_SHIELD), true);
|
instance->HandleGameObject(instance->GetGuidData(DATA_WARDENS_SHIELD), true);
|
||||||
@@ -558,7 +558,7 @@ public:
|
|||||||
|
|
||||||
case EVENT_WARDEN_INTRO29:
|
case EVENT_WARDEN_INTRO29:
|
||||||
events.Reset();
|
events.Reset();
|
||||||
me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
me->SetDynamicFlag(UNIT_DYNFLAG_DEAD);
|
||||||
me->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
me->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||||
if (Creature* creature = summons.GetCreatureWithEntry(NPC_HARBINGER_SKYRISS))
|
if (Creature* creature = summons.GetCreatureWithEntry(NPC_HARBINGER_SKYRISS))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1802,7 +1802,7 @@ class spell_gen_creature_permanent_feign_death : public AuraScript
|
|||||||
void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||||
{
|
{
|
||||||
Unit* target = GetTarget();
|
Unit* target = GetTarget();
|
||||||
target->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
target->SetDynamicFlag(UNIT_DYNFLAG_DEAD);
|
||||||
target->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
target->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||||
target->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
target->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||||
|
|
||||||
@@ -1813,7 +1813,7 @@ class spell_gen_creature_permanent_feign_death : public AuraScript
|
|||||||
void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||||
{
|
{
|
||||||
Unit* target = GetTarget();
|
Unit* target = GetTarget();
|
||||||
target->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
target->RemoveDynamicFlag(UNIT_DYNFLAG_DEAD);
|
||||||
target->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
target->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||||
target->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
target->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||||
|
|
||||||
|
|||||||
@@ -1467,7 +1467,7 @@ class spell_symbol_of_life_dummy : public SpellScript
|
|||||||
if (target->HasAura(SPELL_PERMANENT_FEIGN_DEATH))
|
if (target->HasAura(SPELL_PERMANENT_FEIGN_DEATH))
|
||||||
{
|
{
|
||||||
target->RemoveAurasDueToSpell(SPELL_PERMANENT_FEIGN_DEATH);
|
target->RemoveAurasDueToSpell(SPELL_PERMANENT_FEIGN_DEATH);
|
||||||
target->SetUInt32Value(UNIT_DYNAMIC_FLAGS, 0);
|
target->ReplaceAllDynamicFlags(0);
|
||||||
target->ReplaceAllUnitFlags2(UNIT_FLAG2_NONE);
|
target->ReplaceAllUnitFlags2(UNIT_FLAG2_NONE);
|
||||||
target->SetHealth(target->GetMaxHealth() / 2);
|
target->SetHealth(target->GetMaxHealth() / 2);
|
||||||
target->SetPower(POWER_MANA, uint32(target->GetMaxPower(POWER_MANA) * 0.75f));
|
target->SetPower(POWER_MANA, uint32(target->GetMaxPower(POWER_MANA) * 0.75f));
|
||||||
|
|||||||
@@ -1142,7 +1142,7 @@ public:
|
|||||||
me->RemoveUnitFlag(UNIT_FLAG_IN_COMBAT);
|
me->RemoveUnitFlag(UNIT_FLAG_IN_COMBAT);
|
||||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||||
me->setDeathState(JUST_DIED);
|
me->setDeathState(JUST_DIED);
|
||||||
me->SetFlag(UNIT_DYNAMIC_FLAGS, 32);
|
me->SetDynamicFlag(32);
|
||||||
|
|
||||||
if (DoctorGUID)
|
if (DoctorGUID)
|
||||||
if (Creature* doctor = ObjectAccessor::GetCreature((*me), DoctorGUID))
|
if (Creature* doctor = ObjectAccessor::GetCreature((*me), DoctorGUID))
|
||||||
|
|||||||
Reference in New Issue
Block a user