diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 88a9312..8375fdb 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -2063,7 +2063,9 @@ void Human::GenBattleReportData(a8::MutableXObject* params) } { stats.pass_score = MetaMgr::Instance()->GetKillPointParam1(stats.kills); - stats.rank_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); } params->SetVal("score", 0); params->SetVal("pass_score", has_pass ? stats.pass_score * 2 : stats.pass_score); diff --git a/server/gameserver/metadata.h b/server/gameserver/metadata.h index 9fe3760..8521497 100755 --- a/server/gameserver/metadata.h +++ b/server/gameserver/metadata.h @@ -170,6 +170,11 @@ namespace MetaData const metatable::KillReward* i = nullptr; }; + struct RankPoint + { + const metatable::RankPoint* i = nullptr; + }; + struct KillPoint { const metatable::KillPoint* i = nullptr; diff --git a/server/gameserver/metamgr.cc b/server/gameserver/metamgr.cc index e5c4dd0..b471462 100755 --- a/server/gameserver/metamgr.cc +++ b/server/gameserver/metamgr.cc @@ -43,6 +43,8 @@ public: std::list equipupgrade_list; std::list killreward_meta_list; std::list killreward_list; + std::list rankpoint_meta_list; + std::list rankpoint_list; std::list killpoint_meta_list; std::list killpoint_list; std::list robot_meta_list; @@ -64,6 +66,7 @@ public: std::map skill_hash; std::map rankreward_hash; std::map killreward_hash; + std::map rankpoint_hash; std::map killpoint_hash; std::map equipupgrade_hash; std::map robot_hash; @@ -102,6 +105,7 @@ public: f8::ReadCsvMetaFile(res_path + "rankReward@rankReward.csv", rankreward_meta_list); f8::ReadCsvMetaFile(res_path + "killReward@killReward.csv", killreward_meta_list); f8::ReadCsvMetaFile(res_path + "killPoint@killPoint.csv", killpoint_meta_list); + f8::ReadCsvMetaFile(res_path + "rankPoint@rankPoint.csv", rankpoint_meta_list); f8::ReadCsvMetaFile(res_path + "equipUpgrade@equipUpgrade.csv", equipupgrade_meta_list); f8::ReadCsvMetaFile(res_path + "robot@robot.csv", robot_meta_list); BindToMetaData(); @@ -264,6 +268,12 @@ private: killpoint_hash[item.i->kill_num()] = &item; } + for (auto& meta : rankpoint_meta_list) { + MetaData::RankPoint& item = a8::FastAppend(rankpoint_list); + item.i = &meta; + rankpoint_hash[item.i->rank()] = &item; + } + for (auto& meta : equipupgrade_meta_list) { MetaData::EquipUpgrade& item = a8::FastAppend(equipupgrade_list); item.i = &meta; @@ -419,6 +429,18 @@ float MetaMgr::GetKillRewardParam(int kill_num) return itr != loader_->killreward_hash.end() ? itr->second->i->parameter() : 0.0f; } +int MetaMgr::GetRankPointParam1(int rank) +{ + auto itr = loader_->rankpoint_hash.find(rank); + return itr != loader_->rankpoint_hash.end() ? itr->second->i->parameter() : 0; +} + +int MetaMgr::GetRankPointParam2(int rank) +{ + auto itr = loader_->rankpoint_hash.find(rank); + return itr != loader_->rankpoint_hash.end() ? itr->second->i->parameter2() : 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 54a4d4a..c068ce1 100755 --- a/server/gameserver/metamgr.h +++ b/server/gameserver/metamgr.h @@ -35,6 +35,8 @@ class MetaMgr : public a8::Singleton MetaData::Dress* GetDress(int dress_id); float GetRankRewardParam(int rank); float GetKillRewardParam(int kill_num); + int GetRankPointParam1(int rank); + int GetRankPointParam2(int rank); int GetKillPointParam1(int kill_num); int GetKillPointParam2(int kill_num); std::vector* GetRobotList(); diff --git a/server/tools/protobuild/metatable.proto b/server/tools/protobuild/metatable.proto index 9a16c0d..bf8bd50 100755 --- a/server/tools/protobuild/metatable.proto +++ b/server/tools/protobuild/metatable.proto @@ -165,6 +165,13 @@ message RankReward optional float parameter = 2; } +message RankPoint +{ + optional int32 rank = 1; + optional int32 parameter = 2; + optional int32 parameter2 = 3; +} + message KillReward { optional int32 kill_num = 1;