From 5be77cc9ae192937eb841e5219fcc53d25b6b824 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 28 Sep 2021 11:11:44 +0000 Subject: [PATCH] 1 --- server/gameserver/creature.h | 1 + server/gameserver/matchteam.cc | 6 +++--- server/gameserver/metamgr.cc | 2 +- server/gameserver/player.cc | 2 +- server/gameserver/playermgr.cc | 10 +++++++--- server/gameserver/room.cc | 8 ++++++++ server/tools/protobuild/cs_proto.proto | 2 ++ 7 files changed, 23 insertions(+), 8 deletions(-) diff --git a/server/gameserver/creature.h b/server/gameserver/creature.h index 07de22e..f9cfd44 100644 --- a/server/gameserver/creature.h +++ b/server/gameserver/creature.h @@ -14,6 +14,7 @@ enum CreatureStatus CS_Disable = 2, CS_Collisioning = 3, CS_DisableAttack = 8, + CS_ForceTeam = 9, CS_End }; diff --git a/server/gameserver/matchteam.cc b/server/gameserver/matchteam.cc index 65c9f26..13b27e6 100644 --- a/server/gameserver/matchteam.cc +++ b/server/gameserver/matchteam.cc @@ -157,6 +157,9 @@ void MatchTeam::Update() UpdateSlave(); } master_team_->SyncMatchInfo(); + if (phase_ == kMatchStartGame) { + StartGame(); + } } void MatchTeam::SyncMatchInfo() @@ -247,7 +250,6 @@ void MatchTeam::UpdateMaster() if (phase_left_time_ <= 0) { phase_ = kMatchStartGame; phase_start_tick_ = a8::XGetTickCount(); - StartGame(); } } break; @@ -404,7 +406,6 @@ void MatchTeam::ShuaRobot() void MatchTeam::StartGame() { - #if 0 RoomMgr::Instance()->JoinTeam(this); for (auto& member : curr_member_hash_) { if (member->socket_handle != 0) { @@ -415,7 +416,6 @@ void MatchTeam::StartGame() MatchMgr::Instance()->RemoveTeam(pair.first); } MatchMgr::Instance()->RemoveTeam(GetTeamUUid()); - #endif } void MatchTeam::ChooseLeader() diff --git a/server/gameserver/metamgr.cc b/server/gameserver/metamgr.cc index 2161bf4..1be103c 100644 --- a/server/gameserver/metamgr.cc +++ b/server/gameserver/metamgr.cc @@ -348,7 +348,7 @@ public: #ifdef DEBUG MetaMgr::Instance()->match_team_time = 10; MetaMgr::Instance()->match_robot_time = 5; - MetaMgr::Instance()->match_choose_time = 30; + MetaMgr::Instance()->match_choose_time = 15; MetaMgr::Instance()->match_lock_time = 10; #endif { diff --git a/server/gameserver/player.cc b/server/gameserver/player.cc index 62c64e6..8dd1862 100644 --- a/server/gameserver/player.cc +++ b/server/gameserver/player.cc @@ -1178,7 +1178,7 @@ void Player::InternalAdOk() void Player::PushJoinRoomMsg() { - { + if (!a8::HasBitFlag(status, CS_ForceTeam)) { cs::SMJoinedNotify notifymsg; notifymsg.set_error_code(0); notifymsg.set_room_mode((int)room->GetRoomMode()); diff --git a/server/gameserver/playermgr.cc b/server/gameserver/playermgr.cc index d8bbf1b..56daecb 100644 --- a/server/gameserver/playermgr.cc +++ b/server/gameserver/playermgr.cc @@ -101,11 +101,15 @@ Player* PlayerMgr::CreatePlayerByCMJoin(Player* hum, hum->grow_weapon.ammo = weapon.ammo(); } } - for (auto& skin : msg.skins()) { - if (skin.skin_id() != 0 && skin.skin_lv() > 0) { - hum->skin_configs[skin.skin_id()] = skin.skin_lv(); + #if 1 + { + for (auto& skin : msg.skins()) { + if (skin.skin_id() != 0 && skin.skin_lv() > 0) { + hum->skin_configs[skin.skin_id()] = skin.skin_lv(); + } } } + #endif #if 1 { int idx = 0; diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index ed27b0c..66c9b31 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -3916,6 +3916,9 @@ void Room::AddTeam(class MatchTeam* team) if (member->is_robot) { MetaData::Robot* robot_meta = member->robot_meta; Android* hum = EntityFactory::Instance()->MakeAndroid(AllocUniid()); + #if 1 + a8::SetBitFlag(hum->status, CS_ForceTeam); + #endif hum->name = robot_meta->i->name(); hum->meta = MetaMgr::Instance()->GetPlayer(robot_meta->i->hero_id()); hum->robot_meta = robot_meta; @@ -3954,6 +3957,11 @@ void Room::AddTeam(class MatchTeam* team) new_team->AddMember(hum); } else { Player* hum = NewPlayer(); + #if 1 + a8::SetBitFlag(hum->status, CS_ForceTeam); + member->msg.mutable_baseskin()->Clear(); + member->msg.add_baseskin(1); + #endif hum->ProcPreSettlementInfo(member->msg.pre_settlement_info()); PlayerMgr::Instance()-> CreatePlayerByCMJoin(hum, diff --git a/server/tools/protobuild/cs_proto.proto b/server/tools/protobuild/cs_proto.proto index 85dcf79..e78786c 100755 --- a/server/tools/protobuild/cs_proto.proto +++ b/server/tools/protobuild/cs_proto.proto @@ -880,6 +880,7 @@ message MFMatchTeamMember optional bool is_leader = 8; //是否队长 optional int32 state = 9; //0:准备 1:已准备 optional int32 head = 10; //头像框 + repeated int32 baseskin = 11; //皮肤id } //该消息每秒同步 @@ -1108,6 +1109,7 @@ message CMMatchChoose repeated MFWeapon weapons = 2; //武器列表 repeated MFSkin skins = 3; //皮肤列表 key: 皮肤id value:皮肤等级 repeated MFPair skill_list = 4; //技能列表 key:技能id value:预留给之后扩展,目前传0就行 + repeated int32 baseskin = 5; //皮肤id } //组队匹配-出击