This commit is contained in:
aozhiwei 2022-03-24 13:43:26 +08:00
parent a1204c1dca
commit 979806c56c

View File

@ -778,7 +778,7 @@ void RoomMgr::SendGetBattleData(std::vector<std::shared_ptr<cs::CMJoin>>& join_m
if (join_msgs.empty()) { if (join_msgs.empty()) {
abort(); abort();
} }
std::vector<BattleDataContext> result; std::shared_ptr<std::vector<BattleDataContext>> result = std::make_shared<std::vector<BattleDataContext>>();
bool is_old_version = false; bool is_old_version = false;
for (auto& msg : join_msgs) { for (auto& msg : join_msgs) {
if (msg->proto_version() < 2022032201) { if (msg->proto_version() < 2022032201) {
@ -787,37 +787,54 @@ void RoomMgr::SendGetBattleData(std::vector<std::shared_ptr<cs::CMJoin>>& join_m
} }
BattleDataContext context; BattleDataContext context;
context.join_msg = msg; context.join_msg = msg;
result.push_back(context); result->push_back(context);
} }
if (is_old_version) { if (is_old_version) {
cb(result); cb(*result);
} }
std::string url; {
JsonDataMgr::Instance()->GetApiUrl(url); std::string url;
if (!f8::IsOnlineEnv()) { JsonDataMgr::Instance()->GetApiUrl(url);
if (!f8::IsOnlineEnv()) {
#ifdef DEBUG #ifdef DEBUG
if (!is_old_version) { if (!is_old_version) {
url = "https://game2006api-test.kingsome.cn/new/webapp/index.php"; url = "https://game2006api-test.kingsome.cn/new/webapp/index.php";
} }
#endif #endif
}
if (url.find('?') != std::string::npos) {
url += "c=Battle&a=getBattleData";
} else {
url += "?c=Battle&a=getBattleData";
}
a8::MutableXObject* url_params = a8::MutableXObject::NewObject();
HttpProxy::Instance()->HttpGet
(
a8::XParams()
.SetSender(new std::shared_ptr<std::vector<BattleDataContext>>(result))
.SetParam1(new std::function<
void(std::vector<BattleDataContext>&)>(cb)),
[] (a8::XParams& param, a8::XObject& data)
{
auto result = (std::shared_ptr<std::vector<BattleDataContext>>*)param.sender.GetUserData();
auto cb = (std::function<
void(std::vector<BattleDataContext>&)>*)param.param1.GetUserData();
(*cb)(*result->get());
delete cb;
delete result;
},
[] (a8::XParams& param, const std::string& response)
{
auto result = (std::shared_ptr<std::vector<BattleDataContext>>*)param.sender.GetUserData();
auto cb = (std::function<
void(std::vector<BattleDataContext>&)>*)param.param1.GetUserData();
(*cb)(*result->get());
delete cb;
delete result;
},
url.c_str(),
*url_params
);
delete url_params;
} }
if (url.find('?') != std::string::npos) {
url += "c=Battle&a=getBattleData";
} else {
url += "?c=Battle&a=getBattleData";
}
a8::MutableXObject* url_params = a8::MutableXObject::NewObject();
HttpProxy::Instance()->HttpGet
(
a8::XParams(),
[] (a8::XParams& param, a8::XObject& data)
{
},
[] (a8::XParams& param, const std::string& response)
{
},
url.c_str(),
*url_params
);
delete url_params;
} }