Files
mir_server/sdk/commonLib/include/LogSender.h
aixianling 5c9f1dae4a init
2025-01-09 17:45:40 +08:00

202 lines
6.5 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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