diff options
Diffstat (limited to 'src/server/game')
| -rw-r--r-- | src/server/game/Spells/Auras/SpellAuraEffects.cpp | 35 |
1 files changed, 16 insertions, 19 deletions
diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index cd227c7d8b7..08e66124e4a 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -2109,15 +2109,12 @@ void AuraEffect::HandleFeignDeath(AuraApplication const* aurApp, uint8 mode, boo Unit* target = aurApp->GetTarget(); - if (target->GetTypeId() != TYPEID_PLAYER) - return; - if (apply) { /* WorldPacket data(SMSG_FEIGN_DEATH_RESISTED, 9); - data<<target->GetGUID(); - data<<uint8(0); + data << target->GetGUID(); + data << uint8(0); target->SendMessageToSet(&data, true); */ @@ -2151,31 +2148,31 @@ void AuraEffect::HandleFeignDeath(AuraApplication const* aurApp, uint8 mode, boo // stop handling the effect if it was removed by linked event if (aurApp->GetRemoveMode()) return; - // blizz like 2.0.x - target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNK_29); - // blizz like 2.0.x - target->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH); - // blizz like 2.0.x - target->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD); + target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNK_29); // blizz like 2.0.x + target->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH); // blizz like 2.0.x + target->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD); // blizz like 2.0.x target->AddUnitState(UNIT_STATE_DIED); + + if (Creature* creature = target->ToCreature()) + creature->SetReactState(REACT_PASSIVE); } else { /* WorldPacket data(SMSG_FEIGN_DEATH_RESISTED, 9); - data<<target->GetGUID(); - data<<uint8(1); + data << target->GetGUID(); + data << uint8(1); target->SendMessageToSet(&data, true); */ - // blizz like 2.0.x - target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNK_29); - // blizz like 2.0.x - target->RemoveFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH); - // blizz like 2.0.x - target->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD); + target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNK_29); // blizz like 2.0.x + target->RemoveFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH); // blizz like 2.0.x + target->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD); // blizz like 2.0.x target->ClearUnitState(UNIT_STATE_DIED); + + if (Creature* creature = target->ToCreature()) + creature->InitializeReactState(); } } |
