Files
mir_server/server/LogicServer/Locallog/LocalSender.h
aixianling 5c9f1dae4a init
2025-01-09 17:45:40 +08:00

192 lines
6.1 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 _LOCALLOG_SENDER_H_
#define _LOCALLOG_SENDER_H_
//消费金币、元宝的日志
typedef struct tagMoneyConsumeLog
{
int nLogid;
int nMentyType;
int nMoneyValue;
char sComment[256];
}LOGMONEYCONSUME;
//全局日志消费金币、元宝的日志
typedef struct tagActorConsumeLog
{
int nLogid; // 日志id
int nActorid;
ACCOUNT srtAccount;
ACTORNAME strName;
int nMentyType;
int nMoneyValue;
char sComment[256];
int nLevel;
int nCount; //购买数量
int nBalance; //余额
int nServerId; //
}LOGCONSUMESAVE;
typedef struct tagKillDropLog
{
int nActorid;
ACCOUNT srtAccount;
ACTORNAME strName;
ACTORNAME strMonsetName;
ACTORNAME strSceneName;
ACTORNAME strItemName;
int nCount;
int nKilltime;
int nPosX;
int nPosY;
int nServerId; //
}LOGKILLDROPSAVE;
typedef struct tagActivitySchedule
{
int nActorid;
ACCOUNT srtAccount;
ACTORNAME strName;
int nAtvID;
int nIndex;
int nJoinTime;
int nServerId; //
}LOGACTIVITYSCHEDULE;
class CActor;
//class CNetworkDataHandler;
class CCustomJXClientSocket;
class CLocalSender:
public CCustomJXClientSocket
{
public:
/**
* @brief 发送资产变动日志
* @param nLogId 消费点ID
* @param nActorId 角色id
* @param sActorName 角色名
* @param sAccount 账号
* @param nLogType 日志类型1产出2消费
* @param nCurrencyType 货币类型1金币 2绑金 3银两 4元宝
* @param nAmount 消费金额
* @param nBalance 当前余额
* @param nIsShop 是否商城消费1是 2否
*/
VOID SendCurrencyLog(WORD nLogId,
unsigned int nActorId,LPCTSTR sActorName,LPCTSTR sAccount,
WORD nLogType,WORD nCurrencyType,INT64 nAmount,INT64 nBalance,WORD nIsShop, int nSrvId = 0);
VOID SendCurrencyLog(WORD nLogId,CActor *pActor,WORD nLogType,WORD nCurrencyType,INT64 nAmount,INT64 nBalance,WORD nIsShop,int nSrvId = 0);
/**
* @brief 发送商城购买日志
* @param nItemId 道具ID
* @param nActorId 角色id
* @param sActorName 角色名
* @param sAccount 账号
* @param nShopType 商城类型
* @param nItemType 道具类型ID
* @param nItemNum 购买道具数
* @param nCurrencyType 货币类型1金币 2绑金 3银两 4元宝
* @param nConsumeNum 消耗货币总额
*/
VOID SendShopLog(INT nItemId,
unsigned int nActorId,LPCTSTR sActorName,LPCTSTR sAccount,
WORD nShopType,WORD nItemType,WORD nItemNum,WORD nCurrencyType,INT64 nConsumeNum,int nSrvId = 0);
VOID SendShopLog(INT nItemId,CActor *pActor,WORD nShopType,WORD nItemType,WORD nItemNum,WORD nCurrencyType,INT64 nConsumeNum,int nSrvId = 0);
/**
* @brief 发送道具获得/消耗日志
* @param nItemId 道具ID
* @param nActorId 角色id
* @param sActorName 角色名
* @param sAccount 账号
* @param nItemType 道具类型ID
* @param nItemNum 获得/消耗道具数
* @param nOperType 操作类型1获得2消耗
* @param sReason 获得/消耗道具的原因
*/
VOID SendItemLog(INT nItemId,
unsigned int nActorId,LPCTSTR sActorName,LPCTSTR sAccount,
WORD nItemType,WORD nItemNum,WORD nOperType,LPCTSTR sReason,int nSrvId = 0);
VOID SendItemLog(INT nItemId,CActor *pActor,WORD nItemType,WORD nItemNum,WORD nOperType,LPCTSTR sReason,int nSrvId = 0);
/**
* @brief 发送任务接受完成日志
* @param nTaskId 任务ID
* @param nActorId 角色id
* @param sActorName 角色名
* @param sAccount 账号
* @param nTaskType 任务类型
* @param nStatu 状态1接收2完成
*/
VOID SendTaskLog(INT nTaskId,
unsigned int nActorId,LPCTSTR sActorName,LPCTSTR sAccount,
WORD nTaskType,WORD nStatu,int nSrvId = 0);
VOID SendTaskLog(INT nTaskId,CActor *pActor,WORD nTaskType,WORD nStatu,int nSrvId = 0);
/**
* @brief 发送活动参与日志
* @param nAtvId 活动ID
* @param nActorId 角色id
* @param sActorName 角色名
* @param sAccount 账号
* @param nAtvType 活动类型
* @param nStatu 状态1接收2完成
*/
VOID SendActivityLog(INT nAtvId,
unsigned int nActorId,LPCTSTR sActorName,LPCTSTR sAccount,
WORD nAtvType,WORD nStatu,int nSrvId = 0);
VOID SendActivityLog(INT nAtvId,CActor *pActor,WORD nAtvType,WORD nStatu,int nSrvId = 0);
inline INT GetServerIndex(){return ServerIndex;}
inline jxSrvDef::SERVERTYPE GetServerType(){return ServerType;}
inline LPCSTR GetServerName() {return ServerName;}
VOID SetServerIndex(const INT nSerIdx){ ServerIndex = nSerIdx;}
VOID SetServerType(const jxSrvDef::SERVERTYPE nSrvType){ ServerType = nSrvType;}
VOID SetServerName(LPCTSTR sServerName);
VOID SendCreateLocalLog(int nSpid,int Serverindex);
public:
CLocalSender();
CLocalSender(jxSrvDef::SERVERTYPE ServerType,INT ServerIndex,char* ServerName);
~CLocalSender(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();
private:
//CNetworkDataHandler DataHandler;//用于解网络包
//以下4个值用于发送注册包
jxSrvDef::SERVERTYPE ServerType; //服务器类型值为SERVERTYPE枚举类型中的枚举值
INT ServerIndex; //服务器唯一编号(服务器编号仅对游戏服务器有意义)
CHAR ServerName[128]; //服务器名称需包含0终止符
CMiniDateTime m_tomorrowDateTime; // 指示明天的开始时间也就是今天的结束时间用于24点的刷新处理活动、任务等逻辑
};
#endif