This commit is contained in:
aozhiwei 2020-01-15 11:37:07 +08:00
parent 4024b5737b
commit 0940d8be4c
3 changed files with 22 additions and 0 deletions

View File

@ -63,6 +63,7 @@ public:
std::map<std::string, std::list<metatable::MapTplThingJson>> maptpl_meta_hash;
std::map<std::string, std::vector<MetaData::MapTplThing>> maptpl_hash;
std::map<int, MetaData::Dress*> dress_hash;
std::vector<MetaData::Dress*> dress_vec;
std::map<int, MetaData::Skill*> skill_hash;
std::map<int, MetaData::RankReward*> rankreward_hash;
std::map<int, MetaData::KillReward*> killreward_hash;
@ -262,6 +263,7 @@ private:
MetaData::Dress& item = a8::FastAppend(dress_list);
item.i = &meta;
dress_hash[item.i->id()] = &item;
dress_vec.push_back(&item);
}
for (auto& meta : skill_meta_list) {
@ -440,6 +442,14 @@ MetaData::Dress* MetaMgr::GetDress(int dress_id)
return itr != loader_->dress_hash.end() ? itr->second : nullptr;
}
MetaData::Dress* MetaMgr::RandDress()
{
if (loader_->dress_vec.empty()) {
return nullptr;
}
return loader_->dress_vec[rand() % loader_->dress_vec.size()];
}
float MetaMgr::GetRankRewardParam(int rank)
{
auto itr = loader_->rankreward_hash.find(rank);

View File

@ -33,6 +33,7 @@ class MetaMgr : public a8::Singleton<MetaMgr>
MetaData::AirLine* RandAirLine(int map_id);
MetaData::Skill* GetSkill(int skill_id);
MetaData::Dress* GetDress(int dress_id);
MetaData::Dress* RandDress();
float GetRankRewardParam(int rank);
float GetKillRewardParam(int kill_num);
int GetRankPointParam1(int rank);

View File

@ -242,6 +242,10 @@ void Room::CreateAndroid(int robot_num)
if (!hum_meta) {
abort();
}
if (robot_num <= 0) {
return;
}
int rnd_skin_robot_idx = rand() % robot_num;
for (int i = 0; i < robot_num; ++i) {
if (human_hash_.size() >= ROOM_MAX_PLAYER_NUM) {
return;
@ -281,6 +285,13 @@ void Room::CreateAndroid(int robot_num)
hum->room = this;
hum->Initialize();
if (rnd_skin_robot_idx == i) {
MetaData::Dress* skin_meta = MetaMgr::Instance()->RandDress();
if (skin_meta) {
hum->skin_meta = skin_meta;
hum->SetSkinInfo(skin_meta->i->id());
}
}
uniid_hash_[hum->entity_uniid] = hum;
moveable_hash_[hum->entity_uniid] = hum;
human_hash_[hum->entity_uniid] = hum;