1
This commit is contained in:
parent
4024b5737b
commit
0940d8be4c
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user