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


C++ Account::SetGUID方法代码示例

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


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

示例1: OnLogMessage

// 响应LOG消息
void OnLogMessage(CMessage* pMsg)
{
	DWORD curTime = timeGetTime();
	char pszLogingInfo[512]="";
	switch(pMsg->GetType())
	{
	case MSG_L2W_LOG_QUEST_PLAYERBASELIST://loginserver请求一个账号下的玩家基本信息列表
		{
			char szCdkey[ACCOUNT_SIZE];
			pMsg->GetStr(szCdkey,ACCOUNT_SIZE);
			//去掉字符串右边的空格
			TrimRight(szCdkey);

			//_snprintf(pszLogingInfo,512,"the cdkey(%s) MSG_L2W_LOG_QUEST_PLAYERBASELIST!", szCdkey);
			//PutStringToFile("Login_WS_Info",pszLogingInfo);
#ifdef _RUNSTACKINFO1_
			CMessage::AsyWriteFile(GetGame().GetStatckFileName(),pszLogingInfo);
#endif

			// 判断DBS是否准备好了
			if (!GetGame().GetInitVarLoadFlag() 
				|| !GetGame().GetInitRegionLoadFlag()
				|| !GetGame().GetInitFactionLoadFlag()
				|| !GetGame().GetInitUnionLoadFlag()
				|| !GetNetHandler().IsServerReady(NF_DB_SERVER)
				|| !GetGame().GetInitPersonalHouseLoadFlag()
				|| ( GetInst( Business::CBusinessManager ).IsEnable() &&
				!GetInst( Business::CBusinessManager ).IsDBLoaded() ) 
                || !GetInst( AH::OrderMgr ).IsDBLoaded() )
			{
				Log4c::Trace(ROOT_MODULE,FormatText("WS_LOGINMSG_40", szCdkey));
				CMessage pMsga(MSG_W2L_LOG_ANSWER_PLAYERBASELIST);
				// 添加验证代码
				pMsga.Add((long)0xFFFFFFFF);
				pMsga.Add((BYTE)2);// flag
				pMsga.Add((szCdkey));// cdkey
				pMsga.Add((short)0);// flag
				pMsga.SendToServer(NF_LOGIN_SERVER);
				return;
			}

			// 判断GS是否准备好了
            if (!CMessage::IsGSReady(-1))
            {
                CMessage pMsga(MSG_W2L_LOG_ANSWER_PLAYERBASELIST);
                // 添加验证代码
                pMsga.Add((long)0xFFFFFFFF);
                pMsga.Add((BYTE)2);// flag
                pMsga.Add((szCdkey));// cdkey
                pMsga.Add((short)0);// flag
                pMsga.SendToServer(NF_LOGIN_SERVER);
                return;
            }
			
			Account* acc = GetGame().GetEntityManager()->FindAccount(szCdkey);
			// 现在LoginPlayer对象缓冲区查找
			if(acc)
			{
				acc->ClearAllLoginPlayer();
				acc->SetName(szCdkey);
				GetGame().GetEntityManager()->CreateLoadAccountSession(acc);
			}
			else // 未找到缓冲区中的对象
			{
				// 创建session
				if(szCdkey[0] != '\0')
				{
					acc = new Account;
					if(acc)
					{
						CGUID accGuid;
						CGUID::CreateGUID(accGuid);
						acc->SetGUID(accGuid);
						acc->SetName(szCdkey);
					}
					GetGame().GetEntityManager()->CreateLoadAccountSession(acc);
					SAFE_DELETE(acc);
				}
			}
		}
		break;

	case MSG_L2W_LOG_QUEST_PLAYERDATA://loginserver请求玩家的详细信息
		{
			// 取得验证码
			long lTestSignCode = pMsg->GetLong();

			char szCdkey[ACCOUNT_SIZE];
			CGUID guid;
			pMsg->GetGUID(guid);//获取PLAYERID
			pMsg->GetStr(szCdkey,ACCOUNT_SIZE);//获取CDKEY

			// 检查验证码
			Account* tLoginInfo = GetGame().GetEntityManager()->FindAccount(szCdkey);
			if(!tLoginInfo)
			{
				char szGUID[128];
				guid.tostring(szGUID);
// 				_snprintf(pszLogingInfo,512,"MSG_L2W_LOG_QUEST_PLAYERDATA! Account[%s] Is Null!", szGUID, szCdkey);
//.........这里部分代码省略.........
开发者ID:yuanxiubin1128,项目名称:mmo-resourse,代码行数:101,代码来源:LogMessage.cpp


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