From b071505216be07da3134ab40b4ad8b4ff75900ff Mon Sep 17 00:00:00 2001 From: Kapoeira Date: Thu, 12 Jan 2012 01:57:46 -0500 Subject: Scripts/Arenas: Fix achievement [The Last Standing]. Closes #3637. --- src/server/game/Battlegrounds/Battleground.cpp | 4 ++++ src/server/game/Battlegrounds/Battleground.h | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp index 6a758695116..36c9fe17ea5 100755 --- a/src/server/game/Battlegrounds/Battleground.cpp +++ b/src/server/game/Battlegrounds/Battleground.cpp @@ -792,6 +792,10 @@ void Battleground::EndBattleground(uint32 winner) if (!player) continue; + // Last standing - Rated 5v5 arena & be solely alive player + if (team == winner && isArena() && isRated() && GetArenaType() == ARENA_TYPE_5v5 && GetAlivePlayersCountByTeam(winner) == 1 && player->isAlive()) + player->CastSpell(player, SPELL_THE_LAST_STANDING, true); + // should remove spirit of redemption if (player->HasAuraType(SPELL_AURA_SPIRIT_OF_REDEMPTION)) player->RemoveAurasByType(SPELL_AURA_MOD_SHAPESHIFT); diff --git a/src/server/game/Battlegrounds/Battleground.h b/src/server/game/Battlegrounds/Battleground.h index fcfc0c48cb4..274f7d04757 100755 --- a/src/server/game/Battlegrounds/Battleground.h +++ b/src/server/game/Battlegrounds/Battleground.h @@ -98,7 +98,8 @@ enum BattlegroundSpells SPELL_RECENTLY_DROPPED_FLAG = 42792, // Recently Dropped Flag SPELL_AURA_PLAYER_INACTIVE = 43681, // Inactive SPELL_HONORABLE_DEFENDER_25Y = 68652, // +50% honor when standing at a capture point that you control, 25yards radius (added in 3.2) - SPELL_HONORABLE_DEFENDER_60Y = 66157 // +50% honor when standing at a capture point that you control, 60yards radius (added in 3.2), probably for 40+ player battlegrounds + SPELL_HONORABLE_DEFENDER_60Y = 66157, // +50% honor when standing at a capture point that you control, 60yards radius (added in 3.2), probably for 40+ player battlegrounds + SPELL_THE_LAST_STANDING = 26549, // Arena achievement related }; enum BattlegroundTimeIntervals -- cgit v1.2.3 From 894edcaafe2ff99deaa687adc05d725c4eb62ebd Mon Sep 17 00:00:00 2001 From: Kapoeira Date: Thu, 12 Jan 2012 02:05:11 -0500 Subject: Scripts/Arenas: Fix some typos in the last commit. I should stop hitting the Commit button as soon as possible. --- src/server/game/Battlegrounds/Battleground.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp index 36c9fe17ea5..59cfed42ab2 100755 --- a/src/server/game/Battlegrounds/Battleground.cpp +++ b/src/server/game/Battlegrounds/Battleground.cpp @@ -771,6 +771,7 @@ void Battleground::EndBattleground(uint32 winner) } } + uint8 aliveWinners = GetAlivePlayersCountByTeam(winner); for (BattlegroundPlayerMap::iterator itr = m_Players.begin(); itr != m_Players.end(); ++itr) { uint32 team = itr->second.Team; @@ -793,7 +794,7 @@ void Battleground::EndBattleground(uint32 winner) continue; // Last standing - Rated 5v5 arena & be solely alive player - if (team == winner && isArena() && isRated() && GetArenaType() == ARENA_TYPE_5v5 && GetAlivePlayersCountByTeam(winner) == 1 && player->isAlive()) + if (team == winner && isArena() && isRated() && GetArenaType() == ARENA_TYPE_5v5 && aliveWinners == 1 && player->isAlive()) player->CastSpell(player, SPELL_THE_LAST_STANDING, true); // should remove spirit of redemption -- cgit v1.2.3 From 27f2baca1d3d5023ee298c29819ddfcb148874e7 Mon Sep 17 00:00:00 2001 From: Kapoeira Date: Thu, 12 Jan 2012 02:21:44 -0500 Subject: Scripts/Arenas: Also prevent bugs with Spirit of Redemption. Meh. Three commits for this. My bad. Farewell TrinityCore. :( --- src/server/game/Battlegrounds/Battleground.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp index 59cfed42ab2..5012a0f8665 100755 --- a/src/server/game/Battlegrounds/Battleground.cpp +++ b/src/server/game/Battlegrounds/Battleground.cpp @@ -793,14 +793,14 @@ void Battleground::EndBattleground(uint32 winner) if (!player) continue; - // Last standing - Rated 5v5 arena & be solely alive player - if (team == winner && isArena() && isRated() && GetArenaType() == ARENA_TYPE_5v5 && aliveWinners == 1 && player->isAlive()) - player->CastSpell(player, SPELL_THE_LAST_STANDING, true); - // should remove spirit of redemption if (player->HasAuraType(SPELL_AURA_SPIRIT_OF_REDEMPTION)) player->RemoveAurasByType(SPELL_AURA_MOD_SHAPESHIFT); + // Last standing - Rated 5v5 arena & be solely alive player + if (team == winner && isArena() && isRated() && GetArenaType() == ARENA_TYPE_5v5 && aliveWinners == 1 && player->isAlive()) + player->CastSpell(player, SPELL_THE_LAST_STANDING, true); + if (!player->isAlive()) { player->ResurrectPlayer(1.0f); -- cgit v1.2.3