diff options
Diffstat (limited to 'src')
| -rwxr-xr-x | src/server/game/Entities/Player/Player.cpp | 5 | ||||
| -rwxr-xr-x | src/server/game/Spells/Auras/SpellAuraEffects.cpp | 9 |
2 files changed, 12 insertions, 2 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 38669109d6e..ccfb5f0635f 100755 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -20854,8 +20854,9 @@ bool Player::CanReportAfkDueToLimit() ///This player has been blamed to be inactive in a battleground void Player::ReportedAfkBy(Player* reporter) { - Battleground *bg = GetBattleground(); - if (!bg || bg != reporter->GetBattleground() || GetTeam() != reporter->GetTeam()) + Battleground* bg = GetBattleground(); + // Battleground also must be in progress! + if (!bg || bg != reporter->GetBattleground() || GetTeam() != reporter->GetTeam() || bg->GetStatus() != STATUS_IN_PROGRESS) return; // check if player has 'Idle' or 'Inactive' debuff diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index fa37ad9daad..3f3f50c7425 100755 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -5927,6 +5927,15 @@ void AuraEffect::HandleAuraDummy(AuraApplication const * aurApp, uint8 mode, boo } break; } + case 43681: // Inactive + { + if (!target || target->GetTypeId() != TYPEID_PLAYER || aurApp->GetRemoveMode() != AURA_REMOVE_BY_EXPIRE) + return; + + if (target->GetMap()->IsBattleground()) + target->ToPlayer()->LeaveBattleground(); + break; + } case 42783: // Wrath of the Astromancer target->CastSpell(target, GetAmount(), true, NULL, this); break; |
