Ejemplo n.º 1
0
void CentServer::HandleSYN(NETInputPacket *pPacket,CentHandler *pHandler)
{
	NETOutputPacket OutPkg;
	OutPkg.Begin(CLIENT_CMD_SYNC);
	OutPkg.End();
	pHandler->Send(&OutPkg);
}
Ejemplo n.º 2
0
void CentServer::ForwardPacket2All(NETInputPacket *pPacket,CentHandler *pHandler)
{
	log_debug("CentServer::ForwardPacket2All. double-exp time begin.");

	NETOutputPacket outPacket;
	outPacket.Copy(pPacket->packet_buf(),pPacket->packet_size());
	outPacket.End();

	g_GetPlayerMgr().SendMsgToAll(&outPacket);
}
Ejemplo n.º 3
0
void CHelperUnit::SendClientClose(int uid)
{
	NETOutputPacket transPacket;
	transPacket.Begin(CLIENT_CLOSE_PACKET);
	transPacket.WriteInt(uid);
	transPacket.WriteInt(TGlobal::_svid);
	transPacket.End();
	
	if((int)_helperpool->m_svidlist.size() > 0)
	{
		int svid = TGlobal::LoopSvid(_helperpool->m_svidlist);
		CHelperUnit *pHelperUnit = NULL;
		map<int, CHelperUnit*>::iterator iterHelper = _helperpool->m_helpermap.find(svid);
		if(iterHelper != _helperpool->m_helpermap.end())
		{
			pHelperUnit = iterHelper->second;
			if(pHelperUnit != NULL)
			{
				pHelperUnit->append_pkg(transPacket.packet_buf(), transPacket.packet_size());
				pHelperUnit->send_to_logic(_helperTimer);
			}
		}
		else
		{
			g_pErrorLog->logMsg("%s||Cannot find helper, svid:[%d]", __FUNCTION__, svid);
		}
	}
}
Ejemplo n.º 4
0
void CentServer::HandleUserMsg(NETInputPacket *pPacket,CentHandler *pHandler)
{
	log_debug("HandleUserMsg \n");
	uint32 UserID = pPacket->ReadInt();
	CPlayer *pPlayer = g_GetPlayerMgr().GetPlayer(UserID);
	if( pPlayer == NULL )
	{
		log_debug("HandleUserMsg user is null \n");
		return;
	}
	NETOutputPacket outPacket;
	int pos = 9 + sizeof(int);
	int len = pPacket->packet_size() - pos;
	outPacket.Copy(pPacket->packet_buf()+pos,len);
	outPacket.End();

	log_debug("SendMsg is %d \n",outPacket.GetCmdType());
	pPlayer->SendMsg(&outPacket);

}
Ejemplo n.º 5
0
void CentServer::OnConnect(CentHandler *pHandler )
{
	log_debug("OnConnect with hall\n");
	// send the regist info
	ServerConfig_T cfg = g_GetConfigMgr().getServerConfig();
	uint32 nGroupID  = g_GetConfigMgr().getGroupID();
	uint32 nType = g_GetConfigMgr().getServerType();
	uint32 nServerID = g_GetConfigMgr().getServerID();

	if( pHandler->GetHandlerType() == emCENTER_HANDLE )
	{
		m_bIsConnect = true;
		log_debug("CentServer OnConnect \n");
		NETOutputPacket packet;
		packet.Begin( SERVER_TO_CENTSERVER_REGIST );
		packet.WriteShort( cfg.id );
		packet.WriteShort( cfg.type );
		packet.WriteString( cfg.host.c_str() );
		packet.WriteInt( cfg.port );
		packet.End();
		pHandler->Send(&packet);
		log_debug("Send Resgist info %d \n",cfg.id);
	}
	else if ( pHandler->GetHandlerType() == emMONITER_HANDLE )
	{
		log_debug( " CGameMgr::OnMonitorConnect. xMonitor. \n" );
		NETOutputPacket packet;
		packet.Begin(Monitor::REGISTER_SERVER_REQUEST);
		packet.WriteInt(nServerID);
		packet.WriteInt(nType);
		packet.WriteInt(nGroupID);
		packet.End();
		pHandler->Send(&packet);
	}
}
Ejemplo n.º 6
0
int
CHelperUnit::_pay_res(NETInputPacket* pack)
{
	int 			ret = 0;
	int				code = 0;
	string 			json, result;
	Reader			r;
	Value			v;
	unsigned long 	flow;
	CClientUnit		*c;
	CDecoderUnit	*d;
	NETOutputPacket	out;
	CEncryptDecrypt	ed;

	log_debug("-------- CHelperUnit::_pay_res begin --------");
	code = pack->ReadByte();
	json = pack->ReadString();
	log_debug("ErrCode: %d", code);
	log_debug("JSON: %s", json.c_str());

	if (r.parse(json, v)) {
		flow = v["flow"].asUInt64();
		result = v["result"].asString();

		out.Begin(SERVER_CMD_REP);
		out.WriteInt(0);
		out.WriteString(result);
		out.End();
	} else { /* error handle */
		out.Begin(SERVER_CMD_REP);
		out.WriteInt(1);
		out.WriteString("");
		out.End();

		log_debug("-------- CHelperUnit::_pay_res error --------");
		ret = -1;
	}

	ed.EncryptBuffer(&out);  /* 编码 */

	c = _get_client_by_id(flow, &d);

	if (c && c->get_state() != CONN_FATAL_ERROR) {
		c->add_rsp_buf(out.packet_buf(), out.packet_size()); 
		ret = c->send();
	}

	log_debug("-------- CHelperUnit::_pay_res end --------");
	return ret;
}