本文整理汇总了C++中GetRatingMod函数的典型用法代码示例。如果您正苦于以下问题:C++ GetRatingMod函数的具体用法?C++ GetRatingMod怎么用?C++ GetRatingMod使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了GetRatingMod函数的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetRatingMod
void ArenaTeam::MemberLost(Player* player, uint32 ownMMRating, uint32 againstMatchmakerRating, int32 matchmakerRatingChange)
{
// Called for each participant of a match after losing
for (MemberList::iterator itr = Members.begin(); itr != Members.end(); ++itr)
{
if (itr->Guid == player->GetGUID())
{
// Update personal rating
int32 mod = GetRatingMod(itr->PersonalRating, ownMMRating, againstMatchmakerRating, false);
itr->ModifyPersonalRating(player, mod, GetType());
// Update matchmaker rating
itr->ModifyMatchmakerRating(matchmakerRatingChange, GetSlot());
// Update personal played stats
itr->WeekGames +=1;
itr->SeasonGames +=1;
// update the unit fields
player->SetArenaTeamInfoField(GetSlot(), ARENA_TEAM_GAMES_WEEK, itr->WeekGames);
player->SetArenaTeamInfoField(GetSlot(), ARENA_TEAM_GAMES_SEASON, itr->SeasonGames);
return;
}
}
}
示例2: GetRatingMod
void ArenaTeam::MemberWon(Player* player, uint32 againstMatchmakerRating, int32 MatchmakerRatingChange)
{
// called for each participant after winning a match
for (MemberList::iterator itr = Members.begin(); itr != Members.end(); ++itr)
{
if (itr->Guid == player->GetGUID())
{
// update personal rating
int32 mod = GetRatingMod(itr->PersonalRating, againstMatchmakerRating, true);
itr->ModifyPersonalRating(player, mod, GetType());
// update matchmaker rating
itr->ModifyMatchmakerRating(MatchmakerRatingChange, GetSlot());
// update personal stats
itr->WeekGames +=1;
itr->SeasonGames +=1;
itr->SeasonWins += 1;
itr->WeekWins += 1;
// update unit fields
player->SetArenaTeamInfoField(GetSlot(), ARENA_TEAM_GAMES_WEEK, itr->WeekGames);
player->SetArenaTeamInfoField(GetSlot(), ARENA_TEAM_GAMES_SEASON, itr->SeasonGames);
return;
}
}
}
示例3: GetPersonalRatingMod
void ArenaTeam::MemberWon(Player * plr, uint32 againstMatchmakerRating, int32 teamratingchange)
{
// called for each participant after winning a match
for (MemberList::iterator itr = m_members.begin(); itr != m_members.end(); ++itr)
{
if (itr->guid == plr->GetGUID())
{
// update personal rating
int32 mod = GetPersonalRatingMod(teamratingchange, (m_stats.rating - teamratingchange), itr->personal_rating);
itr->ModifyPersonalRating(plr, mod, GetSlot());
// update matchmaker rating
mod = GetRatingMod(itr->matchmaker_rating, againstMatchmakerRating, true, true);
itr->ModifyMatchmakerRating(mod, GetSlot());
// update personal stats
itr->games_week +=1;
itr->games_season +=1;
itr->wins_season += 1;
itr->wins_week += 1;
// update unit fields
plr->SetArenaTeamInfoField(GetSlot(), ARENA_TEAM_GAMES_WEEK, itr->games_week);
plr->SetArenaTeamInfoField(GetSlot(), ARENA_TEAM_GAMES_SEASON, itr->games_season);
return;
}
}
}
示例4: GetRatingMod
void ArenaTeam::MemberWon(Player* player, uint32 againstMatchmakerRating, int32 MatchmakerRatingChange)
{
// called for each participant after winning a match
for (MemberList::iterator itr = Members.begin(); itr != Members.end(); ++itr)
{
if (itr->Guid == player->GetGUID())
{
// update personal rating
int32 mod = GetRatingMod(itr->PersonalRating, againstMatchmakerRating, true);
itr->ModifyPersonalRating(player, mod, GetType());
if(player->GetSession()->IsPremium())
player->ModifyArenaPoints(20);
else
player->ModifyArenaPoints(10);
// update matchmaker rating
itr->ModifyMatchmakerRating(MatchmakerRatingChange, GetSlot());
// update personal stats
itr->WeekGames +=1;
itr->SeasonGames +=1;
itr->SeasonWins += 1;
itr->WeekWins += 1;
// update unit fields
player->SetArenaTeamInfoField(GetSlot(), ARENA_TEAM_GAMES_WEEK, itr->WeekGames);
player->SetArenaTeamInfoField(GetSlot(), ARENA_TEAM_GAMES_SEASON, itr->SeasonGames);
player->AddItem(19182, 1);
player->AddItem(29437, 5);
player->AddItem(29438, 10);
player->AddItem(29435, 5);
ChatHandler(player).PSendSysMessage("You won an Arena Match, therefor you have been awarded with a huge amount of prices!");
return;
}
}
}
示例5: GetRatingMod
int32 ArenaTeam::LostAgainst(uint32 againstRating)
{
// called when the team has lost
int32 mod = GetRatingMod(m_stats.rating, againstRating, false);
// modify the team stats accordingly
FinishGame(mod);
// return the rating change, used to display it on the results screen
return mod;
}
示例6: GetMatchmakerRatingMod
int32 ArenaTeam::LostAgainst(uint32 Own_MMRating, uint32 Opponent_MMRating, int32& rating_change)
{
// Called when the team has lost
// Change in Matchmaker Rating
int32 mod = GetMatchmakerRatingMod(Own_MMRating, Opponent_MMRating, false);
// Change in Team Rating
rating_change = GetRatingMod(Stats.Rating, Opponent_MMRating, false);
// Modify the team stats accordingly
FinishGame(rating_change);
// return the rating change, used to display it on the results screen
return mod;
}
示例7: GetRatingMod
int32 ArenaTeam::CalculateRatingChange(uint32 winningRating, uint32 lostRating, bool won)
{
// Own team rating versus opponents matchmaker rating
int32 mod = GetRatingMod(winningRating, lostRating, won);
// Modify the team stats accordingly
FinishGame(mod);
// Update number of wins per season and week
if (won)
{
Stats.WeekWins += 1;
Stats.SeasonWins += 1;
}
// Return the rating change, used to display it on the results screen
return mod;
}
示例8: GetRatingMod
void ArenaTeam::OfflineMemberLost(uint64 guid, uint32 againstMatchmakerRating, int32 MatchmakerRatingChange)
{
// Called for offline player after ending rated arena match!
for (MemberList::iterator itr = Members.begin(); itr != Members.end(); ++itr)
{
if (itr->Guid == guid)
{
// update personal rating
int32 mod = GetRatingMod(itr->PersonalRating, againstMatchmakerRating, false);
itr->ModifyPersonalRating(NULL, mod, GetType());
// update matchmaker rating
itr->ModifyMatchmakerRating(MatchmakerRatingChange, GetSlot());
// update personal played stats
itr->WeekGames += 1;
itr->SeasonGames += 1;
return;
}
}
}
示例9: GetPersonalRatingMod
void ArenaTeam::OfflineMemberLost(uint64 guid, uint32 againstMatchmakerRating, int32 teamratingchange)
{
// called for offline player after ending rated arena match!
for (MemberList::iterator itr = m_members.begin(); itr != m_members.end(); ++itr)
{
if (itr->guid == guid)
{
// update personal rating
int32 mod = GetPersonalRatingMod(teamratingchange, itr->personal_rating, (m_stats.rating - teamratingchange));
itr->ModifyPersonalRating(NULL, mod, GetSlot());
// update matchmaker rating
mod = GetRatingMod(itr->matchmaker_rating, againstMatchmakerRating, false, true);
itr->ModifyMatchmakerRating(mod, GetSlot());
// update personal played stats
itr->games_week +=1;
itr->games_season +=1;
return;
}
}
}
示例10: GetRatingMod
void ArenaTeam::MemberWon(Player* player, uint32 againstMatchmakerRating, int32 MatchmakerRatingChange)
{
// called for each participant after winning a match
for (MemberList::iterator itr = Members.begin(); itr != Members.end(); ++itr)
{
if (itr->Guid == player->GetGUID())
{
// update personal rating
int32 mod = GetRatingMod(itr->PersonalRating, againstMatchmakerRating, true);
itr->ModifyPersonalRating(player, mod, GetSlot());
// update matchmaker rating
itr->ModifyMatchmakerRating(MatchmakerRatingChange, GetSlot());
// update personal stats
itr->WeekGames +=1;
itr->SeasonGames +=1;
itr->SeasonWins += 1;
itr->WeekWins += 1;
// update unit fields
player->SetArenaTeamInfoField(GetSlot(), ARENA_TEAM_GAMES_WEEK, itr->WeekGames);
player->SetArenaTeamInfoField(GetSlot(), ARENA_TEAM_GAMES_SEASON, itr->SeasonGames);
return;
//////////////////////////////////////////////////////
// //
// CATACLYSM ARENA SYSTEM //
// Winners receive fixed amount of Conquest Points //
// //
// Losers, only Shame //
// //
//////////////////////////////////////////////////////
bool CapReached;
switch (player->GetCurrency(390)) // Checks if Soft Cap has been reached, if yes, do not earn anymore points.
{
case 1343:
case 1940:
case 2533:
case 2849:
case 2964:
case 3000:
CapReached = true;
default:
CapReached = false;
}
if (CapReached == false) // if not go ahead.
{
player->ModifyCurrency(390, 268.6f);
// Conquest Point Soft Cap System - based on Personal Rating
uint32 OldPoints = player->GetCurrency(390);
uint32 OldRating = player->GetArenaPersonalRating(GetSlot());
uint32 NewPoints = OldPoints;
uint32 NewRating = OldRating;
// First Check, points - Total Conquest Points cannot exceed the Soft Cap, So:
if (OldRating <=1500 && OldPoints >= 1343) // If this happens..
{
NewPoints = 1343; // ..set points = Soft Cap, and set CapReached=1,
// so player cannot earn anymore points until next week
// Second Check, rating - Rating has to remain the same
// for all the week, when a new week starts, rating can raise
// THIS IS TO AVOID RATING RAISING IN THE SAME WEEK.
// TODO: RATING RAISE WITHOUT EARNING POINTS.
if (Stats.WeekGames != 0 && OldRating > 1500)
NewRating = 1500;
}
// The same happens for all other brackets
if ((OldRating > 1500 && OldRating < 1800) && OldPoints > 1940)
{
NewPoints=1940;
if (Stats.WeekGames != 0 && OldRating > 1800)
NewRating = 1800;
}
if ((OldRating > 1800 && OldRating < 2100) && OldPoints > 2533)
{
NewPoints = 2533;
if (Stats.WeekGames != 0 && OldRating > 2100)
NewRating = 2100;
}
if ((OldRating > 2100 && OldRating < 2400) && OldPoints > 2849)
{
NewPoints = 2849;
if (Stats.WeekGames != 0 && OldRating > 2400)
NewRating = 2400;
}
if ((OldRating > 2400 && OldRating < 2700) && OldPoints > 2964)
{
NewPoints = 2964;
if (Stats.WeekGames != 0 && OldRating > 3000)
//.........这里部分代码省略.........