202 lines
6.5 KiB
C++
202 lines
6.5 KiB
C++
#ifndef _LOG_SENDER_H_
|
||
#define _LOG_SENDER_H_
|
||
|
||
//class CNetworkDataHandler;
|
||
class CCustomJXClientSocket;
|
||
|
||
class LogSender:
|
||
public CCustomJXClientSocket
|
||
{
|
||
public:
|
||
/*
|
||
* Comments:登陆日志
|
||
* Param WORD nLogid:消息类型
|
||
* Param int nUserid:帐号id
|
||
* Param LPCTSTR szAccount:帐号名称
|
||
* Param LPCTSTR szLoginIp:用户的ip地址
|
||
* Param LPCTSTR szLoginDescr:描述
|
||
* Param int nLevel:等级
|
||
* Param int nYb:元宝
|
||
* Param unsigned int nOnlineTime;在线时间
|
||
* Param unsigned int nServerId :原区服id
|
||
* @Return VOID:
|
||
*/
|
||
VOID SendLoginLog(WORD nLogid,int nUserid,LPCTSTR szAccount,
|
||
LPCTSTR szLoginIp,LPCTSTR szLoginDescr=NULL, int nLevel=0, int nYb=0, unsigned int nOnlineTime=0, unsigned int nActorId=0,unsigned int nSrvId = 0);
|
||
|
||
/*
|
||
* Comments:记录元宝的消费
|
||
* Param WORD nLogid:消息类型
|
||
* Param int nActorid:角色id
|
||
* Param LPCTSTR szAccount:帐号名称
|
||
* Param LPCTSTR szCharName:角色名称
|
||
* Param int nCount:余额
|
||
* Param int nPaymentCount:消费总价钱
|
||
* Param LPCTSTR szConsumeDescr:描述,如物品的名字
|
||
* Param int nConsumeLevel:玩家的消费的等级
|
||
* Param int nBalance :消费后的余额
|
||
* @Return VOID:
|
||
*/
|
||
VOID SendConsumeLog(WORD nLogid,int nActorid,LPCTSTR szAccount,
|
||
LPCTSTR szCharName,BYTE nMoneytype,int nCount,int nPaymentCount,LPCTSTR szConsumeDescr=NULL,int nConsumeLevel=0, int nBalance = 0,unsigned int nSrvId = 0);
|
||
|
||
|
||
/*
|
||
* Comments:记录道具日志
|
||
* Param WORD nLogid:消息类型
|
||
* Param BYTE nType:类型
|
||
* Param int nActorid:角色id
|
||
* Param int nAccountid:
|
||
* Param LPCTSTR szAccount:帐号名称
|
||
* Param LPCTSTR szCharName:角色名称
|
||
* Param int nCount:道具数量
|
||
* Param int nItemId:道具id
|
||
* Param LPCTSTR szConsumeDescr:描述,如物品的名字
|
||
* @Return VOID:
|
||
*/
|
||
VOID SendItemLocalLog(BYTE nType, WORD nLogid, int nActorid, int nAccountid, LPCTSTR szAccount,
|
||
LPCTSTR szCharName, WORD wItemId, int nCount, LPCTSTR szConsumeDescr=NULL, unsigned int nSrvId = 0);
|
||
|
||
VOID SendDealToLog(int nLogid, unsigned int nTime,
|
||
int nActorid,int nTarActorid,
|
||
INT nItemId=0,WORD nItemNum=0,WORD nMoneyType=0,INT64 nMoneyNum=0, int nDues = 0,unsigned int nSrvId = 0);
|
||
|
||
/*
|
||
* Comments:发送在线人数
|
||
* Param int nServerIndex:如果nServerIndex为0,表示所有逻辑服务器的总人数
|
||
* Param int nCount:在线人数
|
||
* @Return VOID:
|
||
*/
|
||
VOID SendOnlineLog(int nServerIndex,int nCount);
|
||
|
||
VOID SendCommonLog(WORD nLogid,int nActorId,LPCTSTR sActorName,
|
||
int nPara0=0,int nPara1=0,int nPara2=0,
|
||
LPCTSTR szShortStr0="",LPCTSTR szMidStr0="",LPCTSTR szLongStr0="",
|
||
LPCTSTR szShortStr1="",LPCTSTR szMidStr1="",LPCTSTR szLongStr1="",
|
||
LPCTSTR szMidStr2="",LPCTSTR szLongStr2="",unsigned int nSrvId = 0);
|
||
|
||
/*
|
||
* Comments:发送建议的日志
|
||
* Param int nServerIndex:服务器的编号
|
||
* Param nType :日志的类型
|
||
* Param char * sActorName:玩家的名字
|
||
* Param char * sAccount:账号的名字
|
||
* Param char * sTitle:标题
|
||
* Param char * sDetail:具体的内容
|
||
* Param int nLevel :玩家的等级
|
||
* @Return VOID:
|
||
*/
|
||
VOID SendSuggestLog(int nType, char * sActorName,char * sAccount, char * sTitle, char * sDetail,int nLevel,unsigned int nServerId = 0);
|
||
|
||
|
||
/*
|
||
* Comments:发送击杀掉落日志
|
||
* Param int nActorid:角色id
|
||
* Param LPCTSTR sAccount:帐号名称
|
||
* Param LPCTSTR sCharName:角色名称
|
||
* Param LPCTSTR sMonName:怪物名称
|
||
* Param LPCTSTR sSceneName:场景名称
|
||
* Param LPCTSTR sItemName:道具名称
|
||
* Param int nCount:数量
|
||
* Param int nKilltime:击杀时间
|
||
* Param int nPosx:x坐标
|
||
* Param int nPosy:y坐标
|
||
* @Return VOID:
|
||
*/
|
||
VOID SendKillDropLog(int nActorid,LPCTSTR sAccount,LPCTSTR sCharName,
|
||
LPCTSTR sMonName,LPCTSTR sSceneName,LPCTSTR sItemName,int nCount, int nKilltime, int nPosX, int nPosY,unsigned int nSrvId = 0);
|
||
/*
|
||
* Comments:发送参与活动进度
|
||
* Param int nActorid:角色id
|
||
* Param LPCTSTR sAccount:帐号名称
|
||
* Param LPCTSTR sCharName:角色名称
|
||
* Param int nAtvId:活动 id
|
||
* Param int nIndex:进度
|
||
* Param int nJoinTime:时间
|
||
* @Return VOID:
|
||
*/
|
||
VOID SendJoinAtvToLog(int nActorid,LPCTSTR sAccount,LPCTSTR sCharName,int nAtvId, int nIndex, int nJoinTime,unsigned int nSrvId = 0);
|
||
|
||
inline INT GetServerIndex(){return ServerIndex;}
|
||
inline jxSrvDef::SERVERTYPE GetServerType(){return ServerType;}
|
||
inline LPCSTR GetServerName() {return ServerName;}
|
||
|
||
//设置服务器的编号
|
||
VOID SetServerIndex(const INT nSerIdx);
|
||
|
||
VOID SetServerType(const jxSrvDef::SERVERTYPE nSrvType){ ServerType = nSrvType;}
|
||
VOID SetServerName(LPCTSTR sServerName);
|
||
|
||
void SetServerSpid(LPCTSTR sSpid);
|
||
|
||
//获取查看聊天记录
|
||
bool GetChatLogFlag() {return m_nFlag;}
|
||
|
||
/*
|
||
* Comments:发送聊天消息
|
||
* Param int nChannleID:聊天频道
|
||
* Param char * sActorName:玩家的名字
|
||
* Param char * msg:聊天类容
|
||
* Param int nActorId :玩家的id
|
||
* @Return VOID:
|
||
*/
|
||
VOID SendChatLog(int nChannleID, char * sActorName,unsigned int nActorId, char * msg);
|
||
|
||
//设置是否查看聊天记录
|
||
void SetChatLogFlag(int nFlag)
|
||
{
|
||
if(nFlag == 0)
|
||
{
|
||
m_nFlag = false;
|
||
}
|
||
else
|
||
{
|
||
m_nFlag = true;
|
||
}
|
||
}
|
||
public:
|
||
LogSender();
|
||
LogSender(jxSrvDef::SERVERTYPE ServerType,INT ServerIndex,char* ServerName);
|
||
~LogSender(void);
|
||
|
||
|
||
virtual void OnRountine()
|
||
{
|
||
CCustomJXClientSocket::OnRountine();
|
||
}
|
||
|
||
|
||
protected:
|
||
/*** 子类需覆盖的函数集 ***/
|
||
/* 处理单个通信数据包
|
||
* nCmd 通信消息命令
|
||
* inPacket 已经读取出通信命令的数据包,数据包的读取位置指向命令数据后的内容
|
||
*/
|
||
virtual VOID OnDispatchRecvPacket(const jxSrvDef::INTERSRVCMD nCmd, CDataPacketReader &inPacket);
|
||
|
||
/*** 下列函数为子类可能有必要覆盖的函数集 ***/
|
||
/* ★查询本地服务器的类型,以便正确的发送注册数据 */
|
||
virtual jxSrvDef::SERVERTYPE getLocalServerType();
|
||
|
||
/* ★查询本地服务器的名称,以便正确的发送注册数据 */
|
||
virtual LPCSTR getLocalServerName();
|
||
/* ★查询本地服务器ID,以便正确的发送注册数据,默认的返回值是0 */
|
||
virtual int getLocalServerIndex();
|
||
|
||
//提供向最外层逻辑通知连接建立的事件
|
||
virtual VOID OnConnected();
|
||
|
||
private:
|
||
//CNetworkDataHandler DataHandler;//用于解网络包
|
||
|
||
//以下4个值用于发送注册包
|
||
jxSrvDef::SERVERTYPE ServerType; //服务器类型,值为SERVERTYPE枚举类型中的枚举值
|
||
INT ServerIndex; //服务器唯一编号(服务器编号仅对游戏服务器有意义)
|
||
CHAR ServerName[128]; //服务器名称,需包含0终止符
|
||
bool m_nFlag; //是否查看聊天记录
|
||
char m_sSpid[32];
|
||
|
||
};
|
||
|
||
#endif
|