diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index e120661..6eb3baf 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -2077,7 +2077,11 @@ void Human::GenBattleReportData(a8::MutableXObject* params) stats.pass_score = MetaMgr::Instance()->GetKillPointParam1(stats.kills); stats.pass_score += MetaMgr::Instance()->GetRankPointParam1(rank); stats.rank_score = MetaMgr::Instance()->GetKillPointParam2(stats.kills); - stats.rank_score += MetaMgr::Instance()->GetRankPointParam2(rank); + if (room->IsMiniRoom()) { + stats.rank_score += MetaMgr::Instance()->GetRankPointParam3(rank); + } else { + stats.rank_score += MetaMgr::Instance()->GetRankPointParam2(rank); + } } params->SetVal("score", 0); params->SetVal("pass_score", has_pass ? stats.pass_score * 2 : stats.pass_score); diff --git a/server/gameserver/metamgr.cc b/server/gameserver/metamgr.cc index fb94815..78c6946 100755 --- a/server/gameserver/metamgr.cc +++ b/server/gameserver/metamgr.cc @@ -701,6 +701,12 @@ int MetaMgr::GetRankPointParam2(int rank) return itr != loader_->rankpoint_hash.end() ? itr->second->i->parameter2() : 0; } +int MetaMgr::GetRankPointParam3(int rank) +{ + auto itr = loader_->rankpoint_hash.find(rank); + return itr != loader_->rankpoint_hash.end() ? itr->second->i->parameter3() : 0; +} + int MetaMgr::GetKillPointParam1(int kill_num) { auto itr = loader_->killpoint_hash.find(kill_num); diff --git a/server/gameserver/metamgr.h b/server/gameserver/metamgr.h index da923ec..8529a06 100755 --- a/server/gameserver/metamgr.h +++ b/server/gameserver/metamgr.h @@ -42,6 +42,7 @@ class MetaMgr : public a8::Singleton float GetKillRewardParam(int kill_num); int GetRankPointParam1(int rank); int GetRankPointParam2(int rank); + int GetRankPointParam3(int rank); int GetKillPointParam1(int kill_num); int GetKillPointParam2(int kill_num); MetaData::Robot* RandRobot(std::set& refreshed_robot_set); diff --git a/server/gameserver/room.h b/server/gameserver/room.h index 8810a28..92f3c21 100644 --- a/server/gameserver/room.h +++ b/server/gameserver/room.h @@ -122,6 +122,7 @@ public: void GetAlivePlayers(std::vector& humans, size_t num); int GetCanShuaNum(int shua_num); void AdjustPosInnerMap(a8::Vec2& pos, float radius); + bool IsMiniRoom(); private: int AllocUniid(); @@ -196,7 +197,6 @@ private: void CheckShowHand(); void ShowHand(); void ShuaLastGas(); - bool IsMiniRoom(); size_t GetRoomMaxPlayerNum(); #ifdef DEBUG diff --git a/server/tools/protobuild/metatable.proto b/server/tools/protobuild/metatable.proto index c3ed78e..af4c34f 100755 --- a/server/tools/protobuild/metatable.proto +++ b/server/tools/protobuild/metatable.proto @@ -220,6 +220,7 @@ message RankPoint optional int32 rank = 1; optional int32 parameter = 2; optional int32 parameter2 = 3; + optional int32 parameter3 = 4; } message KillReward