当前位置: 首页>>代码示例>>C++>>正文


C++ CUser::GetDatabaseID方法代码示例

本文整理汇总了C++中CUser::GetDatabaseID方法的典型用法代码示例。如果您正苦于以下问题:C++ CUser::GetDatabaseID方法的具体用法?C++ CUser::GetDatabaseID怎么用?C++ CUser::GetDatabaseID使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CUser的用法示例。


在下文中一共展示了CUser::GetDatabaseID方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: SaveCurrentUserData

// 현재 유저의 정보를 txt파일에 저장시킨다.
void CNetManager::SaveCurrentUserData()
{
	FILE * pCurrentUserInfoFile = NULL;
	int count = SMemManager()->GetCurrentUser();
	CUserList * pUserList = SMemManager()->GetUserList();
	CUser * pUser = pUserList->GetFirstUser();

	if((pCurrentUserInfoFile = fopen("userdata.txt", "w")) == NULL)
	{
		ServerLog()->Log("Userdata File Create Error.");
	}

	fprintf(pCurrentUserInfoFile, "=============================================\n");
	fprintf(pCurrentUserInfoFile, "Current User Count : %d\n", count);
	fprintf(pCurrentUserInfoFile, "=============================================\n");
	fprintf(pCurrentUserInfoFile, "Database ID\tNickname\n");
	fprintf(pCurrentUserInfoFile, "---------------------------------------------\n");

	while(pUser != NULL)
	{
		if(pUser->IsOnline())
		{
			fprintf(pCurrentUserInfoFile, "%d\t\t%s\n", pUser->GetDatabaseID(), pUser->GetUserNickname());
		}
		pUser = pUserList->GetNext(pUser);
	}
	fclose(pCurrentUserInfoFile);
}
开发者ID:astromaker,项目名称:sandbox,代码行数:29,代码来源:NetManager.cpp

示例2: SendUserInfo

void CPacketProcess::SendUserInfo(CUser * pUser)
{
	CSendPacket * pSendPacket;
	CUserList * pUserList = SMemManager()->GetUserList();
	CUser * pAllUser;

	pSendPacket = SMemManager()->AllocPerSendPacket();
	// 접속자 정보를 보내 준다.
	pSendPacket->Begin();
	pSendPacket->Set8Bit(MSG_SERV_LOGINOK);
	pSendPacket->Set16Bit((short)pUser->GetDatabaseID());
	pSendPacket->Set16Bit((short)SMemManager()->GetCurrentUser());

	// 사용자 정보가 많으면 패킷에 다 못넣으니깐.. 다른 처리 필요.
	pAllUser = pUserList->GetFirstUser();
	while(pAllUser != NULL)
	{
		if(pAllUser->IsOnline())
		{
			pSendPacket->Set16Bit((short)pAllUser->GetDatabaseID());
			pSendPacket->SetString(pAllUser->GetUserNickname());
			// 일단 보내는 패킷의 크기로 패킷의 크기를 넘어서면 사용자 정보 입력을 그만 둔다.
			// 패킷을 완성하고 보낸다. 그리고 다시 연결 패킷을 만들어 보낸다.
			// 이거 아마 동기화 안맞추어주어서 에러 날거 같다.. 난중에 테스트 필!
			// 여기서 유저의 마지막까지 왔는데 패킷이 다찾을때 다음 유저가 널이니까. 버그다..(무슨말인지 알지?)
			if(((pSendPacket->GetSize() + MAX_NICKNAME_LEN + 2) > MAX_PACKETBUFFER_LEN))
			{
				pSendPacket->End();
				pUser->GetSendQueue()->AddTail(pSendPacket);
				pUser->SendPost();

				pSendPacket = SMemManager()->AllocPerSendPacket();
				pSendPacket->Begin();
				pSendPacket->Set8Bit(MSG_SERV_USERLIST);
			}
		}
		pAllUser = pUserList->GetNext(pAllUser);
	}
	pSendPacket->End();
	pUser->GetSendQueue()->AddTail(pSendPacket);
	pUser->SendPost();
}
开发者ID:astromaker,项目名称:sandbox,代码行数:42,代码来源:PacketProcess.cpp


注:本文中的CUser::GetDatabaseID方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。