1
This commit is contained in:
parent
a4e43b30c3
commit
d9cd3f00be
@ -31,6 +31,11 @@ void Android::Initialize()
|
||||
if (skin_meta) {
|
||||
skill_meta = MetaMgr::Instance()->GetSkill(skin_meta->i->skill_id());
|
||||
}
|
||||
MetaData::TankSkin* tank_skin_meta = MetaMgr::Instance()->GetTank(SkinId());
|
||||
if (tank_skin_meta) {
|
||||
tankskin.skin_id = tank_skin_meta->i->tank_id();
|
||||
tankskin.skin_lv = 1;
|
||||
}
|
||||
RecalcBaseAttr();
|
||||
}
|
||||
|
||||
|
@ -129,6 +129,7 @@ void Human::FillMFObjectFull(cs::MFObjectFull* full_data)
|
||||
p->set_backpack(backpack);
|
||||
p->set_helmet(helmet);
|
||||
p->set_chest(chest);
|
||||
tankskin.ToPB(p->mutable_tankskin());
|
||||
curr_weapon->ToPB(p->mutable_weapon());
|
||||
#if 0
|
||||
p->set_energy_shield(energy_shield);
|
||||
|
@ -64,6 +64,7 @@ class Human : public Entity
|
||||
int action_item_id = 0;
|
||||
int action_target_id = 0;
|
||||
Skin skin_jlf;
|
||||
Skin tankskin;
|
||||
Driver driver;
|
||||
int backpack = 0;
|
||||
int helmet = 0;
|
||||
|
@ -194,4 +194,9 @@ namespace MetaData
|
||||
std::map<int, std::tuple<float, int>> attr_up;
|
||||
};
|
||||
|
||||
struct TankSkin
|
||||
{
|
||||
const metatable::TankSkin* i = nullptr;
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -33,6 +33,8 @@ public:
|
||||
std::list<MetaData::Dress> dress_list;
|
||||
std::list<metatable::Tank> tank_meta_list;
|
||||
std::list<MetaData::Tank> tank_list;
|
||||
std::list<metatable::TankSkin> tankskin_meta_list;
|
||||
std::list<MetaData::TankSkin> tankskin_list;
|
||||
std::list<metatable::Driver> driver_meta_list;
|
||||
std::list<MetaData::Driver> driver_list;
|
||||
std::list<metatable::Skill> skill_meta_list;
|
||||
@ -64,6 +66,7 @@ public:
|
||||
std::map<std::string, std::tuple<int, int>> maptpl_size_hash;
|
||||
std::map<int, MetaData::Dress*> dress_hash;
|
||||
std::map<int, MetaData::Tank*> tank_hash;
|
||||
std::map<int, MetaData::TankSkin*> tankskin_hash;
|
||||
std::vector<int> tankid_list;
|
||||
std::map<int, MetaData::Driver*> driver_hash;
|
||||
std::map<int, MetaData::Skill*> skill_hash;
|
||||
@ -95,6 +98,7 @@ public:
|
||||
f8::ReadCsvMetaFile(res_path + "map@map.csv", map_meta_list);
|
||||
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", tankskin_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);
|
||||
@ -210,6 +214,12 @@ private:
|
||||
tankid_list.push_back(meta.id());
|
||||
}
|
||||
|
||||
for (auto& meta : tankskin_meta_list) {
|
||||
MetaData::TankSkin& item = a8::FastAppend(tankskin_list);
|
||||
item.i = &meta;
|
||||
tankskin_hash[item.i->tank_id()] = &item;
|
||||
}
|
||||
|
||||
for (auto& meta : driver_meta_list) {
|
||||
MetaData::Driver& item = a8::FastAppend(driver_list);
|
||||
item.i = &meta;
|
||||
@ -488,6 +498,12 @@ MetaData::Tank* MetaMgr::GetTank(int tank_id)
|
||||
return itr != loader_->tank_hash.end() ? itr->second : nullptr;
|
||||
}
|
||||
|
||||
MetaData::TankSkin* MetaMgr::GetTankSkin(int tank_id)
|
||||
{
|
||||
auto itr = loader_->tankskin_hash.find(tank_id);
|
||||
return itr != loader_->tankskin_hash.end() ? itr->second : nullptr;
|
||||
}
|
||||
|
||||
int MetaMgr::RandTank()
|
||||
{
|
||||
return !loader_->tankid_list.empty() ? loader_->tankid_list[rand() % loader_->tankid_list.size()] : 0;
|
||||
|
@ -38,6 +38,7 @@ class MetaMgr : public a8::Singleton<MetaMgr>
|
||||
MetaData::Dress* GetDress(int dress_id);
|
||||
MetaData::Driver* GetDriver(int driver_id);
|
||||
MetaData::Tank* GetTank(int tank_id);
|
||||
MetaData::TankSkin* GetTankSkin(int tank_id);
|
||||
int RandTank();
|
||||
float GetRankRewardParam(int rank);
|
||||
float GetKillRewardParam(int kill_num);
|
||||
|
@ -80,6 +80,7 @@ Player* PlayerMgr::CreatePlayerByCMJoin(long ip_saddr, int socket, const cs::CMJ
|
||||
}
|
||||
hum->SetSkinInfo(msg.baseskin());
|
||||
hum->driver.FromPB(&msg.driver());
|
||||
hum->tankskin.FromPB(&msg.tankskin());
|
||||
socket_hash_[socket] = hum;
|
||||
return hum;
|
||||
}
|
||||
|
@ -20,6 +20,12 @@ int Weapon::GetClipVolume()
|
||||
return meta->i->clip_volume();
|
||||
}
|
||||
|
||||
void Skin::FromPB(const cs::MFSkin* pb_obj)
|
||||
{
|
||||
skin_id = pb_obj->skin_id();
|
||||
skin_lv = pb_obj->skin_lv();
|
||||
}
|
||||
|
||||
void Skin::ToPB(cs::MFSkin* pb_obj)
|
||||
{
|
||||
pb_obj->set_skin_id(skin_id);
|
||||
|
@ -61,6 +61,7 @@ struct Skin
|
||||
int skin_id = 0;
|
||||
int skin_lv = 0;
|
||||
|
||||
void FromPB(const cs::MFSkin* pb_obj);
|
||||
void ToPB(cs::MFSkin* pb_obj);
|
||||
};
|
||||
|
||||
|
@ -178,6 +178,7 @@ message MFPlayerFull
|
||||
optional int32 energy_shield = 19; //能量护盾
|
||||
optional int32 max_energy_shield = 22; //最大能量护盾
|
||||
repeated MFBuff buff_list = 24; //buff列表
|
||||
optional MFSkin tankskin = 25; //坦克皮肤
|
||||
}
|
||||
|
||||
//阻挡物-部分
|
||||
@ -596,6 +597,7 @@ message CMJoin
|
||||
repeated int32 prepare_items = 19; //战斗前准备道具 战前准备护盾存到energy_shield
|
||||
optional string from_appid = 21; //from_appid
|
||||
optional MFDriver driver = 22; //驾驶员
|
||||
optional MFSkin tankskin = 23; //坦克皮肤
|
||||
}
|
||||
|
||||
//移动
|
||||
|
@ -217,6 +217,12 @@ message Tank
|
||||
optional int32 type = 7;
|
||||
}
|
||||
|
||||
message TankSkin
|
||||
{
|
||||
required int32 id = 1;
|
||||
optional int32 tank_id = 2;
|
||||
}
|
||||
|
||||
//end
|
||||
|
||||
message DoorObjJson
|
||||
|
Loading…
x
Reference in New Issue
Block a user