mirror of
https://github.com/mangosfour/server.git
synced 2025-12-12 10:37:03 +00:00
[11349] Instead group online players use arena team full list for claculate avg. personal rating.
This commit is contained in:
parent
531103b9e5
commit
9c34efec41
4 changed files with 12 additions and 12 deletions
|
|
@ -540,6 +540,15 @@ bool ArenaTeam::HaveMember(ObjectGuid guid) const
|
|||
return false;
|
||||
}
|
||||
|
||||
uint32 ArenaTeam::GetAvgPersonalRating() const
|
||||
{
|
||||
uint32 rating = 0;
|
||||
for(MemberList::const_iterator itr = m_members.begin(); itr != m_members.end(); ++itr)
|
||||
rating += itr->personal_rating;
|
||||
|
||||
return rating / m_Type;
|
||||
}
|
||||
|
||||
uint32 ArenaTeam::GetPoints(uint32 MemberRating)
|
||||
{
|
||||
// returns how many points would be awarded with this team type with this rating
|
||||
|
|
|
|||
|
|
@ -197,6 +197,7 @@ class ArenaTeam
|
|||
void Stats(WorldSession *session);
|
||||
void InspectStats(WorldSession *session, ObjectGuid guid);
|
||||
|
||||
uint32 GetAvgPersonalRating() const;
|
||||
uint32 GetPoints(uint32 MemberRating);
|
||||
float GetChanceAgainst(uint32 own_rating, uint32 enemy_rating);
|
||||
int32 WonAgainst(uint32 againstRating);
|
||||
|
|
|
|||
|
|
@ -699,17 +699,7 @@ void WorldSession::HandleBattlemasterJoinArena( WorldPacket & recv_data )
|
|||
arenaRating = at->GetRating();
|
||||
// the arena team id must match for everyone in the group
|
||||
// get the personal ratings for queue
|
||||
uint32 avg_pers_rating = 0;
|
||||
for(GroupReference *itr = grp->GetFirstMember(); itr != NULL; itr = itr->next())
|
||||
{
|
||||
Player *member = itr->getSource();
|
||||
|
||||
// calc avg personal rating
|
||||
avg_pers_rating += member->GetArenaPersonalRating(arenaslot);
|
||||
}
|
||||
|
||||
if (arenatype)
|
||||
avg_pers_rating /= arenatype;
|
||||
uint32 avg_pers_rating = at->GetAvgPersonalRating();
|
||||
|
||||
// if avg personal rating is more than 150 points below the teams rating, the team will be queued against an opponent matching or similar to the average personal rating
|
||||
if (avg_pers_rating + 150 < arenaRating)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#ifndef __REVISION_NR_H__
|
||||
#define __REVISION_NR_H__
|
||||
#define REVISION_NR "11348"
|
||||
#define REVISION_NR "11349"
|
||||
#endif // __REVISION_NR_H__
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue