修复奖杯问题

This commit is contained in:
aozhiwei 2019-07-30 17:26:12 +08:00
parent bdeb1f5ded
commit 1f80cc086e
6 changed files with 37 additions and 1 deletions

View File

@ -6,6 +6,8 @@
#include "room.h"
#include "app.h"
#include "framework/cpp/utils.h"
Android::Android():Human()
{
entity_type = kET_Player;

View File

@ -2218,7 +2218,12 @@ void Human::FillSMGameOver(cs::SMGameOver& msg)
p->set_player_avatar_url(avatar_url);
p->set_account_id(account_id);
p->set_kills(stats.kills);
MetaData::Cup* cup_meta = MetaMgr::Instance()->GetCup(stats.rank);
if (cup_meta) {
p->set_cup(cup_meta->i->icon());
} else {
p->set_cup(11 - stats.rank);
}
p->set_gold(stats.gold);
p->set_dead_times(stats.dead_times);

View File

@ -203,4 +203,9 @@ namespace MetaData
const metatable::TankSkin* i = nullptr;
};
struct Cup
{
const metatable::Cup* i = nullptr;
};
}

View File

@ -35,6 +35,8 @@ public:
std::list<MetaData::Tank> tank_list;
std::list<metatable::TankSkin> tanktank_meta_list;
std::list<MetaData::TankSkin> tankskin_list;
std::list<metatable::Cup> cup_meta_list;
std::list<MetaData::Cup> cup_list;
std::list<metatable::Driver> driver_meta_list;
std::list<MetaData::Driver> driver_list;
std::list<metatable::Skill> skill_meta_list;
@ -68,6 +70,7 @@ public:
std::map<std::string, std::tuple<int, int>> maptpl_size_hash;
std::map<int, MetaData::Tank*> tank_hash;
std::map<int, MetaData::TankSkin*> tankskin_hash;
std::map<int, MetaData::Cup*> cup_hash;
std::vector<int> tankid_list;
std::map<int, MetaData::Driver*> driver_hash;
std::map<int, MetaData::Skill*> skill_hash;
@ -100,6 +103,7 @@ public:
f8::ReadCsvMetaFile(res_path + "safearea@safearea.csv", safearea_meta_list);
f8::ReadCsvMetaFile(res_path + "tank@tank.csv", tank_meta_list);
f8::ReadCsvMetaFile(res_path + "tankskin@tankskin.csv", tanktank_meta_list);
f8::ReadCsvMetaFile(res_path + "cup@cup.csv", cup_meta_list);
f8::ReadCsvMetaFile(res_path + "driver@driver.csv", driver_meta_list);
f8::ReadCsvMetaFile(res_path + "item@item.csv", item_meta_list);
f8::ReadCsvMetaFile(res_path + "equip@equip.csv", equip_meta_list);
@ -238,6 +242,12 @@ private:
tankskin_hash[item.i->tank_id()] = &item;
}
for (auto& meta : cup_meta_list) {
MetaData::Cup& item = a8::FastAppend(cup_list);
item.i = &meta;
cup_hash[item.i->rank()] = &item;
}
for (auto& meta : driver_meta_list) {
MetaData::Driver& item = a8::FastAppend(driver_list);
item.i = &meta;
@ -538,6 +548,12 @@ MetaData::TankSkin* MetaMgr::GetTankSkin(int tank_id)
return itr != loader_->tankskin_hash.end() ? itr->second : nullptr;
}
MetaData::Cup* MetaMgr::GetCup(int rank)
{
auto itr = loader_->cup_hash.find(rank);
return itr != loader_->cup_hash.end() ? itr->second : nullptr;
}
int MetaMgr::RandTank()
{
return !loader_->tankid_list.empty() ? loader_->tankid_list[rand() % loader_->tankid_list.size()] : 0;

View File

@ -40,6 +40,7 @@ class MetaMgr : public a8::Singleton<MetaMgr>
MetaData::Driver* GetDriver(int driver_id);
MetaData::Tank* GetTank(int tank_id);
MetaData::TankSkin* GetTankSkin(int tank_id);
MetaData::Cup* GetCup(int rank);
int RandTank();
float GetRankRewardParam(int rank);
float GetKillRewardParam(int kill_num);

View File

@ -229,6 +229,13 @@ message TankSkin
required int32 id = 1;
optional int32 tank_id = 2;
}
message Cup
{
required int32 rank = 1;
optional int32 icon = 2;
}
//end
message DoorObjJson