This commit is contained in:
aozhiwei 2021-09-28 12:36:55 +00:00
parent 72db3ca30b
commit d5e50db1c5
7 changed files with 63 additions and 2 deletions

View File

@ -25,6 +25,7 @@ void RawTeamMember::FillMFMatchTeamMember(cs::MFMatchTeamMember* p)
p->set_is_leader(is_leader);
p->set_state(state);
p->set_head(msg.head());
p->set_hero_skin(msg.hero_skin());
}
void RawTeamMember::InitRobot()
@ -36,13 +37,26 @@ void RawTeamMember::InitRobot()
std::set<int> refreshed_robot_set;
robot_meta = MetaMgr::Instance()->RandRobot(refreshed_robot_set);
if (robot_meta) {
#if 1
msg.set_hero_id(30100);
#else
msg.set_hero_id(robot_meta->i->hero_id());
#endif
msg.set_name(robot_meta->i->name());
auto skin = msg.add_skins();
if (!robot_meta->skin_id.empty()) {
skin->set_skin_id(robot_meta->skin_id[0]);
skin->set_skin_lv(1);
}
{
MetaData::Player* hero_meta = MetaMgr::Instance()->GetPlayer(msg.hero_id());
if (hero_meta) {
MetaData::PlayerSkin* skin_meta = MetaMgr::Instance()->GetPlayerSkin(hero_meta->i->skinlist());
if (skin_meta) {
msg.set_hero_skin(skin_meta->i->id());
}
}
}
} else {
abort();
}
@ -85,7 +99,8 @@ void MatchTeam::_CMMatchChoose(f8::MsgHdr& hdr, const cs::CMMatchChoose& msg)
*member->msg.mutable_weapons() = msg.weapons();
*member->msg.mutable_skins() = msg.skins();
*member->msg.mutable_skill_list() = msg.skill_list();
*member->msg.mutable_baseskin() = msg.baseskin();
*member->msg.mutable_baseskin() = msg.baseskin();
member->msg.set_hero_skin(msg.hero_skin());
++member->choose_hero_times;
}
}

View File

@ -535,6 +535,11 @@ namespace MetaData
}
}
void PlayerSkin::Init()
{
}
void Robot::Init()
{
{

View File

@ -128,6 +128,13 @@ namespace MetaData
void Init();
};
struct PlayerSkin
{
const metatable::PlayerSkin* i = nullptr;
void Init();
};
struct Robot
{
const metatable::Robot* i = nullptr;

View File

@ -153,6 +153,8 @@ public:
std::list<MetaData::Equip> equip_list;
std::list<metatable::Player> player_meta_list;
std::list<MetaData::Player> player_list;
std::list<metatable::PlayerSkin> playerskin_meta_list;
std::list<MetaData::PlayerSkin> playerskin_list;
std::list<metatable::MapThing> mapthing_meta_list;
std::list<MetaData::MapThing> mapthing_list;
std::list<metatable::BuildingJson> building_meta_list;
@ -200,6 +202,7 @@ public:
std::map<int, MetaData::Equip*> equip_hash;
std::map<int, MetaData::Equip*> equip_slot_hash;
std::map<int, MetaData::Player*> player_hash;
std::map<int, MetaData::PlayerSkin*> playerskin_hash;
std::map<int, MetaData::MapThing*> mapthing_hash;
std::map<int, MetaData::Building*> building_hash;
std::map<int, MetaData::Drop*> drop_hash;
@ -256,7 +259,7 @@ public:
f8::ReadCsvMetaFile(res_path + "buff@buff.csv", buff_meta_list);
f8::ReadCsvMetaFile(res_path + "equip@equip.csv", equip_meta_list);
f8::ReadCsvMetaFile(res_path + "player@player.csv", player_meta_list);
f8::ReadCsvMetaFile(res_path + "player@player.csv", player_meta_list);
f8::ReadCsvMetaFile(res_path + "playerskin@playerskin.csv", playerskin_meta_list);
f8::ReadCsvMetaFile(res_path + "mapThing@mapThing.csv", mapthing_meta_list);
f8::ReadCsvMetaFile(res_path + "drop@drop.csv", drop_meta_list);
f8::ReadCsvMetaFile(res_path + "airdrop@airdrop.csv", airdrop_meta_list);
@ -748,6 +751,13 @@ private:
player_hash[item.i->id()] = &item;
}
for (auto& meta : playerskin_meta_list) {
MetaData::PlayerSkin& item = a8::FastAppend(playerskin_list);
item.i = &meta;
item.Init();
playerskin_hash[item.i->id()] = &item;
}
for (auto& meta : mapthing_meta_list) {
MetaData::MapThing& item = a8::FastAppend(mapthing_list);
item.i = &meta;
@ -945,6 +955,18 @@ MetaData::Player* MetaMgr::GetPlayer(int id)
return itr != loader_->player_hash.end() ? itr->second : nullptr;
}
MetaData::PlayerSkin* MetaMgr::GetPlayerSkin(int id)
{
auto itr = loader_->playerskin_hash.find(id);
return itr != loader_->playerskin_hash.end() ? itr->second : nullptr;
}
std::shared_ptr<std::vector<MetaData::PlayerSkin*>> MetaMgr::GetHeroSkins(int hero_id)
{
std::shared_ptr<std::vector<MetaData::PlayerSkin*>> p;
return p;
}
MetaData::Equip* MetaMgr::GetEquip(int id)
{
auto itr = loader_->equip_hash.find(id);

View File

@ -25,6 +25,8 @@ class MetaMgr : public a8::Singleton<MetaMgr>
std::list<MetaData::Map>* GetMaps();
MetaData::MapThing* GetMapThing(int mapthing_id);
MetaData::Player* GetPlayer(int id);
MetaData::PlayerSkin* GetPlayerSkin(int id);
std::shared_ptr<std::vector<MetaData::PlayerSkin*>> GetHeroSkins(int hero_id);
MetaData::Equip* GetEquip(int id);
MetaData::Equip* GetEquipBySlotId(int slot_id);
MetaData::EquipUpgrade* GetEquipUpgrade(int equip_id);

View File

@ -948,6 +948,7 @@ message CMJoin
UI时回复SMShowTeamUI
*/
optional int32 show_team_ui = 62;
optional int32 hero_skin = 63; //
}
//线

View File

@ -220,6 +220,15 @@ message Player
optional int32 delay_delete = 39;
optional int32 ai = 46;
optional int32 delay_remove = 47;
optional int32 skinlist = 48;
}
message PlayerSkin
{
optional int32 id = 1;
optional int32 itemid = 2;
optional int32 playerid = 3;
optional int32 skinid = 4;
}
message Robot