1
This commit is contained in:
parent
23cd68823c
commit
9d3ee41f77
@ -613,17 +613,17 @@ void MatchTeam::StartGame()
|
||||
}
|
||||
std::string team_uuid = GetTeamUUid();
|
||||
auto cb =
|
||||
[team_uuid] (std::vector<BattleDataContext>& results)
|
||||
[team_uuid] (std::vector<std::shared_ptr<BattleDataContext>>& results)
|
||||
{
|
||||
MatchTeam* team = MatchMgr::Instance()->GetTeam(team_uuid);
|
||||
if (team) {
|
||||
for (auto context : results) {
|
||||
bool found = false;
|
||||
for (auto& member : team->GetCurrMembers()) {
|
||||
if (member->msg->account_id() == context.join_msg->account_id()){
|
||||
member->battle_uuid = context.battle_uuid;
|
||||
member->is_valid_battle = context.is_valid_battle;
|
||||
member->payload = context.payload;
|
||||
if (member->msg->account_id() == context->join_msg->account_id()){
|
||||
member->battle_uuid = context->battle_uuid;
|
||||
member->is_valid_battle = context->is_valid_battle;
|
||||
member->payload = context->payload;
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
|
@ -155,7 +155,7 @@ void RoomMgr::_CMJoin(f8::MsgHdr& hdr, const cs::CMJoin& msg)
|
||||
auto socket_handle = hdr.socket_handle;
|
||||
auto cb =
|
||||
[ip_saddr, socket_handle, join_msg]
|
||||
(std::vector<BattleDataContext>& results)
|
||||
(std::vector<std::shared_ptr<BattleDataContext>>& results)
|
||||
{
|
||||
cs::CMJoin& msg = *join_msg;
|
||||
if (RoomMgr::Instance()->IsLimitJoin()) {
|
||||
@ -186,9 +186,9 @@ void RoomMgr::_CMJoin(f8::MsgHdr& hdr, const cs::CMJoin& msg)
|
||||
Player* hum = room->NewPlayer();
|
||||
hum->proto_version = msg.proto_version();
|
||||
hum->hero_uniid = msg.hero_uniid();
|
||||
hum->battle_uuid = results.at(0).battle_uuid;
|
||||
hum->is_valid_battle = results.at(0).is_valid_battle;
|
||||
hum->payload = results.at(0).payload;
|
||||
hum->battle_uuid = results.at(0)->battle_uuid;
|
||||
hum->is_valid_battle = results.at(0)->is_valid_battle;
|
||||
hum->payload = results.at(0)->payload;
|
||||
hum->ProcPreSettlementInfo(msg.pre_settlement_info());
|
||||
PlayerMgr::Instance()->
|
||||
CreatePlayerByCMJoin(hum,
|
||||
@ -202,7 +202,7 @@ void RoomMgr::_CMJoin(f8::MsgHdr& hdr, const cs::CMJoin& msg)
|
||||
}
|
||||
hum->room = room;
|
||||
room->AddPlayer(hum);
|
||||
//hum->SetBattleContext(results.at(0));
|
||||
hum->SetBattleContext(results.at(0));
|
||||
hum->ProcPrepareItems(msg.prepare_items());
|
||||
hum->ProcPrepareItems2(msg.prepare_items2());
|
||||
hum->ProcSkillList(msg.skill_list());
|
||||
@ -724,12 +724,13 @@ void RoomMgr::TeamRoomTimeOut(const std::string& team_uuid)
|
||||
void RoomMgr::SendGetBattleData(int mode,
|
||||
std::vector<std::shared_ptr<cs::CMJoin>>& join_msgs,
|
||||
std::function<
|
||||
void(std::vector<BattleDataContext>&)> cb)
|
||||
void(std::vector<std::shared_ptr<BattleDataContext>>&)> cb)
|
||||
{
|
||||
if (join_msgs.empty()) {
|
||||
abort();
|
||||
}
|
||||
std::shared_ptr<std::vector<BattleDataContext>> result = std::make_shared<std::vector<BattleDataContext>>();
|
||||
std::shared_ptr<std::vector<std::shared_ptr<BattleDataContext>>> result =
|
||||
std::make_shared<std::vector<std::shared_ptr<BattleDataContext>>>();
|
||||
bool is_old_version = false;
|
||||
for (auto& msg : join_msgs) {
|
||||
BattleDataContext context;
|
||||
@ -737,7 +738,7 @@ void RoomMgr::SendGetBattleData(int mode,
|
||||
context.battle_uuid = App::Instance()->NewUuid();
|
||||
context.errcode = 100;
|
||||
context.errmsg = "";
|
||||
result->push_back(context);
|
||||
//result->push_back(context);
|
||||
if (msg->proto_version() < 2022032201) {
|
||||
is_old_version = true;
|
||||
break;
|
||||
@ -771,7 +772,7 @@ void RoomMgr::SendGetBattleData(int mode,
|
||||
member->SetVal("account_id", msg->account_id());
|
||||
member->SetVal("session_id", msg->session_id());
|
||||
member->SetVal("hero_uniid", msg->hero_uniid());
|
||||
member->SetVal("battle_uuid", result->at(i).battle_uuid);
|
||||
member->SetVal("battle_uuid", result->at(i)->battle_uuid);
|
||||
member->SetVal("weapon_uuid1",
|
||||
msg->weapons().size() > 0 ? msg->weapons(0).weapon_uniid() : "");
|
||||
member->SetVal("weapon_uuid2",
|
||||
@ -788,9 +789,9 @@ void RoomMgr::SendGetBattleData(int mode,
|
||||
HttpProxy::Instance()->HttpGet
|
||||
(
|
||||
a8::XParams()
|
||||
.SetSender(new std::shared_ptr<std::vector<BattleDataContext>>(result))
|
||||
.SetSender(new std::shared_ptr<std::vector<std::shared_ptr<BattleDataContext>>>(result))
|
||||
.SetParam1(new std::function<
|
||||
void(std::vector<BattleDataContext>&)>(cb)),
|
||||
void(std::vector<std::shared_ptr<BattleDataContext>>&)>(cb)),
|
||||
[] (a8::XParams& param, a8::XObject& data)
|
||||
{
|
||||
a8::UdpLog::Instance()->Info
|
||||
@ -798,9 +799,9 @@ void RoomMgr::SendGetBattleData(int mode,
|
||||
{
|
||||
data.ToJsonStr()
|
||||
});
|
||||
auto result = (std::shared_ptr<std::vector<BattleDataContext>>*)param.sender.GetUserData();
|
||||
auto result = (std::shared_ptr<std::vector<std::shared_ptr<BattleDataContext>>>*)param.sender.GetUserData();
|
||||
auto cb = (std::function<
|
||||
void(std::vector<BattleDataContext>&)>*)param.param1.GetUserData();
|
||||
void(std::vector<std::shared_ptr<BattleDataContext>>&)>*)param.param1.GetUserData();
|
||||
|
||||
if (data.GetType() == a8::XOT_OBJECT) {
|
||||
if (data.HasKey("members")) {
|
||||
@ -810,7 +811,7 @@ void RoomMgr::SendGetBattleData(int mode,
|
||||
auto& ctx = (*result->get()).at(i);
|
||||
auto member = members->At(i);
|
||||
if (member->GetType() == a8::XOT_OBJECT) {
|
||||
ctx.ParseResult(*member);
|
||||
ctx->ParseResult(*member);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -828,9 +829,9 @@ void RoomMgr::SendGetBattleData(int mode,
|
||||
{
|
||||
response
|
||||
});
|
||||
auto result = (std::shared_ptr<std::vector<BattleDataContext>>*)param.sender.GetUserData();
|
||||
auto result = (std::shared_ptr<std::vector<std::shared_ptr<BattleDataContext>>>*)param.sender.GetUserData();
|
||||
auto cb = (std::function<
|
||||
void(std::vector<BattleDataContext>&)>*)param.param1.GetUserData();
|
||||
void(std::vector<std::shared_ptr<BattleDataContext>>&)>*)param.param1.GetUserData();
|
||||
(*cb)(*result->get());
|
||||
for (auto& context : *result->get()) {
|
||||
}
|
||||
|
@ -74,7 +74,7 @@ class RoomMgr : public a8::Singleton<RoomMgr>
|
||||
void SendGetBattleData(int mode,
|
||||
std::vector<std::shared_ptr<cs::CMJoin>>& join_msgs,
|
||||
std::function<
|
||||
void(std::vector<std::BattleDataContext>&)> cb);
|
||||
void(std::vector<std::shared_ptr<BattleDataContext>>&)> cb);
|
||||
|
||||
private:
|
||||
void InstallReportStateTimer();
|
||||
|
Loading…
x
Reference in New Issue
Block a user