Exemplo n.º 1
0
ArenaTeam::ArenaTeam(Field * f)
{
	uint32 z = 0, i, guid;
	const char * data;
	int ret;

	m_id = f[z++].GetUInt32();
	m_type = f[z++].GetUInt32();
	m_leader = f[z++].GetUInt32();
	m_name = f[z++].GetString();
	m_emblemStyle = f[z++].GetUInt32();
	m_emblemColour = f[z++].GetUInt32();
	m_borderStyle = f[z++].GetUInt32();
	m_borderColour = f[z++].GetUInt32();
	m_backgroundColour = f[z++].GetUInt32();
	m_stat_rating = f[z++].GetUInt32();
	if( m_stat_rating > ARENA_TEAM_MAX_RATING ) //bug introduced at some point
		m_stat_rating = ARENA_TEAM_START_RATING;
	else if( m_stat_rating < ARENA_TEAM_MIN_RATING )
		m_stat_rating = ARENA_TEAM_MIN_RATING;
	AllocateSlots(m_type);

	m_stat_gamesplayedweek = 0;
	m_stat_gamesplayedseason = 0;
	m_stat_gameswonseason = 0;
	m_stat_gameswonweek = 0;
	sscanf(f[z++].GetString(), "%u %u %u %u", &m_stat_gamesplayedweek, &m_stat_gameswonweek, &m_stat_gamesplayedseason, &m_stat_gameswonseason);

	m_stat_ranking = f[z++].GetUInt32();
	for(i = 0; i < m_slots; ++i)
	{
		data = f[z++].GetString();
		ret = sscanf(data, "%u %u %u %u %u %u", &guid, &m_members[i].Played_ThisWeek, &m_members[i].Won_ThisWeek,
			&m_members[i].Played_ThisSeason, &m_members[i].Won_ThisSeason, &m_members[i].PersonalRating);
		if(ret >= 5)
		{
			m_members[i].Info = objmgr.GetPlayerInfo(guid);
			if( m_members[i].Info )
			{
				if( m_members[i].Info->lastOnline + 2 * MONTHLY > UNIXTIME )
					++m_memberCount;
				else
					m_members[i].Info = NULL;
			}
			if (ret == 5)
			{
				// In case PersonalRating is not in the string just set the rating to the team rating
				m_members[i].PersonalRating = m_stat_rating;
				if( m_members[i].PersonalRating > ARENA_TEAM_MAX_RATING ) //bug introduced at some point
					m_members[i].PersonalRating = ARENA_PERSONAL_START_RATING; 
				else if( m_members[i].PersonalRating < ARENA_PERSONAL_MIN_RATING )
					m_members[i].PersonalRating = ARENA_PERSONAL_MIN_RATING; 
			}
		}
		else
			m_members[i].Info = NULL;
	}
}
Exemplo n.º 2
0
ArenaTeam::ArenaTeam(Field * f)
{
	uint32 z = 0, i, guid;
	const char * data;
	int ret;

	m_id = f[z++].GetUInt32();
	m_type = f[z++].GetUInt32();
	m_leader = f[z++].GetUInt32();
	m_name = f[z++].GetString();
	m_emblemStyle = f[z++].GetUInt32();
	m_emblemColour = f[z++].GetUInt32();
	m_borderStyle = f[z++].GetUInt32();
	m_borderColour = f[z++].GetUInt32();
	m_backgroundColour = f[z++].GetUInt32();
	m_stat_rating = f[z++].GetUInt32();
	AllocateSlots(m_type);

	m_stat_gamesplayedweek = 0;
	m_stat_gamesplayedseason = 0;
	m_stat_gameswonseason = 0;
	m_stat_gameswonweek = 0;
	sscanf(f[z++].GetString(), "%u %u %u %u", &m_stat_gamesplayedweek, &m_stat_gameswonweek, &m_stat_gamesplayedseason, &m_stat_gameswonseason);

	m_stat_ranking = f[z++].GetUInt32();
	for(i = 0; i < m_slots; ++i)
	{
		data = f[z++].GetString();
		ret = sscanf(data, "%u %u %u %u %u %u", &guid, &m_members[i].Played_ThisWeek, &m_members[i].Won_ThisWeek,
			&m_members[i].Played_ThisSeason, &m_members[i].Won_ThisSeason, &m_members[i].PersonalRating);
		if(ret >= 5)
		{
			m_members[i].Info = objmgr.GetPlayerInfo(guid);
			if(m_members[i].Info)
			{
				m_members[i].Info->arenaTeam[m_type] = this;
				++m_memberCount;
			}

			if (ret == 5)
			{
				// In case PersonalRating is not in the string just set the rating to the team rating
				m_members[i].PersonalRating = m_stat_rating;
			}
		}
		else
			m_members[i].Info = NULL;
	}	
}
Exemplo n.º 3
0
ArenaTeam::ArenaTeam(uint32 Type, uint32 Id)
{
	m_id = Id;
	m_type = Type;
	AllocateSlots(Type);
	m_leader = 0;
	m_emblemStyle = 0;
	m_emblemColour = 0;
	m_borderColour = 0;
	m_borderStyle = 0;
	m_backgroundColour = 0;
	m_stat_rating = 1500;
	m_stat_gamesplayedweek = 0;
	m_stat_gamesplayedseason = 0;
	m_stat_gameswonseason = 0;
	m_stat_gameswonweek = 0;
	m_stat_ranking = 0;
}
Exemplo n.º 4
0
ArenaTeam::ArenaTeam(Field * f)
{
	uint32 z = 0, i, guid;
	const char * data;
	m_id = f[z++].GetUInt32();
	m_type = f[z++].GetUInt32();
	m_leader = f[z++].GetUInt32();
	m_name = f[z++].GetString();
	m_emblemStyle = f[z++].GetUInt32();
	m_emblemColour = f[z++].GetUInt32();
	m_borderStyle = f[z++].GetUInt32();
	m_borderColour = f[z++].GetUInt32();
	m_backgroundColour = f[z++].GetUInt32();
	m_stat_rating = f[z++].GetUInt32();
	AllocateSlots(m_type);

	m_stat_gamesplayedweek = 0;
	m_stat_gamesplayedseason = 0;
	m_stat_gameswonseason = 0;
	m_stat_gameswonweek = 0;
	sscanf(f[z++].GetString(), "%u %u %u %u", &m_stat_gamesplayedweek, &m_stat_gameswonweek, &m_stat_gamesplayedseason, &m_stat_gameswonseason);

	m_stat_ranking = f[z++].GetUInt32();
	for(i = 0; i < m_slots; ++i)
	{
		data = f[z++].GetString();
		if(sscanf(data, "%u %u %u %u %u", &guid, &m_members[i].Played_ThisWeek, &m_members[i].Won_ThisWeek,
			&m_members[i].Played_ThisSeason, &m_members[i].Won_ThisSeason) == 5)
		{
			m_members[i].Info = objmgr.GetPlayerInfo(guid);
			if(m_members[i].Info)
			{
				m_members[i].Info->arenaTeam[m_type] = this;
				++m_memberCount;
			}
		}
		else
			m_members[i].Info = NULL;
	}	
	m_queueSearchRange = 100;
}