void NFCTeamModule::OnCreateTeamProcess(const NFSOCK nSockIndex, const int nMsgID, const char* msg, const uint32_t nLen) { CLIENT_MSG_PROCESS( nMsgID, msg, nLen, NFMsg::ReqAckCreateTeam); std::string strRoleName ; int nLevel = 0; int nJob = 0; int nDonation= 0; int nVIP= 0; NFGUID xTeam = CreateTeam(nPlayerID, NFINetModule::PBToNF(xMsg.team_id()), strRoleName, strRoleName, nLevel, nJob, nDonation, nVIP); if (!xTeam.IsNull()) { NFMsg::ReqAckCreateTeam xAck; *xAck.mutable_team_id() = NFINetModule::NFToPB(xTeam); NFMsg::TeamInfo xTeamInfo; if (!GetTeamInfo(nPlayerID, xTeam, xTeamInfo)) { xAck.mutable_xteaminfo()->CopyFrom(xTeamInfo); m_pNetModule->SendMsgPB(NFMsg::EGMI_ACK_CREATE_TEAM, xAck, nSockIndex, nPlayerID); return; } } NFMsg::ReqAckCreateTeam xAck; *xAck.mutable_team_id() = NFINetModule::NFToPB(xTeam); m_pNetModule->SendMsgPB(NFMsg::EGMI_ACK_CREATE_TEAM, xAck, nSockIndex, nPlayerID); }
bool C4TeamList::GenerateDefaultTeams(int32_t iUpToID) { // generate until last team ID matches given while (iLastTeamID < iUpToID) { char TeamName[C4MaxName+1]; sprintf(TeamName, LoadResStr("IDS_MSG_TEAM"), iLastTeamID+1); if (!CreateTeam(TeamName)) return false; } return true; }
VOID CTeamOrGroup::AddMember(TeamMemberInfo* member, TeamID_t TeamID, BYTE TeamIndex) { TeamMemberInfo* pTMInfo = new TeamMemberInfo; //memcpy((VOID*)pTMInfo, member, sizeof(TeamMemberInfo)); pTMInfo->m_GUID = member->m_GUID; pTMInfo->m_OjbID = member->m_OjbID; // pTMInfo->m_SceneID = member->m_SceneID; pTMInfo->m_uFamily = member->m_uFamily; // 2.职业 pTMInfo->m_uDataID = member->m_uDataID; // 3.性别 pTMInfo->m_nPortrait = member->m_nPortrait; // 5.头像 memcpy(pTMInfo->m_szNick, member->m_szNick, sizeof(pTMInfo->m_szNick)); std::string utfstr; StringConvert::mbcs_to_utf8(pTMInfo->m_szNick,utfstr); strncpy(pTMInfo->m_szUtf8Nick,utfstr.c_str(),MAX_CHARACTER_NAME*2-1); CObject_PlayerMySelf* pObj = CObjectManager::GetMe()->GetMySelf(); if( pTMInfo->m_GUID != pObj->GetServerGUID() ) { // 需要加载队友的头像窗口 // 请求该队友的数据 CGAskTeamMemberInfo Msg; Msg.SetSceneID( pTMInfo->m_SceneID ); Msg.setObjID( pTMInfo->m_OjbID ); Msg.SetGUID( pTMInfo->m_GUID ); CNetManager::GetMe()->SendPacket( &Msg ); } else { FillMyInfo( pTMInfo ); } switch(m_Type) { // 创建队伍 case 0: { CreateTeam(pTMInfo, TeamID); } break; // 队伍加人的情况 case TEAM_TYPE: { if( m_TeamMembers.size() >= MAX_TEAM_MEMBER ) // 最大的队伍人数 { Assert(FALSE); return; } m_TeamMembers.push_back(pTMInfo); } break; // 团队加人的情况 case GROUP_TYPE: { if( TeamIndex < 0 || TeamIndex >= MAX_TEAMS_IN_GROUP ) // 团队中最大队伍数量 { Assert(FALSE); return; } ++TeamIndex; // 默认传入的数字为 0 ~ MAX_TEAMS_IN_GROUP-1 TeamInfo* pTeamInfo = GetTeam(TeamIndex); if(pTeamInfo != NULL) { if(pTeamInfo->m_TeamMembers.size() >= MAX_TEAM_MEMBER) { Assert(FALSE); return; } } // 如果该小组不存在,则创建,并添加入团队 else { pTeamInfo = new TeamInfo; pTeamInfo->m_TeamID = TeamIndex; m_TeamInfo.push_back(pTeamInfo); //队伍满 if(pTeamInfo->m_TeamMembers.size() >= MAX_TEAM_MEMBER) { CObjectManager::GetMe()->GetMySelf()->GetCharacterData()->Set_TeamFullFlag(TRUE); } } pTeamInfo->m_TeamMembers.push_back(pTMInfo); if( pTMInfo->m_GUID == pObj->GetServerGUID() ) { m_MyTeamID = TeamIndex; } } break; default: Assert(FALSE); return; } // 创建一个界面的模型. pTMInfo->m_UIModel.CreateNewUIModel(); // 设置ui模型 // 设置职业 pTMInfo->m_UIModel.m_pAvatar->GetCharacterData()->Set_MenPai( pTMInfo->m_uFamily ); // 设置性别 pTMInfo->m_UIModel.m_pAvatar->GetCharacterData()->Set_RaceID( pTMInfo->m_uDataID ); }