This commit is contained in:
aozhiwei 2022-03-22 14:44:32 +08:00
parent ce11647e13
commit 594308575e
4 changed files with 55 additions and 55 deletions

View File

@ -10,51 +10,51 @@
void RawTeamMember::FillMFMatchTeamMember(cs::MFMatchTeamMember* p) void RawTeamMember::FillMFMatchTeamMember(cs::MFMatchTeamMember* p)
{ {
p->set_account_id(msg.account_id()); p->set_account_id(msg->account_id());
p->set_name(msg.name()); p->set_name(msg->name());
p->set_avatar_url(msg.avatar_url()); p->set_avatar_url(msg->avatar_url());
if (choose_hero_times <= 0) { if (choose_hero_times <= 0) {
p->set_hero_id(0); p->set_hero_id(0);
} else { } else {
p->set_hero_id(msg.hero_id()); p->set_hero_id(msg->hero_id());
*p->mutable_weapons() = msg.weapons(); *p->mutable_weapons() = msg->weapons();
*p->mutable_skins() = msg.skins(); *p->mutable_skins() = msg->skins();
*p->mutable_skill_list() = msg.skill_list(); *p->mutable_skill_list() = msg->skill_list();
*p->mutable_baseskin() = msg.baseskin(); *p->mutable_baseskin() = msg->baseskin();
} }
p->set_is_leader(is_leader); p->set_is_leader(is_leader);
p->set_state(state); p->set_state(state);
p->set_head_frame(msg.head_frame()); p->set_head_frame(msg->head_frame());
p->set_hero_skin(msg.hero_skin()); p->set_hero_skin(msg->hero_skin());
} }
void RawTeamMember::InitRobot() void RawTeamMember::InitRobot()
{ {
static long long robot_idx = 1000; static long long robot_idx = 1000;
msg.set_account_id(a8::Format("6000_2006_%d", {++robot_idx})); msg->set_account_id(a8::Format("6000_2006_%d", {++robot_idx}));
{ {
std::set<int> refreshed_robot_set; std::set<int> refreshed_robot_set;
robot_meta = MetaMgr::Instance()->RandRobot(refreshed_robot_set); robot_meta = MetaMgr::Instance()->RandRobot(refreshed_robot_set);
if (robot_meta) { if (robot_meta) {
msg.set_avatar_url(a8::Format("%s", {50001 + (robot_meta->i->id() % 3)})); msg->set_avatar_url(a8::Format("%s", {50001 + (robot_meta->i->id() % 3)}));
#if 1 #if 1
msg.set_hero_id(30100 + 100 * (robot_meta->i->id() % 3)); msg->set_hero_id(30100 + 100 * (robot_meta->i->id() % 3));
#else #else
msg.set_hero_id(robot_meta->i->hero_id()); msg->set_hero_id(robot_meta->i->hero_id());
#endif #endif
msg.set_name(robot_meta->i->name()); msg->set_name(robot_meta->i->name());
auto skin = msg.add_skins(); auto skin = msg->add_skins();
if (!robot_meta->skin_id.empty()) { if (!robot_meta->skin_id.empty()) {
skin->set_skin_id(robot_meta->skin_id[0]); skin->set_skin_id(robot_meta->skin_id[0]);
skin->set_skin_lv(1); skin->set_skin_lv(1);
} }
{ {
MetaData::Player* hero_meta = MetaMgr::Instance()->GetPlayer(msg.hero_id()); MetaData::Player* hero_meta = MetaMgr::Instance()->GetPlayer(msg->hero_id());
if (hero_meta) { if (hero_meta) {
MetaData::Item* skin_meta = MetaMgr::Instance()->GetHeroSkin(msg.hero_id()); MetaData::Item* skin_meta = MetaMgr::Instance()->GetHeroSkin(msg->hero_id());
if (skin_meta) { if (skin_meta) {
msg.set_hero_skin(skin_meta->i->id()); msg->set_hero_skin(skin_meta->i->id());
} }
} }
} }
@ -108,7 +108,7 @@ void MatchTeam::_CMMatchChoose(f8::MsgHdr& hdr, const cs::CMMatchChoose& msg)
hdr.socket_handle, hdr.socket_handle,
phase_, phase_,
GetTeamUUid(), GetTeamUUid(),
pair.second->msg.account_id(), pair.second->msg->account_id(),
pair.second->socket_handle pair.second->socket_handle
}); });
} }
@ -116,15 +116,15 @@ void MatchTeam::_CMMatchChoose(f8::MsgHdr& hdr, const cs::CMMatchChoose& msg)
#endif #endif
auto member = GetMemberBySocket(hdr.socket_handle); auto member = GetMemberBySocket(hdr.socket_handle);
if (member && master_team_->phase_ == kMatchChoose) { if (member && master_team_->phase_ == kMatchChoose) {
member->msg.set_hero_id(msg.hero_id()); member->msg->set_hero_id(msg.hero_id());
*member->msg.mutable_weapons() = msg.weapons(); *member->msg->mutable_weapons() = msg.weapons();
*member->msg.mutable_skins() = msg.skins(); *member->msg->mutable_skins() = msg.skins();
*member->msg.mutable_skill_list() = msg.skill_list(); *member->msg->mutable_skill_list() = msg.skill_list();
*member->msg.mutable_baseskin() = msg.baseskin(); *member->msg->mutable_baseskin() = msg.baseskin();
member->msg.set_hero_skin(msg.hero_skin()); member->msg->set_hero_skin(msg.hero_skin());
++member->choose_hero_times; ++member->choose_hero_times;
#ifdef DEBUG #ifdef DEBUG
a8::XPrintf("matchchoose %s\n", {member->msg.account_id()}); a8::XPrintf("matchchoose %s\n", {member->msg->account_id()});
#endif #endif
} }
} }
@ -136,7 +136,7 @@ void MatchTeam::_CMMatchStartGame(f8::MsgHdr& hdr, const cs::CMMatchStartGame& m
if (member) { if (member) {
member->state = kMatchPrepare; member->state = kMatchPrepare;
#ifdef DEBUG #ifdef DEBUG
a8::XPrintf("matchgamestart %s\n", {member->msg.account_id()}); a8::XPrintf("matchgamestart %s\n", {member->msg->account_id()});
#endif #endif
} }
} }
@ -149,7 +149,7 @@ void MatchTeam::_CMMatchCancelStartGame(f8::MsgHdr& hdr, const cs::CMMatchCancel
if (member) { if (member) {
member->state = kMatchReadying; member->state = kMatchReadying;
#ifdef DEBUG #ifdef DEBUG
a8::XPrintf("matchcancelgamestart %s\n", {member->msg.account_id()}); a8::XPrintf("matchcancelgamestart %s\n", {member->msg->account_id()});
#endif #endif
} }
} }
@ -163,14 +163,14 @@ void MatchTeam::_CMMatchSendMsg(f8::MsgHdr& hdr, const cs::CMMatchSendMsg& msg)
if (member->socket_handle != 0) { if (member->socket_handle != 0) {
bool found = false; bool found = false;
for (auto& target : msg.target_list()) { for (auto& target : msg.target_list()) {
if (target == member->msg.account_id()) { if (target == member->msg->account_id()) {
found = true; found = true;
break; break;
} }
} }
if (found) { if (found) {
cs::SMMatchMemberMsgNotify notifymsg; cs::SMMatchMemberMsgNotify notifymsg;
notifymsg.set_sender(sender->msg.account_id()); notifymsg.set_sender(sender->msg->account_id());
notifymsg.set_content(msg.content()); notifymsg.set_content(msg.content());
GGListener::Instance()->SendToClient(member->socket_handle, 0, notifymsg); GGListener::Instance()->SendToClient(member->socket_handle, 0, notifymsg);
} }
@ -186,9 +186,9 @@ void MatchTeam::_CMMatchBroadcastMsg(f8::MsgHdr& hdr, const cs::CMMatchBroadcast
for (auto member : master_team_->curr_member_hash_) { for (auto member : master_team_->curr_member_hash_) {
if (member->socket_handle != 0) { if (member->socket_handle != 0) {
if (!msg.exclude_self() || if (!msg.exclude_self() ||
(msg.exclude_self() && sender->msg.account_id() != member->msg.account_id())) { (msg.exclude_self() && sender->msg->account_id() != member->msg->account_id())) {
cs::SMMatchMemberMsgNotify notifymsg; cs::SMMatchMemberMsgNotify notifymsg;
notifymsg.set_sender(sender->msg.account_id()); notifymsg.set_sender(sender->msg->account_id());
notifymsg.set_content(msg.content()); notifymsg.set_content(msg.content());
GGListener::Instance()->SendToClient(member->socket_handle, 0, notifymsg); GGListener::Instance()->SendToClient(member->socket_handle, 0, notifymsg);
} }
@ -203,7 +203,7 @@ void MatchTeam::AddRawMember(f8::MsgHdr& hdr, const cs::CMJoin& msg)
member->team = this; member->team = this;
member->add_tick = a8::XGetTickCount(); member->add_tick = a8::XGetTickCount();
member->socket_handle = hdr.socket_handle; member->socket_handle = hdr.socket_handle;
member->msg = msg; *member->msg = msg;
raw_member_hash_[msg.account_id()] = member; raw_member_hash_[msg.account_id()] = member;
curr_member_hash_.push_back(member); curr_member_hash_.push_back(member);
if (!first_member_) { if (!first_member_) {
@ -235,15 +235,15 @@ bool MatchTeam::IsValidMember(const cs::CMJoin& msg)
if (msg.team_members().size() <= 0) { if (msg.team_members().size() <= 0) {
return false; return false;
} }
if (first_member_->msg.team_uuid() != msg.team_uuid()) { if (first_member_->msg->team_uuid() != msg.team_uuid()) {
return false; return false;
} }
if (first_member_->msg.team_members().size() != msg.team_members().size()) { if (first_member_->msg->team_members().size() != msg.team_members().size()) {
return false; return false;
} }
for (int i = 0; i < msg.team_members().size(); ++i) { for (int i = 0; i < msg.team_members().size(); ++i) {
auto& a = msg.team_members(i); auto& a = msg.team_members(i);
auto& b = first_member_->msg.team_members(i); auto& b = first_member_->msg->team_members(i);
if (a.account_id() != b.account_id()) { if (a.account_id() != b.account_id()) {
return false; return false;
} }
@ -400,7 +400,7 @@ bool MatchTeam::HasSameCurrMember(MatchTeam* b)
bool has = false; bool has = false;
for (auto& a_member : curr_member_hash_) { for (auto& a_member : curr_member_hash_) {
for (auto& b_member : b->curr_member_hash_) { for (auto& b_member : b->curr_member_hash_) {
if (a_member->msg.account_id() == b_member->msg.account_id()) { if (a_member->msg->account_id() == b_member->msg->account_id()) {
has = true; has = true;
break; break;
} }
@ -520,12 +520,12 @@ void MatchTeam::Combine(MatchTeam* b)
std::string MatchTeam::GetTeamUUid() std::string MatchTeam::GetTeamUUid()
{ {
return first_member_->msg.team_uuid(); return first_member_->msg->team_uuid();
} }
int MatchTeam::GetMapId() int MatchTeam::GetMapId()
{ {
return first_member_->msg.mapid(); return first_member_->msg->mapid();
} }
bool MatchTeam::IsShuaRobotTime() bool MatchTeam::IsShuaRobotTime()

View File

@ -32,7 +32,7 @@ struct RawTeamMember
class MatchTeam* team = nullptr; class MatchTeam* team = nullptr;
long long add_tick = 0; long long add_tick = 0;
int socket_handle = 0; int socket_handle = 0;
cs::CMJoin msg; std::shared_ptr<cs::CMJoin> msg;
bool is_robot = false; bool is_robot = false;
bool is_leader = false; bool is_leader = false;
int state = kMatchReadying; int state = kMatchReadying;

View File

@ -997,7 +997,7 @@ bool Room::CanJoin(class MatchTeam* team)
return false; return false;
} }
for (auto& member : team->GetCurrMembers()) { for (auto& member : team->GetCurrMembers()) {
if (GetPlayerByAccountId(member->msg.account_id())) { if (GetPlayerByAccountId(member->msg->account_id())) {
return false; return false;
} }
} }
@ -3937,7 +3937,7 @@ void Room::AddTeam(class MatchTeam* team)
} }
BornPoint* init_born_point = nullptr; BornPoint* init_born_point = nullptr;
for (auto& member : team->GetCurrMembers()) { for (auto& member : team->GetCurrMembers()) {
cs::CMJoin& msg = member->msg; cs::CMJoin& msg = *member->msg;
if (member->is_robot) { if (member->is_robot) {
MetaData::Robot* robot_meta = member->robot_meta; MetaData::Robot* robot_meta = member->robot_meta;
Android* hum = EntityFactory::Instance()->MakeAndroid(AllocUniid()); Android* hum = EntityFactory::Instance()->MakeAndroid(AllocUniid());
@ -3989,12 +3989,12 @@ void Room::AddTeam(class MatchTeam* team)
member->msg.add_baseskin(1); member->msg.add_baseskin(1);
#endif #endif
#endif #endif
hum->ProcPreSettlementInfo(member->msg.pre_settlement_info()); hum->ProcPreSettlementInfo(member->msg->pre_settlement_info());
PlayerMgr::Instance()-> PlayerMgr::Instance()->
CreatePlayerByCMJoin(hum, CreatePlayerByCMJoin(hum,
0,//hdr.ip_saddr, 0,//hdr.ip_saddr,
member->socket_handle, member->socket_handle,
member->msg *member->msg
); );
hum->meta = MetaMgr::Instance()->GetPlayer(msg.hero_id()); hum->meta = MetaMgr::Instance()->GetPlayer(msg.hero_id());
if (!hum->meta) { if (!hum->meta) {

View File

@ -343,17 +343,17 @@ Room* RoomMgr::GetJoinableRoom(MatchTeam* team)
} }
int game_times = 0; int game_times = 0;
RoomType_e self_room_type = RT_OldBrid1; RoomType_e self_room_type = RT_OldBrid1;
time_t register_time = f8::ExtractRegisterTimeFromSessionId(team->GetOwner()->msg.session_id()); time_t register_time = f8::ExtractRegisterTimeFromSessionId(team->GetOwner()->msg->session_id());
int proto_version = team->GetOwner()->msg.proto_version(); int proto_version = team->GetOwner()->msg->proto_version();
int channel = f8::ExtractChannelIdFromAccountId(team->GetOwner()->msg.account_id()); int channel = f8::ExtractChannelIdFromAccountId(team->GetOwner()->msg->account_id());
return CreateRoom(team->GetOwner()->msg, return CreateRoom(*team->GetOwner()->msg,
self_room_type, self_room_type,
game_times, game_times,
register_time, register_time,
proto_version, proto_version,
channel, channel,
team->GetOwner()->msg.mapid()); team->GetOwner()->msg->mapid());
} }
Room* RoomMgr::GetRoomByUuid(long long room_uuid) Room* RoomMgr::GetRoomByUuid(long long room_uuid)