This commit is contained in:
aozhiwei 2024-03-26 11:10:40 +08:00
parent 07c1b2a46d
commit fc798a01a3

View File

@ -533,78 +533,7 @@ void RoomMgr::_CMJoinCustomBattle(f8::MsgHdr* hdr, const cs::CMJoin& msg, int cu
RoomMgr::Instance()->JoinErrorHandle(msg, 3, socket_handle); RoomMgr::Instance()->JoinErrorHandle(msg, 3, socket_handle);
return; return;
} }
#if 1
p->OnEnter(join_msg, ip_saddr, socket_handle, sd_handler); p->OnEnter(join_msg, ip_saddr, socket_handle, sd_handler);
#else
if (p->GetRoom()) {
if (p->GetRoom()->GetGasData().GetGasMode() != GasInactive) {
return;
}
auto hum = p->GetRoom()->GetPlayerByAccountId(join_msg->account_id());
if (hum) {
hum->ReJoin(ip_saddr, socket_handle);
}
return;
}
int game_times = 0;
RoomType_e self_room_type = p->GetRoomType();
time_t register_time = f8::ExtractRegisterTimeFromSessionId(msg.session_id());
int proto_version = msg.proto_version();
int channel = f8::ExtractChannelIdFromAccountId(msg.account_id());
std::shared_ptr<Room> room = nullptr;
if (p->IsNormalMode()) {
room = RoomMgr::Instance()->GetJoinableRoom(p);
if (!room) {
if (p->IsPvp()) {
room = RoomMgr::Instance()->CreateRoom
(self_room_type,
game_times,
register_time,
join_msg->proto_version(),
channel,
p->GetMapId(),
p->GetRoomMode(),
nullptr);
} else {
room = RoomMgr::Instance()->CreateRoom
(self_room_type,
game_times,
register_time,
join_msg->proto_version(),
channel,
p->GetMapId(),
p->GetRoomMode(),
nullptr);
}
}
p->SetRoom(room.get());
room->JoinWithCustomBattle(ip_saddr, socket_handle, join_msg, p);
} else {
if (p->IsPvp()) {
room = RoomMgr::Instance()->CreateRoom
(self_room_type,
game_times,
register_time,
join_msg->proto_version(),
channel,
p->GetMapId(),
p->GetRoomMode(),
p);
} else {
room = RoomMgr::Instance()->CreateRoom
(self_room_type,
game_times,
register_time,
join_msg->proto_version(),
channel,
p->GetMapId(),
p->GetRoomMode(),
nullptr);
}
p->SetRoom(room.get());
room->InitWithCustomBattle(ip_saddr, socket_handle, join_msg, p);
}
#endif
}; };
SendGetCustomBattleData(join_msg, cb, custom_room_type); SendGetCustomBattleData(join_msg, cb, custom_room_type);
} }
@ -669,6 +598,7 @@ void RoomMgr::SendGetCustomBattleData(std::shared_ptr<cs::CMJoin> join_msg,
auto url_params = a8::MutableXObject::CreateObject(); auto url_params = a8::MutableXObject::CreateObject();
url_params->SetVal("account_id", join_msg->account_id()); url_params->SetVal("account_id", join_msg->account_id());
url_params->SetVal("session_id", join_msg->session_id()); url_params->SetVal("session_id", join_msg->session_id());
url_params->SetVal("version", 1);
url_params->SetVal("__POST", join_msg->payload_data()); url_params->SetVal("__POST", join_msg->payload_data());
HttpProxy::Instance()->HttpGet HttpProxy::Instance()->HttpGet
( (