msgtick.cpp

来自「网络游戏魔域的服务端与客户端完整源代码 包括详细的说明文档与开发日志」· C++ 代码 · 共 60 行

CPP
60
字号
// MsgTick.cpp: implementation of the CMsgTick class.
//
//////////////////////////////////////////////////////////////////////

#include "AllMsg.h"
#include "GameMsg.h"
#include "Hero.h"
#include "GameDataSet.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CMsgTick::CMsgTick()
{
	Init();
	m_pInfo	=(MSG_Info *)m_bufMsg;
}

CMsgTick::~CMsgTick()
{

}

//////////////////////////////////////////////////////////////////////
BOOL CMsgTick::Create(char* pbufMsg, DWORD dwMsgSize)
{
	if (!CNetMsg::Create(pbufMsg, dwMsgSize))
		return false;

	if(_MSG_TICK != this->GetType())
		return false;

	return true;
}

//////////////////////////////////////////////////////////////////////
void CMsgTick::Process(void* pInfo)
{
	static DWORD dwLastTick	=0;

	DWORD dwTimeNow		= ::TimeGet();
	m_pInfo->dwData		= dwTimeNow^(m_pInfo->idPlayer*m_pInfo->idPlayer+9527);
	m_pInfo->dwChkData	= g_objNetwork.m_dwMsgCount;
	this->Send();	// return back

	//g_objNetwork.ChangeCode(m_pInfo->dwData);
	//::LogMsg("Code is %u", m_pInfo->dwData);
	//::LogMsg("Tick feed back");

	const DWORD INTERVAL_TICK = 10*1000;
	if (dwLastTick != 0 && dwTimeNow > dwLastTick+INTERVAL_TICK*(100+30)/100)
	{
		const OBJID idNetBlock = 100115;
		g_objGameMsg.AddMsg(g_objGameDataSet.GetStr(idNetBlock));
	}

	dwLastTick = dwTimeNow;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?