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); } }
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 ; }