去除quickSDK和网关
原始的游戏源码中通过quickSDK进行登录验证的,如果你不喜欢接第三方的,可以删除quickSDK。
游戏里登录和注册,角色相关接口是先要通过游戏网关的验证,游戏网关的源码是go的,看着有点烦,所以我把游戏网关也去掉了,客户端直接和我们的登录网关进行交互。
这个改起来比较简单,在源码中游戏网关的类是GatewayAgent将这个类删除,再将用到这个类的地方都改成ODClient即可。
比如登录的请求方法:
void SendLogin(string account, string password)
{
TDefaultMessage tdm = ODClient::GetInstance()->MakeDefaultMsg(CM_IDPASSWORD, 0, 0, 0, 0, 0);
string gatePassword = ODClient::GetInstance()->EncodeString((char *)LOGIN_KEY); //网关密码
string msg = ODClient::GetInstance()->EncodeMessage(tdm);
string tmpStr = account + "/" + password;
string data = ODClient::GetInstance()->EncodeString((char*)tmpStr.c_str());
//char sendMsg[512] = "";
//sprintf(sendMsg, "%s%s%s", gatePassword.c_str(), msg.c_str(), data.c_str());
string sendMsg = gatePassword + msg + data;
SendSocket(sendMsg);
log("%s","SendLogin!");
}
发送请求
void SendSocket(string sendstr)
{
{
string sendMsg = "#";
sendMsg = sendMsg + Itoa(code) + sendstr + "!";
ODClient::GetInstance()->send(sendMsg.c_str());
code++;
if (code >= 10)
code = 1;
}
}
接口中涉及要修改的主要类:
FrmMain.cpp
SendProtocol.cpp
主要都在这2个文件里,还有其他的几个小地方的修改,按照编译报出的错误修改即可。socket目录下只保留这几个类即可。
这个其实并不难,自己动手吧。
本站内容来源于作者发布和网络转载,如有版权相关问题请及时与我们取得联系,我们将立即删除。