aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLopin <Lopin@TwinStar.cz>2011-05-10 12:22:19 +0200
committerShocker <shocker@freakz.ro>2011-05-11 12:14:00 +0300
commit193f0b7cd3151bd4f0b4357e67a3e7df0f4d1b26 (patch)
tree5522f255cd38bbaa79710d9f006d0a014254c70b
parentdc3ff5e5f2eaaeba0b0daabff088a3950ddc8508 (diff)
Core/Battlegrounds: Fixes Report AFK players and then leaving if "Inactive" buff expires
-rwxr-xr-xsrc/server/game/Entities/Player/Player.cpp5
-rwxr-xr-xsrc/server/game/Spells/Auras/SpellAuraEffects.cpp9
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;