diff --git a/server/gameserver/creature.h b/server/gameserver/creature.h index f9fb5e4..b404259 100644 --- a/server/gameserver/creature.h +++ b/server/gameserver/creature.h @@ -240,6 +240,8 @@ class Creature : public MoveableEntity std::string DebugOutBuffList(); bool CanFollow(Creature* follower); void FollowToTarget(); + int GetFollowTimes() { return follow_times_; }; + void IncFollowTimes() { ++follow_times_; }; protected: virtual void OnBuffRemove(Buff& buff); @@ -300,6 +302,7 @@ private: std::list> slave_heros_; std::list> slave_things_; xtimer_list* auto_switch_weapon_timer_ = nullptr; + int follow_times_ = 0; a8::Vec2 skill_dir_; float skill_param1 = 0; diff --git a/server/gameserver/human.h b/server/gameserver/human.h index 5ad9875..8d9ed6a 100644 --- a/server/gameserver/human.h +++ b/server/gameserver/human.h @@ -81,6 +81,7 @@ class Human : public Creature std::string session_id; std::string from_appid; std::string team_uuid; + int init_team_member_num = 1; bool auto_fill = false; int today_enter_times = 0; int account_registertime = 0; diff --git a/server/gameserver/metamgr.cc b/server/gameserver/metamgr.cc index 9db6d95..8ba08d2 100644 --- a/server/gameserver/metamgr.cc +++ b/server/gameserver/metamgr.cc @@ -368,11 +368,8 @@ public: METAMGR_READ(incubator_canset_distance, 520); METAMGR_READ(prebattle_can_use_skill, 1); - #ifdef DEBUG METAMGR_READ(watchable, 1); - #else - METAMGR_READ(watchable, 0); - #endif + METAMGR_READ(prebattle_combine_team, 1); METAMGR_READ(refresh_view_time, 4); { diff --git a/server/gameserver/metamgr.h b/server/gameserver/metamgr.h index ba5a6da..b01bfca 100644 --- a/server/gameserver/metamgr.h +++ b/server/gameserver/metamgr.h @@ -179,6 +179,7 @@ class MetaMgr : public a8::Singleton int prebattle_can_use_skill = 0; int watchable = 0; + int prebattle_combine_team = 1; private: MetaDataLoader* loader_ = nullptr; diff --git a/server/gameserver/player.cc b/server/gameserver/player.cc index 5a6e349..e3fe57c 100644 --- a/server/gameserver/player.cc +++ b/server/gameserver/player.cc @@ -1303,6 +1303,7 @@ void Player::UpdateFollow() } } } + IncFollowTimes(); follow = -1; } diff --git a/server/gameserver/roommgr.cc b/server/gameserver/roommgr.cc index 6431e8b..ad3e6f5 100644 --- a/server/gameserver/roommgr.cc +++ b/server/gameserver/roommgr.cc @@ -579,9 +579,6 @@ std::string RoomMgr::GenTeamHashData(const std::string& team_uuid, std::map* team_hash = nullptr; { auto itr = team_room_hash_.find(msg.team_uuid()); @@ -608,6 +605,7 @@ void RoomMgr::OnJoinRoomOk(const cs::CMJoin& msg, Player* hum) if (!team_hash) { abort(); } + hum->init_team_member_num = team_hash->size(); { auto itr = team_hash->find(hum->account_id); if (itr != team_hash->end()) { diff --git a/server/gameserver/team.cc b/server/gameserver/team.cc index 1339963..9aa2a17 100644 --- a/server/gameserver/team.cc +++ b/server/gameserver/team.cc @@ -48,6 +48,9 @@ void Team::AddMember(Human* member) member->team_id = team_id_; member->SetTeam(this); members_.insert(member); + if (member->GetFollowTimes() <= 0) { + + } } bool Team::IsFull() diff --git a/server/gameserver/team.h b/server/gameserver/team.h index a4d2e93..7e2a45d 100644 --- a/server/gameserver/team.h +++ b/server/gameserver/team.h @@ -20,8 +20,10 @@ class Team void CombineBornPoint(); void CombineTeam(Team* b_team); Human* GetMemberByUniId(int member_id); + int GetInitTeamMemberNum() { return init_team_member_num_; }; private: int team_id_ = 0; + int init_team_member_num_ = 0; std::set members_; };