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::list<metatable::MapTplThingJson>> maptpl_meta_hash;
|
||||||
std::map<std::string, std::vector<MetaData::MapTplThing>> maptpl_hash;
|
std::map<std::string, std::vector<MetaData::MapTplThing>> maptpl_hash;
|
||||||
std::map<int, MetaData::Dress*> dress_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::Skill*> skill_hash;
|
||||||
std::map<int, MetaData::RankReward*> rankreward_hash;
|
std::map<int, MetaData::RankReward*> rankreward_hash;
|
||||||
std::map<int, MetaData::KillReward*> killreward_hash;
|
std::map<int, MetaData::KillReward*> killreward_hash;
|
||||||
@ -262,6 +263,7 @@ private:
|
|||||||
MetaData::Dress& item = a8::FastAppend(dress_list);
|
MetaData::Dress& item = a8::FastAppend(dress_list);
|
||||||
item.i = &meta;
|
item.i = &meta;
|
||||||
dress_hash[item.i->id()] = &item;
|
dress_hash[item.i->id()] = &item;
|
||||||
|
dress_vec.push_back(&item);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (auto& meta : skill_meta_list) {
|
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;
|
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)
|
float MetaMgr::GetRankRewardParam(int rank)
|
||||||
{
|
{
|
||||||
auto itr = loader_->rankreward_hash.find(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::AirLine* RandAirLine(int map_id);
|
||||||
MetaData::Skill* GetSkill(int skill_id);
|
MetaData::Skill* GetSkill(int skill_id);
|
||||||
MetaData::Dress* GetDress(int dress_id);
|
MetaData::Dress* GetDress(int dress_id);
|
||||||
|
MetaData::Dress* RandDress();
|
||||||
float GetRankRewardParam(int rank);
|
float GetRankRewardParam(int rank);
|
||||||
float GetKillRewardParam(int kill_num);
|
float GetKillRewardParam(int kill_num);
|
||||||
int GetRankPointParam1(int rank);
|
int GetRankPointParam1(int rank);
|
||||||
|
@ -242,6 +242,10 @@ void Room::CreateAndroid(int robot_num)
|
|||||||
if (!hum_meta) {
|
if (!hum_meta) {
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
|
if (robot_num <= 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
int rnd_skin_robot_idx = rand() % robot_num;
|
||||||
for (int i = 0; i < robot_num; ++i) {
|
for (int i = 0; i < robot_num; ++i) {
|
||||||
if (human_hash_.size() >= ROOM_MAX_PLAYER_NUM) {
|
if (human_hash_.size() >= ROOM_MAX_PLAYER_NUM) {
|
||||||
return;
|
return;
|
||||||
@ -281,6 +285,13 @@ void Room::CreateAndroid(int robot_num)
|
|||||||
|
|
||||||
hum->room = this;
|
hum->room = this;
|
||||||
hum->Initialize();
|
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;
|
uniid_hash_[hum->entity_uniid] = hum;
|
||||||
moveable_hash_[hum->entity_uniid] = hum;
|
moveable_hash_[hum->entity_uniid] = hum;
|
||||||
human_hash_[hum->entity_uniid] = hum;
|
human_hash_[hum->entity_uniid] = hum;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user