完成配置表读取

This commit is contained in:
aozhiwei 2019-03-13 14:08:27 +08:00
parent 275b5b94be
commit d41352e6b0
4 changed files with 131 additions and 24 deletions

View File

@ -5,4 +5,24 @@
namespace MetaData
{
struct Map
{
const metatable::Map* meta = nullptr;
};
struct SafeArea
{
const metatable::SafeArea* meta = nullptr;
};
struct Item
{
const metatable::Item* meta = nullptr;
};
struct Equip
{
const metatable::Equip* meta = nullptr;
};
}

View File

@ -10,15 +10,33 @@
class MetaDataLoader
{
public:
std::list<metatable::Map> map_meta_list;
std::list<MetaData::Map> map_list;
std::list<metatable::SafeArea> safearea_meta_list;
std::list<MetaData::SafeArea> safearea_list;
std::list<metatable::Item> item_meta_list;
std::list<MetaData::Item> item_list;
std::list<metatable::Equip> equip_meta_list;
std::list<MetaData::Equip> equip_list;
std::map<int, MetaData::Map*> gamemap_hash;
std::map<int, MetaData::SafeArea*> safearea_hash;
std::map<int, MetaData::Item*> item_hash;
std::map<int, MetaData::Equip*> equip_hash;
void Load()
{
std::string res_path;
if (getenv("is_dev_env")) {
if (!f8::IsOnlineEnv()) {
res_path = a8::Format("/var/data/conf_test/game%d/res/", {GAME_ID});
} else {
res_path = "../res/";
}
f8::ReadCsvMetaFile(res_path + "map@map.csv", map_meta_list);
f8::ReadCsvMetaFile(res_path + "safearea@safearea.csv", safearea_meta_list);
f8::ReadCsvMetaFile(res_path + "item@item.csv", item_meta_list);
f8::ReadCsvMetaFile(res_path + "equip@equip.csv", equip_meta_list);
BindToMetaData();
}
@ -26,6 +44,31 @@ private:
void BindToMetaData()
{
for (auto& meta : map_meta_list) {
MetaData::Map& item = a8::FastAppend(map_list);
item.meta = &meta;
gamemap_hash[item.meta->map_id()] = &item;
}
for (auto& meta : safearea_meta_list) {
MetaData::SafeArea& item = a8::FastAppend(safearea_list);
item.meta = &meta;
safearea_hash[item.meta->id()] = &item;
}
for (auto& meta : item_meta_list) {
MetaData::Item& item = a8::FastAppend(item_list);
item.meta = &meta;
item_hash[item.meta->id()] = &item;
}
for (auto& meta : equip_meta_list) {
MetaData::Equip& item = a8::FastAppend(equip_list);
item.meta = &meta;
equip_hash[item.meta->id()] = &item;
}
}
};

View File

@ -93,6 +93,7 @@ message MFGoods
optional int32 num = 2;
}
// x1 x4 x8
message MFPlug
{
optional string name = 1;
@ -175,7 +176,7 @@ message MFBuildingFull
optional bool ceiling_dead = 5;
}
//loot出生点-
//loot出生点-
message MFLootSpawnerPart
{
optional int32 obj_uniid = 1; //id
@ -274,7 +275,7 @@ message MFSmokeFull
message MFObjectPart
{
//1:player 2:obstacle 3:building 4:lootspawner 5:loot 6:deadbody 7:decal 8:projectile 9:smoke
optional int32 object_type = 1;
optional int32 type = 1;
optional MFPlayerPart union_obj_1 = 2;
optional MFObstaclePart union_obj_2 = 3;
@ -309,6 +310,7 @@ message MFPlayerData
{
optional float boost = 1;
//
optional bool has_action = 2;
optional float actoin_time = 3;
optional float action_duration = 4;
@ -322,12 +324,11 @@ message MFPlayerData
// repeated int32 weapons = 16;
optional int32 spectator_count = 20;
}
message MFGasData
{
optional int32 mode = 1;
optional int32 mode = 1; //0:inactive 1:waiting 2:moveing
optional float duration = 2;
optional MFVector2D pos_old = 3;
optional MFVector2D pos_new = 4;
@ -482,31 +483,37 @@ message CMJoin
message CMMove
{
optional int32 seq = 1; //
optional bool move_left = 2; //zzz
optional bool move_right = 3; //zz
optional bool move_up = 4; //zzz
optional bool move_down = 5; //zzz
optional bool shoot_start = 6; //zzz
optional bool shoot_hold = 7; //zzz
optional bool reload = 8; //zzzz
optional bool interaction = 9; //zzz
optional bool equip_primary = 10; //zzz
optional bool equip_secondary = 11; //zz
optional bool equip_throwable = 12; //zz
optional bool equip_melee = 13; //zz
optional bool equip_last = 14; //zz
optional bool move_left = 2; //-
optional bool move_right = 3; //-
optional bool move_up = 4; //-
optional bool move_down = 5; //-
optional int32 move_len = 22; //-
optional MFVector2D to_move_dir = 24; //-
optional bool shoot_start = 6; //-
optional bool shoot_hold = 7; //-
optional bool reload = 8; //
optional bool equip_primary = 10; //1
optional bool equip_secondary = 11; //2
optional bool equip_throwable = 12; //3
optional bool equip_melee = 13; //
optional bool equip_last = 14; //使
optional bool cancel_action = 15; //zz
optional bool edit_mode = 16; //zz
//optional bool edit_mode = 16; //
optional bool scroll_down = 17; //zzz
optional bool scroll_up = 18; //zz
optional bool portrait = 19; //zz
optional MFVector2D to_mouse_dir = 20; //zz
optional float to_mouse_len = 21; //
//use_item
//use_scope
optional int32 move_len = 22; //zz
optional int32 interaction_objid = 23; //zz
optional MFVector2D to_move_dir = 24; //
optional bool interaction = 9; //
optional int32 interaction_objid = 23; //id
}
//
@ -576,7 +583,7 @@ message SMUpdate
repeated MFObjectPart part_objects = 3;
optional int32 active_player_id = 10; //id
optional MFPlayerData active_player_data = 11; //
optional int32 alive_count = 15; //
optional int32 alive_count = 15; //
optional int32 gasT = 16;
optional MFGasData gas_data = 17;
repeated MFTeamData team_data = 18;

View File

@ -3,11 +3,48 @@ package metatable;
message Map
{
optional int32 map_id = 1; //id
optional int32 width = 2; //
optional int32 height = 3; //
}
message SafeArea
{
optional int32 id = 1; //id
optional int32 level = 2; //
optional int32 rad = 3; //
optional int32 wait_time = 4; //
optional int32 hurt = 5; ///
}
message Item
{
optional int32 item_id = 1; //id
optional int32 id = 1; //id
optional int32 type = 2; //
optional int32 reward = 3; //使
optional int32 price = 4; //
}
message Equip
{
optional int32 id = 1; //id
optional int32 equip_type = 2; //
optional int32 equip_subtype = 3; //
optional int32 equip_lv = 4; //
optional int32 fire_mode = 5; //
optional int32 use_bullet = 6; //使
optional int32 clip_volume = 7; //
optional int32 reload_time = 8; //
optional int32 fire_rate = 9; //
optional int32 atk = 10; //
optional int32 def = 11; //
optional int32 explosion_range = 12; //
optional int32 bullet_speed = 13; //
optional int32 range = 14; //
optional int32 use_time = 15; //使
optional int32 heal = 16; //
optional int32 energy = 17; //
optional int32 number = 18; //
optional int32 volume = 19; //
}
message Monster