⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mailmgr.cpp

📁 国内著名网络游戏dragon的服务端完整源码 内附完整数据库结构
💻 CPP
字号:
// MailMgr.cpp: implementation of the CMailMgr class.
//
//////////////////////////////////////////////////////////////////////

#include "../stdafx.h"
#include "MailMgr.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
//DB 单阁苞 烹脚窍绰 努贰胶
CMailMgr g_MailMgr;
CMailMgr::CMailMgr()
{

}

CMailMgr::~CMailMgr()
{

}

void CMailMgr::RecvReqMailList(const int cn,t_packet *p)//府胶飘 夸没阑 罐澜
 {
//	CMD_MAIL_REQUEST_LIST	甫 DB单阁栏肺
	if(::ExistHe(p->u.Hwoa.rang.ReqestMailList.szName) > 0 )//弊荤恩捞 乐阑 版快 叼厚俊霸 夸没阑 茄促 // 030923 HK YGI
	{
		::QueuePacket(connections,DB_DEMON,p,1);
	}
}

void CMailMgr::RecvMailListFromDBDEMON(const int cn,t_packet *p)//搬苞拱阑 DB俊霸 罐澜
{
	MAILLISTRESULT *pMailResult = (LPMAILLISTRESULT)&p->u.Hwoa.rang.ReqestMailBodyResult;
	const int iTargetCn = ::ExistHe(pMailResult->szName);
	if(iTargetCn > 0 )//弊荤恩捞 乐阑 版快 罐篮 府胶飘甫 焊郴霖促	// 030923 HK YGI
	{
		::QueuePacket(connections,iTargetCn,p,1);
	}
}

bool CMailMgr::Recv(const int cn, t_packet *p)
{	//< CSD-030324
	CHARLIST *ch = ::CheckServerId( cn );
	if( !ch ) {return false;}

	MAILSEND *pMailSend = &p->u.Hwoa.rang.MailSend;

	const int iTargetCn = ::ExistHe(pMailSend->szSender);
	if(iTargetCn && cn == iTargetCn)//弊荤恩捞 乐阑 版快 罐篮 府胶飘甫 焊郴霖促
	{
		switch(pMailSend->iType)
		{
		case GAMEMASTER_MAIL:
			if(!ch->IsCounselor())
			{
				return false;
			}break;
		case GUILD_MAIL:
			if(!ch->GetGuildCode())
			{
				return false;
			}break;
		}
		::QueuePacket(connections, DB_DEMON, p, 1);
	}
/*
	t_packet p;

	if( type == CMD_SEND_MAIL_GUILD )
	{
		if( !ch->GetGuildCode() ) return;
		// if( !ch->name_status.degree ) return;		// 辨靛 殿鞭捞 0捞搁 皋老阑 给 焊辰促.
		p.u.kein.game_to_login_send_mail.uni.guild_info.guild_code = ch->GetGuildCode();
		p.u.kein.game_to_login_send_mail.uni.guild_info.degree = ch->name_status.guild_master;
	}
	else
	{
		strcpy( p.u.kein.game_to_login_send_mail.uni.recv_name, t->name );
	}		

	strcpy( p.u.kein.game_to_login_send_mail.send_name, ch->Name );		
	strcpy( p.u.kein.game_to_login_send_mail.title, t->title );
	strcpy( p.u.kein.game_to_login_send_mail.body, t->body );		

	p.h.header.size = sizeof( k_game_to_login_send_mail ) - 1000 + strlen( t->body );
*/
	return true;
}	//> CSD-030324

void CMailMgr::RecvDelete(const int cn,t_packet *p)//瘤快扁(府胶飘 锅龋甫 焊忱聪促.)
{
	CHARLIST *ch = ::CheckServerId( cn );
	if( !ch ) {return;}
	::QueuePacket(connections, DB_DEMON, p, 1);
}

void CMailMgr::RecvRepair(const int cn,t_packet *p)//瘤快扁(府胶飘 锅龋甫 焊忱聪促.)
{
	CHARLIST *ch = ::CheckServerId( cn );
	if( !ch ) {return;}
	::QueuePacket(connections, DB_DEMON, p, 1);
}

void CMailMgr::RecvRequestBody(const int cn,t_packet *p)
{
	p->u.Hwoa.rang.ReqestMailBody.szName[MAX_NAME-1] = 0;
	const int iSender = ::ExistHe(p->u.Hwoa.rang.ReqestMailBody.szName);
	if( cn != iSender) {return;}

	::QueuePacket(connections, DB_DEMON, p, 1);
}

void CMailMgr::RecvRequestBodyResult(const int cn,t_packet *p)
{
	const int iTarget = ::ExistHe(p->u.Hwoa.rang.ReqestMailBodyResult.szReceiver);
	if( -1 == iTarget ) {return;}
	::QueuePacket(connections, iTarget, p, 1);
}

void SendGameToClientWhoSendMail( char *name )
{
	int server_id = ExistHe( name );
	if( server_id != -1 )
	{
		CallClient( server_id, CMD_MAIL_ALERT );
	}
}

⌨️ 快捷键说明

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