115 lines
3.8 KiB
C++
115 lines
3.8 KiB
C++
#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 |