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

115 lines
3.8 KiB
C++
Raw Permalink 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 GATE_DB_REQUEST_HANDLER_H_
#define GATE_DB_REQUEST_HANDLER_H_
/*
* 用于用户登录的验证阶段的处理
*/
class CSQLConnection;
class CDataPacket;
class CDBDataServer;
class ILogicDBRequestHost;
class CGateDBReqestHandler
{
public:
CGateDBReqestHandler();
~CGateDBReqestHandler();
bool Init(CSQLConenction *pConn, CDBDataServer *pMgr);
/*
* Comments: 查询指定账号角色列表
* Param const int nAccountId: 账号ID
* Param const int nServerId: 服务器ID
* Param CDataPacket & packet: 输出数据包
* @Return void:
* @Remark: 输出内容包括错误码1Byte) + 角色数目1Byte + 角色信息列表。如果查询失败,只有错误码。
*/
void GetActorList(const unsigned int nAccountId, const int nServerId, CDataPacket &packet);
void GetActorSecondPsw(const unsigned int nAccountId, const int nServerId, CDataPacket &packet);
/*
* Comments: 选择角色准备进入游戏
* Param const int nServerId: 登录的逻辑服务器ID
* Param const int nRawServerId: 登录的原始服务器ID
* Param const int nAccountId: 账号ID
* Param const int nActorId: 角色ID
* Param const char * szAccount: 账号名
* Param LONGLONG nIP: 登录IP地址
* @Return int: 返回错误码。0表示成功。
* @Remark:
*/
int StartEnterGame(const int nServerId,
const int nRawServerId,
const unsigned int nAccountId,
const unsigned int nActorId,
const char *szAccount,
LONGLONG nIP);
/*
* Comments:获取登陆的消息包
* Param const jxSrvDef::INTERSRVCMD nCmd:消息码
* Param CDataPacketReader & inPacket:传入的读写器
* Param CDataPacket & retPack:返回的读写器
* @Return void:
*/
void OnRecvLoginMsg(const jxSrvDef::INTERSRVCMD nCmd, CDataPacketReader& inPacket,ILogicDBRequestHost * pDataClient);
//创建角色
VOID OnCreateActorResult( INT_PTR nError,unsigned int nActorId,PCREATEACTORDATA pData,ILogicDBRequestHost * pDataClient);
//创建跨服角色
VOID OnCreateCrossServerActorResult( INT_PTR nError,unsigned int nActorId,PCREATEACTORDATA pData,ILogicDBRequestHost * pDataClient);
private:
/*
* Comments: 获取最少使用的职业,用于创建角色默认选择的职业选择用
* Param const int nServerId:
* @Return tagActorVocation:
* @Remark:
*/
int QueryLessJobReq(const int nServerId);
//创建角色
void OnCreateActor( CDataPacketReader& inPacket,ILogicDBRequestHost * pDataClient );
//删除角色
void OnDeleteActor( CDataPacketReader& inPacket,ILogicDBRequestHost * pDataClient );
//随机名字
void OnRandName( CDataPacketReader& inPacket,ILogicDBRequestHost * pDataClient );
/*
* Comments: 获取当前可以选择的阵营列表,用于创建角色选择阵营用
* Param const int nServerId:
* @Return int: 返回可以选择的阵营对应位掩码。低3位有效为0表示对应的阵营不可选为1表示阵营可选
返回值为7表示所有阵营都可以选择
* @Remark:
*/
int QueryZyList(const int nServerId);
/*
* Comments: 获取使用最少(最优先)的阵营
* Param const int nServerId: 逻辑服务器ID
* @Return tagZhenying:
* @Remark:
*/
tagZhenying QueryZYReq(const int nServerId);
//改名字
void OnChaneActorNameToDb(CDataPacketReader & inPacket,ILogicDBRequestHost * pDataClient);
void OnCheckSecondPsw(CDataPacketReader & inPacket,ILogicDBRequestHost * pDataClient);
void OnCreateSecondPsw(CDataPacketReader & inPacket,ILogicDBRequestHost * pDataClient);
INT_PTR QueryActorCount( INT_PTR nAccountId, INT_PTR nServerIndex );
INT_PTR CreateCrossServerActor( CDataPacketReader& inPacket,ILogicDBRequestHost * pDataClient);
INT_PTR QueryCrossServerActor( CDataPacketReader& inPacket,ILogicDBRequestHost * pDataClient);
private:
CSQLConenction *m_pSQLConnection;
CDBDataServer *m_pDBServer; //是这个指针
};
#endif