Files
mir_server/server/LogicServer/Locallog/LocalSender.h

192 lines
6.1 KiB
C
Raw Normal View History

2025-01-09 17:45:40 +08:00
#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 12
* @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 12
* @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 12
*/
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 12
*/
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