Example #1
0
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);
}
Example #2
0
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;
}
Example #3
0
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 );
	
}