1
This commit is contained in:
parent
ce11647e13
commit
594308575e
@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -105,26 +105,26 @@ void MatchTeam::_CMMatchChoose(f8::MsgHdr& hdr, const cs::CMMatchChoose& msg)
|
||||
for (auto& pair : raw_member_hash_) {
|
||||
a8::XPrintf("cmmatchchoose member %d:%d:%s %s:%d\n",
|
||||
{
|
||||
hdr.socket_handle,
|
||||
phase_,
|
||||
GetTeamUUid(),
|
||||
pair.second->msg.account_id(),
|
||||
pair.second->socket_handle
|
||||
});
|
||||
hdr.socket_handle,
|
||||
phase_,
|
||||
GetTeamUUid(),
|
||||
pair.second->msg->account_id(),
|
||||
pair.second->socket_handle
|
||||
});
|
||||
}
|
||||
}
|
||||
#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()
|
||||
|
@ -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;
|
||||
|
@ -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) {
|
||||
|
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user