client发包给服务分为主次id
struct TCP_Command
{
WORD wMainCmdID; //主命令码
WORD wSubCmdID; //子命令码
};
一、 注冊:
1、当在client输入游戏帐号或游戏昵称换行时,进行验证
CS:
1.1、发送的主id是:MDM_GP_LOGON 1 //广场登录
子id是:SUB_GP_VERIFY_INDIVIDUAL 5 //验证资料
1.2、首先会进行版本号验证
struct CMD_GP_VerifyIndividual
{
//系统信息
DWORD dwPlazaVersion; //广场版本号
//验证信息
WORD wVerifyMask; //验证掩码
};
1.3、再进行
//验证资料
struct DBR_GP_VerifyIndividual
{
//连接信息
LPVOID pBindParameter; //绑定參数
WORD wVerifyMask; //校验验证
TCHAR szVerifyContent[LEN_ACCOUNTS]; //验证内容
};
1.4、再到数据库验证
DBR_GP_VERIFY_INDIVIDUAL 4 //验证资料
1.5、验证后会有一个验证结果
DBO_GP_VERIFY_RESULT 104 //验证结果
//验证结果
struct DBO_GP_VerifyIndividualResult
{
bool bVerifyPassage; //验证通过
WORD wVerifyMask; //验证掩码
TCHAR szErrorMsg[128]; //错误消息
};
SC:
1.6、SendData(dwContextID,MDM_GP_LOGON,SUB_GP_VERIFY_RESULT,&VerifyIndividualResult,wSendSize);
MDM_GP_LOGON 1 //广场登录
SUB_GP_VERIFY_RESULT 105 //验证结果
2、client发送:(帐号注冊)CMD_GP_RegisterAccounts
struct CMD_GP_RegisterAccounts
{
//系统信息
DWORD dwPlazaVersion; //广场版本号
TCHAR szMachineID[LEN_MACHINE_ID]; //机器序列
//password变量
TCHAR szLogonPass[LEN_MD5]; //登录password
//注冊信息
WORD wFaceID; //头像标识
BYTE cbGender; //用户性别
TCHAR szAccounts[LEN_ACCOUNTS]; //登录帐号
TCHAR szNickName[LEN_NICKNAME]; //用户昵称
TCHAR szSpreader[LEN_ACCOUNTS]; //推荐帐号
TCHAR szPassPortID[LEN_PASS_PORT_ID]; //证件号码
TCHAR szCompellation[LEN_COMPELLATION];//真实名字
BYTE cbValidateFlags; //校验标识
};
CS:
2.1、发送的主id是:MDM_GP_LOGON 1 //广场登录
子id是:SUB_GP_REGISTER_ACCOUNTS 3 //注冊帐号
2.2、注冊帐号
DBR_GP_REGISTER_ACCOUNTS 3 //注冊帐号
//帐号注冊
struct DBR_GP_RegisterAccounts(该结构体用来转存注冊消息写入数据库)
{
//注冊信息
WORD wFaceID; //头像标识
BYTE cbGender; //用户性别
TCHAR szAccounts[LEN_ACCOUNTS]; //登录帐号
TCHAR szNickName[LEN_ACCOUNTS]; //用户昵称
TCHAR szSpreader[LEN_ACCOUNTS]; //推荐帐号
TCHAR szPassPortID[LEN_PASS_PORT_ID]; //证件号码
TCHAR szCompellation[LEN_COMPELLATION];//真实名字
//password变量
TCHAR szLogonPass[LEN_MD5]; //登录password
//附加信息
DWORD dwClientAddr; //连接地址
TCHAR szMachineID[LEN_MACHINE_ID]; //机器序列
//连接信息
LPVOID pBindParameter; //绑定參数
};
2.3、登录成功
DBO_GP_LOGON_SUCCESS 100 //登录成功
2.4、登录成功后開始构造client用户数据
//登录成功
struct DBO_GP_LogonSuccess
{
//属性资料
WORD wFaceID; //头像标识
DWORD dwUserID; //用户标识
DWORD dwGameID; //游戏标识
DWORD dwGroupID; //社团标识
DWORD dwCustomID; //自定索引
DWORD dwExperience; //经验数值
DWORD dwLoveLiness; //用户魅力
TCHAR szPassword[LEN_MD5]; //登录password
TCHAR szAccounts[LEN_ACCOUNTS];//登录帐号
TCHAR szNickName[LEN_NICKNAME];//用户昵称
TCHAR szDynamicPass[LEN_PASSWORD];//动态password
TCHAR szGroupName[LEN_GROUP_NAME];//社团名字
//用户成绩
SCORE lUserScore; //用户游戏
SCORE lUserIngot; //用户元宝
SCORE lUserInsure; //用户银行
DOUBLE dUserBeans; //用户游戏
//用户资料
BYTE cbGender; //用户性别
BYTE cbMoorMachine; //锁定机器
TCHAR szUnderWrite[LEN_UNDER_WRITE]; //个性签名
//会员资料
BYTE cbMemberOrder; //会员等级
SYSTEMTIME MemberOverDate; //到期时间
//扩展信息
BYTE cbInsureEnabled; //使能标识
DWORD dwCheckUserRight; //检查权限
//报名信息
WORD wSignupCount; //报名数量
tagSignupMatchInfo SignupMatchInfo[32]; //报名列表
//描写叙述信息
TCHAR szDescribeString[128]; //描写叙述消息
};
2.5、
//登录成功
struct CMD_GP_LogonSuccess
{
//属性资料
WORD wFaceID; //头像标识
DWORD dwUserID; //用户 I D
DWORD dwGameID; //游戏 I D
DWORD dwGroupID; //社团标识
DWORD dwCustomID; //自定标识
DWORD dwExperience; //经验数值
DWORD dwLoveLiness; //用户魅力
//用户成绩
SCORE lUserScore; //用户金币
SCORE lUserInsure; //用户银行
SCORE lUserIngot; //用户元宝
DOUBLE dUserBeans; //用户游戏豆
//用户信息
BYTE cbGender; //用户性别
BYTE cbMoorMachine; //锁定机器
TCHAR szAccounts[LEN_ACCOUNTS]; //登录帐号
TCHAR szNickName[LEN_ACCOUNTS]; //用户昵称
TCHAR szDynamicPass[LEN_PASSWORD]; //动态password
TCHAR szGroupName[LEN_GROUP_NAME]; //社团名字
//配置信息
BYTE cbInsureEnabled; //银行使能标识
BYTE cbShowServerStatus; //显示server状态
};
SC:
2.5、
SendData(dwContextID,MDM_GP_LOGON,SUB_GP_LOGON_SUCCESS,cbDataBuffer,wSendSize);
MDM_GP_LOGON 1 //广场登录
SUB_GP_LOGON_SUCCESS 100 //登录成功
2.6、
m_pITCPNetworkEngine->SendData(dwContextID,MDM_GP_SERVER_LIST,SUB_GP_LIST_FINISH);
MDM_GP_SERVER_LIST 2 //列表信息
SUB_GP_LIST_FINISH 200 //发送完毕
2.7、//登陆完毕
struct CMD_GP_LogonFinish
{
WORD wIntermitTime; //中断时间
WORD wOnLineCountTime; //更新时间
};
m_pITCPNetworkEngine>SendData(dwContextID,MDM_GP_LOGON,SUB_GP_LOGON_FINISH,&LogonFinish,sizeof(LogonFinish));
MDM_GP_LOGON 1 //广场登录
SUB_GP_LOGON_FINISH 102 //登录完毕
3、游戏登录
CS:
3.1、发送的主id是:MDM_GP_LOGON 1 //广场登录
子id: SUB_GP_LOGON_ACCOUNTS 2 //帐号登录
3.2、帐号登录
DBR_GP_LOGON_ACCOUNTS 2 //帐号登录
//帐号登录
struct CMD_GP_LogonAccounts
{
//系统信息
DWORD dwPlazaVersion; //广场版本号
TCHAR szMachineID[LEN_MACHINE_ID]; //机器序列
//登录信息
BYTE cbValidateFlags; //校验标识
TCHAR szPassword[LEN_MD5]; //登录password
TCHAR szAccounts[LEN_ACCOUNTS]; //登录帐号
TCHAR szPassPortID[LEN_PASS_PORT_ID]; //身份证号
};
3.3、将发来的包构造为该结构体与数据库进行验证
//帐号登录
struct DBR_GP_LogonAccounts
{
//登录信息
TCHAR szPassword[LEN_MD5]; //登录password
TCHAR szAccounts[LEN_ACCOUNTS]; //登录帐号
TCHAR szPassPortID[LEN_PASS_PORT_ID]; //身份证号
BYTE cbNeeValidateMBCard; //密保校验
//附加信息
DWORD dwClientAddr; //连接地址
TCHAR szMachineID[LEN_MACHINE_ID]; //机器序列
//连接信息
LPVOID pBindParameter; //绑定參数
//扩展信息
DWORD dwCheckUserRight; //检查权限
};
3.4、验证结果-》登录失败
//登录失败
struct DBO_GP_LogonFailure
{
LONG lResultCode; //错误代码
TCHAR szDescribeString[128]; //描写叙述消息
};
3.5、
DBO_GP_LOGON_FAILURE 101 //登录失败
DBO_MB_LOGON_FAILURE 901 //登录失败
3.6、
//登录失败
struct CMD_GP_LogonFailure
{
LONG lResultCode; //错误代码
TCHAR szDescribeString[128]; //描写叙述消息
};
SC:
3.7、发送失败数据
SendData(dwContextID,MDM_GP_LOGON,SUB_GP_LOGON_FAILURE,&LogonFailure,wSendSize);
MDM_GP_LOGON 1 //广场登录
SUB_GP_LOGON_FAILURE 101 //登录失败
3.8、验证结果=》登录成功(同注冊2.3-2.7)