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

View File

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

View File

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

View File

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