Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # HG changeset patch
- # User Zuus
- # Date 1292358839 -7200
- # Branch trunk
- # Node ID 567b9506d51dd962e1e1570017becacc43763168
- # Parent 2d8ad8c446303777643c150505e30d7f66a9fe6d
- Apply armory arena
- diff -r 2d8ad8c44630 -r 567b9506d51d src/server/game/Battlegrounds/Battleground.cpp
- --- a/src/server/game/Battlegrounds/Battleground.cpp Mon Dec 13 23:10:58 2010 +0200
- +++ b/src/server/game/Battlegrounds/Battleground.cpp Tue Dec 14 22:33:59 2010 +0200
- @@ -763,6 +763,49 @@
- winner_matchmaker_rating, loser_matchmaker_rating, winner_change, loser_change);
- SetArenaTeamRatingChangeForTeam(winner, winner_change);
- SetArenaTeamRatingChangeForTeam(GetOtherTeam(winner), loser_change);
- +
- + /** World of Warcraft Armory **/
- + uint32 maxChartID;
- + QueryResult result = CharacterDatabase.Query("SELECT MAX(gameid) FROM armory_game_chart");
- + if(!result)
- + maxChartID = 0;
- + else
- + {
- + maxChartID = (*result)[0].GetUInt32();
- + result.release();
- + }
- + uint32 gameID = maxChartID+1;
- + for(BattlegroundScoreMap::const_iterator itr = m_PlayerScores.begin(); itr != m_PlayerScores.end(); ++itr)
- + {
- + Player *plr = sObjectMgr.GetPlayer(itr->first);
- + if (!plr)
- + continue;
- + uint32 plTeamID = plr->GetArenaTeamId(winner_arena_team->GetSlot());
- + int changeType;
- + uint32 resultRating;
- + uint32 resultTeamID;
- + int32 ratingChange;
- + if (plTeamID == winner_arena_team->GetId())
- + {
- + changeType = 1; //win
- + resultRating = winner_team_rating;
- + resultTeamID = plTeamID;
- + ratingChange = winner_change;
- + }
- + else
- + {
- + changeType = 2; //lose
- + resultRating = loser_team_rating;
- + resultTeamID = loser_arena_team->GetId();
- + ratingChange = loser_change;
- + }
- + std::ostringstream sql_query;
- + // gameid, teamid, guid, changeType, ratingChange, teamRating, damageDone, deaths, healingDone, damageTaken, healingTaken, killingBlows, mapId, start, end
- + sql_query << "INSERT INTO armory_game_chart VALUES ('" << gameID << "', '" << resultTeamID << "', '" << plr->GetGUID() << "', '" << changeType << "', '" << ratingChange << "', '" << resultRating << "', '" << itr->second->DamageDone << "', '" << itr->second->Deaths << "', '" << itr->second->HealingDone << "', '" << itr->second->DamageTaken << "', '" << itr->second->HealingTaken << "', '" << itr->second->KillingBlows << "', '" << m_MapId << "', '" << m_StartTime << "', '" << m_EndTime << "')";
- + CharacterDatabase.Execute(sql_query.str().c_str());
- + }
- + /** World of Warcraft Armory **/
- +
- sLog.outArena("Arena match Type: %u for Team1Id: %u - Team2Id: %u ended. WinnerTeamId: %u. Winner rating: +%d, Loser rating: %d", m_ArenaType, m_ArenaTeamIds[BG_TEAM_ALLIANCE], m_ArenaTeamIds[BG_TEAM_HORDE], winner_arena_team->GetId(), winner_change, loser_change);
- if (sWorld.getBoolConfig(CONFIG_ARENA_LOG_EXTENDED_INFO))
- for (Battleground::BattlegroundScoreMap::const_iterator itr = GetPlayerScoresBegin(); itr != GetPlayerScoresEnd(); itr++)
- @@ -1404,6 +1447,14 @@
- case SCORE_HEALING_DONE: // Healing Done
- itr->second->HealingDone += value;
- break;
- + /** World of Warcraft Armory **/
- + case SCORE_DAMAGE_TAKEN:
- + itr->second->DamageTaken += value; // Damage Taken
- + break;
- + case SCORE_HEALING_TAKEN:
- + itr->second->HealingTaken += value; // Healing Taken
- + break;
- + /** World of Warcraft Armory **/
- default:
- sLog.outError("Battleground: Unknown player score type %u", type);
- break;
- diff -r 2d8ad8c44630 -r 567b9506d51d src/server/game/Battlegrounds/Battleground.h
- --- a/src/server/game/Battlegrounds/Battleground.h Mon Dec 13 23:10:58 2010 +0200
- +++ b/src/server/game/Battlegrounds/Battleground.h Tue Dec 14 22:33:59 2010 +0200
- #ifndef __BATTLEGROUND_H
- @@ -134,12 +132,12 @@
- enum BattlegroundRandomRewards
- {
- - BG_REWARD_WINNER_HONOR_FIRST = 20,
- + BG_REWARD_WINNER_HONOR_FIRST = 30,
- BG_REWARD_WINNER_ARENA_FIRST = 25,
- - BG_REWARD_WINNER_HONOR_LAST = 12,
- + BG_REWARD_WINNER_HONOR_LAST = 15,
- BG_REWARD_WINNER_ARENA_LAST = 0,
- - BG_REWARD_LOSER_HONOR_FIRST = 3,
- - BG_REWARD_LOSER_HONOR_LAST = 3
- + BG_REWARD_LOSER_HONOR_FIRST = 5,
- + BG_REWARD_LOSER_HONOR_LAST = 5
- };
- const uint32 Buff_Entries[3] = { BG_OBJECTID_SPEEDBUFF_ENTRY, BG_OBJECTID_REGENBUFF_ENTRY, BG_OBJECTID_BERSERKERBUFF_ENTRY };
- @@ -210,7 +208,11 @@
- SCORE_SECONDARY_OBJECTIVES = 17,
- //SOTA
- SCORE_DESTROYED_DEMOLISHER = 18,
- - SCORE_DESTROYED_WALL = 19
- + SCORE_DESTROYED_WALL = 19,
- + /** World of Warcraft Armory **/
- + SCORE_DAMAGE_TAKEN = 20,
- + SCORE_HEALING_TAKEN = 21
- + /** World of Warcraft Armory **/
- };
- enum ArenaType
- @@ -302,6 +304,10 @@
- uint32 BonusHonor;
- uint32 DamageDone;
- uint32 HealingDone;
- + /** World of Warcraft Armory **/
- + uint32 DamageTaken;
- + uint32 HealingTaken;
- + /** World of Warcraft Armory **/
- };
- enum BGHonorMode
- @@ -454,7 +460,7 @@
- void SetBgMap(BattlegroundMap* map) { m_Map = map; }
- BattlegroundMap* GetBgMap()
- {
- -// ASSERT(m_Map);
- + ASSERT(m_Map);
- return m_Map;
- }
- @@ -519,8 +525,8 @@
- int32 GetArenaTeamRatingChangeForTeam(uint32 Team) const { return m_ArenaTeamRatingChanges[GetTeamIndexByTeamId(Team)]; }
- void SetArenaMatchmakerRating(uint32 Team, uint32 MMR){ m_ArenaTeamMMR[GetTeamIndexByTeamId(Team)] = MMR; }
- uint32 GetArenaMatchmakerRating(uint32 Team) { return m_ArenaTeamMMR[GetTeamIndexByTeamId(Team)]; }
- + void CheckArenaAfterTimerConditions();
- void CheckArenaWinConditions();
- - void CheckArenaAfterTimerConditions();
- void UpdateArenaWorldState();
- /* Triggers handle */
- @@ -635,7 +641,7 @@
- bool m_IsRated; // is this battle rated?
- bool m_PrematureCountDown;
- uint32 m_PrematureCountDownTimer;
- - uint32 m_balance;
- + uint32 m_balance;
- char const *m_Name;
- /* Player lists */
- diff -r 2d8ad8c44630 -r 567b9506d51d src/server/game/Entities/Unit/Unit.cpp
- --- a/src/server/game/Entities/Unit/Unit.cpp Mon Dec 13 23:10:58 2010 +0200
- +++ b/src/server/game/Entities/Unit/Unit.cpp Tue Dec 14 22:33:59 2010 +0200
- @@ -645,6 +645,10 @@
- if (pVictim->GetTypeId() == TYPEID_PLAYER)
- if (Battleground *bg = killer->GetBattleground())
- bg->UpdatePlayerScore(killer, SCORE_DAMAGE_DONE, damage);
- + /** World of Warcraft Armory **/
- + if (Battleground *bg = ((Player*)pVictim)->GetBattleground())
- + bg->UpdatePlayerScore(((Player*)pVictim), SCORE_DAMAGE_TAKEN, damage);
- + /** World of Warcraft Armory **/
- killer->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_DAMAGE_DONE, damage, 0, pVictim);
- killer->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HIT_DEALT, damage);
- @@ -10405,6 +10409,10 @@
- {
- pVictim->ToPlayer()->GetAchievementMgr().UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_TOTAL_HEALING_RECEIVED, gain);
- pVictim->ToPlayer()->GetAchievementMgr().UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HEALING_RECEIVED, addhealth);
- + /** World of Warcraft Armory **/
- + if (Battleground *bg = pVictim->ToPlayer()->GetBattleground())
- + bg->UpdatePlayerScore((Player*)pVictim, SCORE_HEALING_TAKEN, gain);
- + /** World of Warcraft Armory **/
- }
- return gain;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement