Ejemplo n.º 1
0
void CParty::updateCalcMember()
{
	CPC* member = NULL;
	for(int i = 0; i < MAX_PARTY_MEMBER; i++)
	{
		if(m_listMember[i] == NULL)
			continue;

		member = m_listMember[i]->GetMemberPCPtr();

		if(member == NULL)
			continue;

		
		member->CalcStatus(true);
	}
}
Ejemplo n.º 2
0
void CParty::DeleteMember(int nCharIndex)
{
	this->deletePartyRecallMember(nCharIndex);

	int i;
	for (i = 0; i < MAX_PARTY_MEMBER; i++)
	{
		if (m_listMember[i])
		{
			if (m_listMember[i]->GetCharIndex() == nCharIndex)
			{
				delete m_listMember[i];
				m_listMember[i] = NULL;
				m_nCount--;
				if (i == 0)
				{
					gserver->m_listParty.erase(nCharIndex);
				}

				CPC* pc = PCManager::instance()->getPlayerByCharIndex(nCharIndex);
				if(pc != NULL)
					pc->CalcStatus(true);
			}
		}
		if (i < MAX_PARTY_MEMBER - 1 && m_listMember[i] == NULL)
		{
			m_listMember[i] = m_listMember[i + 1];
			m_listMember[i + 1] = NULL;
			if (i == 0)
			{
				if(m_listMember[i] != NULL)
					gserver->m_listParty.insert(map_listparty_t::value_type(m_listMember[i]->GetCharIndex(), this));
			}
		}
	}
	return ;
}