This commit is contained in:
aozhiwei 2019-11-21 14:29:23 +08:00
parent 870292592b
commit b57ea5055c
16 changed files with 24 additions and 646 deletions

View File

@ -25,8 +25,6 @@ Android::~Android()
void Android::Initialize() void Android::Initialize()
{ {
Human::Initialize(); Human::Initialize();
SetSkinInfo(14001);
GiveEquip();
} }
void Android::Update(int delta_time) void Android::Update(int delta_time)
@ -34,6 +32,3 @@ void Android::Update(int delta_time)
ai->Update(delta_time); ai->Update(delta_time);
} }
void Android::GiveEquip()
{
}

View File

@ -18,6 +18,5 @@ class Android : public Human
virtual ~Android() override; virtual ~Android() override;
virtual void Initialize() override; virtual void Initialize() override;
virtual void Update(int delta_time) override; virtual void Update(int delta_time) override;
void GiveEquip();
}; };

View File

@ -40,12 +40,20 @@ void Human::Initialize()
float Human::GetSpeed() float Human::GetSpeed()
{ {
#if 1
return 0;
#else
return meta->i->move_speed() + buff.speed; return meta->i->move_speed() + buff.speed;
#endif
} }
float Human::GetSpeed4() float Human::GetSpeed4()
{ {
#if 1
return 0;
#else
return meta->i->move_speed4(); return meta->i->move_speed4();
#endif
} }
void Human::FillMFObjectPart(cs::MFObjectPart* part_data) void Human::FillMFObjectPart(cs::MFObjectPart* part_data)
@ -71,7 +79,6 @@ void Human::FillMFObjectFull(cs::MFObjectFull* full_data)
p->set_dead(dead); p->set_dead(dead);
p->set_disconnected(disconnected); p->set_disconnected(disconnected);
skin.ToPB(p->mutable_skin());
p->set_kill_count(stats.kills); p->set_kill_count(stats.kills);
if (dead) { if (dead) {
p->set_killer_name(stats.killer_name); p->set_killer_name(stats.killer_name);
@ -137,15 +144,15 @@ void Human::FillMFPlayerStats(cs::MFPlayerStats* stats_pb)
void Human::GetAabbBox(AabbCollider& aabb_box) void Human::GetAabbBox(AabbCollider& aabb_box)
{ {
if (!meta) { abort();
abort(); #if 0
}
aabb_box.active = true; aabb_box.active = true;
aabb_box.owner = this; aabb_box.owner = this;
aabb_box._min.x = -meta->i->radius(); aabb_box._min.x = -meta->i->radius();
aabb_box._min.y = -meta->i->radius(); aabb_box._min.y = -meta->i->radius();
aabb_box._max.x = meta->i->radius(); aabb_box._max.x = meta->i->radius();
aabb_box._max.y = meta->i->radius(); aabb_box._max.y = meta->i->radius();
#endif
} }
void Human::FillMFTeamData(cs::MFTeamData* team_data) void Human::FillMFTeamData(cs::MFTeamData* team_data)
@ -168,6 +175,7 @@ void Human::FillMFTeamData(cs::MFTeamData* team_data)
void Human::RecalcSelfCollider() void Human::RecalcSelfCollider()
{ {
#if 0
if (!self_collider_) { if (!self_collider_) {
self_collider_ = new CircleCollider(); self_collider_ = new CircleCollider();
self_collider_->owner = this; self_collider_->owner = this;
@ -175,10 +183,12 @@ void Human::RecalcSelfCollider()
} }
self_collider_->pos = a8::Vec2(); self_collider_->pos = a8::Vec2();
self_collider_->rad = meta->i->radius(); self_collider_->rad = meta->i->radius();
#endif
} }
bool Human::IsCollisionInMapService() bool Human::IsCollisionInMapService()
{ {
#if 0
if (room->OverBorder(pos, meta->i->radius())){ if (room->OverBorder(pos, meta->i->radius())){
return true; return true;
} }
@ -196,6 +206,7 @@ bool Human::IsCollisionInMapService()
} }
#endif #endif
} }
#endif
return false; return false;
} }
@ -227,11 +238,13 @@ void Human::FindPathInMapService()
#endif #endif
extend_dir.Rotate(1/180.0f); extend_dir.Rotate(1/180.0f);
} }
#if 0
float distance = ((CircleCollider*)last_collider)->rad + meta->i->radius(); float distance = ((CircleCollider*)last_collider)->rad + meta->i->radius();
pos = last_collider->owner->pos + extend_dir * (distance + 1); pos = last_collider->owner->pos + extend_dir * (distance + 1);
if (IsCollisionInMapService()) { if (IsCollisionInMapService()) {
pos = old_pos; pos = old_pos;
} }
#endif
} }
return; return;
} }
@ -284,7 +297,11 @@ void Human::FindPathInMapService()
float Human::GetRadius() float Human::GetRadius()
{ {
#if 1
return 0;
#else
return meta->i->radius(); return meta->i->radius();
#endif
} }
void Human::SyncAroundPlayers(const char* file, int line, const char* func) void Human::SyncAroundPlayers(const char* file, int line, const char* func)
@ -508,7 +525,6 @@ void Human::OnGridListChange(std::set<GridCell*>& old_grid_list,
void Human::FillMFActivePlayerData(cs::MFActivePlayerData* player_data) void Human::FillMFActivePlayerData(cs::MFActivePlayerData* player_data)
{ {
skin.ToPB(player_data->mutable_skin());
} }
void Human::FillMFGasData(cs::MFGasData* gas_data) void Human::FillMFGasData(cs::MFGasData* gas_data)
@ -528,14 +544,11 @@ bool Human::CanSee(const Human* hum) const
void Human::RecalcAttr() void Human::RecalcAttr()
{ {
def = meta->i->def();
} }
void Human::RecalcBuff() void Human::RecalcBuff()
{ {
buff = HumanAbility(); buff = HumanAbility();
if (skin_meta) {
}
} }
void Human::AddObserver(Human* observer) void Human::AddObserver(Human* observer)
@ -705,35 +718,6 @@ void Human::SendWxVoip()
SendNotifyMsg(notifymsg); SendNotifyMsg(notifymsg);
} }
int Human::GetSkinConfigLv(int skin_id)
{
auto itr = skin_configs.find(skin_id);
return itr != skin_configs.end() ? itr->second : 0;
}
void Human::SetSkinInfo(int skin_id)
{
skin.skin_id = skin_id;
if (skin.skin_id != 0){
skin.skin_lv = std::max(1, GetSkinConfigLv(skin.skin_id));
}
}
const Skin& Human::GetSkin()
{
return skin;
}
int Human::SkinId()
{
return skin.skin_id;
}
int Human::SkinLv()
{
return skin.skin_lv;
}
void Human::_UpdateMove(int speed) void Human::_UpdateMove(int speed)
{ {
for (int i = 0; i < speed; ++i) { for (int i = 0; i < speed; ++i) {

View File

@ -34,8 +34,6 @@ class Human : public Entity
bool auto_fill = false; bool auto_fill = false;
int today_enter_times = 0; int today_enter_times = 0;
int account_registertime = 0; int account_registertime = 0;
MetaData::Player* meta = nullptr;
MetaData::Dress* skin_meta = nullptr;
HumanAbility buff; HumanAbility buff;
a8::Vec2 move_dir; a8::Vec2 move_dir;
@ -46,7 +44,6 @@ class Human : public Entity
bool disconnected = false; bool disconnected = false;
long long join_frameno = 0; long long join_frameno = 0;
int status = 0; int status = 0;
float atk_add = 0.0f;
bool has_pass = 0; bool has_pass = 0;
bool real_dead = false; bool real_dead = false;
xtimer_list* revive_timer = nullptr; xtimer_list* revive_timer = nullptr;
@ -62,9 +59,6 @@ class Human : public Entity
std::set<Human*> kill_humans; std::set<Human*> kill_humans;
long long send_msg_times = 0; long long send_msg_times = 0;
float def = 0.0f;
std::map<int, int> skin_configs;
Human(); Human();
virtual ~Human() override; virtual ~Human() override;
virtual void Initialize() override; virtual void Initialize() override;
@ -113,11 +107,6 @@ class Human : public Entity
void SendRollMsg(const std::string& roll_msg); void SendRollMsg(const std::string& roll_msg);
void SendUIUpdate(); void SendUIUpdate();
void SendWxVoip(); void SendWxVoip();
int GetSkinConfigLv(int skin_id);
void SetSkinInfo(int skin_id);
const Skin& GetSkin();
int SkinId();
int SkinLv();
protected: protected:
void _UpdateMove(int speed); void _UpdateMove(int speed);
@ -154,8 +143,6 @@ private:
bool sent_battlereport_ = false; bool sent_battlereport_ = false;
bool sent_game_end_ = false; bool sent_game_end_ = false;
Skin skin;
friend class FrameMaker; friend class FrameMaker;
friend class FrameEvent; friend class FrameEvent;
}; };

View File

@ -12,105 +12,6 @@ namespace MetaData
} }
void Map::Init() void Map::Init()
{
rand_space = 0;
{
std::vector<std::string> strings;
a8::Split(i->template_list(), strings, '|');
for (auto& str : strings) {
std::vector<std::string> strings2;
a8::Split(str, strings2, ':');
assert(strings2.size() == 2);
rand_space += a8::XValue(strings2[1]).GetInt();
template_list.push_back(std::make_tuple(
strings2[0],
rand_space
));
}
}
}
std::string Map::RandTemplate()
{
if (rand_space <= 0) {
return "";
}
int rnd = rand() % rand_space;
for (auto& tpl : template_list) {
if (rnd <= std::get<1>(tpl)) {
return std::get<0>(tpl);
}
}
return "";
}
void Equip::Init()
{
{
std::vector<std::string> strings;
a8::Split(i->bullet_born_offset(), strings, '|');
for (auto& str : strings) {
std::vector<std::string> strings2;
a8::Split(str, strings2, ':');
assert(strings2.size() >= 2);
bullet_born_offset.push_back(std::make_tuple(
a8::XValue(strings2[0]).GetDouble(),
a8::XValue(strings2[1]).GetDouble(),
strings2.size() > 2 ? a8::XValue(strings2[2]).GetDouble() : 0
)
);
}
}
}
void EquipUpgrade::Init()
{
for (int j = 0; j < i->max_lv(); ++j) {
std::array<float, EA_End>& attrs = a8::FastAppend(level_attrs);
for (size_t k = 0; k < EA_End; ++k) {
attrs[k] = 0;
}
}
{
std::vector<std::string> strings;
a8::Split(i->attr_type(), strings, '|');
for (auto& str : strings) {
std::vector<std::string> strings2;
a8::Split(str, strings2, ':');
if (strings2.size() != 3) {
abort();
}
int attr_type = a8::XValue(strings2[0]);
int attr_level = a8::XValue(strings2[1]);
float attr_value = a8::XValue(strings2[2]).GetDouble();
if (attr_type < EA_End) {
if (attr_level >= 0 && attr_level < i->max_lv()) {
for (int j = 1; j < i->max_lv(); ++j) {
if (j % attr_level == 0) {
level_attrs[j][attr_type] = attr_value * (j / attr_level);
}
}
}
}
}
}
}
float EquipUpgrade::GetAttrValue(int level, int attr_type)
{
if (level < 1) {
return 0;
}
if (level > (int)level_attrs.size()) {
return 0;
}
if (attr_type < EA_End) {
return level_attrs[level][attr_type];
}
return 0;
}
void Player::Init()
{ {
} }
@ -119,145 +20,4 @@ namespace MetaData
} }
void Drop::Init()
{
std::vector<std::string> item_list;
{
a8::Split(i->item_id(), item_list, '|');
}
std::vector<std::string> num_list;
{
a8::Split(i->num(), num_list, '|');
}
std::vector<std::string> weight_list;
{
a8::Split(i->weight(), weight_list, '|');
}
assert(item_list.size() == num_list.size() &&
item_list.size() == weight_list.size());
total_weight = 0;
for (size_t i = 0; i < item_list.size(); ++i) {
total_weight += a8::XValue(weight_list[i]).GetInt();
std::vector<int> itemids;
{
std::vector<std::string> strings;
a8::Split(item_list[i], strings, ':');
for (auto& str : strings) {
itemids.push_back(a8::XValue(str).GetInt());
}
}
std::vector<int> nums;
{
std::vector<std::string> strings;
a8::Split(num_list[i], strings, ':');
for (auto& str : strings) {
nums.push_back(a8::XValue(str).GetInt());
}
}
assert(itemids.size() == nums.size());
#if 1
std::vector<int> item_lvs;
for (size_t ii = 0; ii < itemids.size(); ++ii) {
item_lvs.push_back(1);
}
#endif
if (this->i->type() == 1) {
auto item_tuple = std::make_tuple(
itemids,
nums,
item_lvs,
a8::XValue(weight_list[i]).GetInt()
);
items.push_back(item_tuple);
} else {
auto item_tuple = std::make_tuple(
itemids,
nums,
item_lvs,
total_weight
);
items.push_back(item_tuple);
}
}
assert(i->type() == 1 || i->type() == 2);
}
void Drop::RandItems(std::vector<std::tuple<int, int, int>>& drop_items)
{
if (i->type() == 1) {
for (auto& item : items) {
if ((rand() % 10000) <= std::get<3>(item)) {
for (size_t i = 0; i < std::get<0>(item).size(); ++i) {
drop_items.push_back(std::make_tuple(
std::get<0>(item)[i],
std::get<1>(item)[i],
std::get<2>(item)[i]
));
}
}
}
} else if (total_weight > 0) {
int rnd = rand() % total_weight;
for (auto& item : items) {
if (std::get<3>(item) >= rnd) {
for (size_t i = 0; i < std::get<0>(item).size(); ++i) {
drop_items.push_back(std::make_tuple(
std::get<0>(item)[i],
std::get<1>(item)[i],
std::get<2>(item)[i]
));
}
break;
}
}
}
}
void Dress::Init()
{
for (int j = 0; j < i->max_lv(); ++j) {
std::array<float, EA_End>& attrs = a8::FastAppend(level_attrs);
for (size_t k = 0; k < EA_End; ++k) {
attrs[k] = 0;
}
}
{
std::vector<std::string> strings;
a8::Split(i->attr_type(), strings, '|');
for (auto& str : strings) {
std::vector<std::string> strings2;
a8::Split(str, strings2, ':');
if (strings2.size() != 3) {
abort();
}
int attr_type = a8::XValue(strings2[0]);
int attr_level = a8::XValue(strings2[1]);
float attr_value = a8::XValue(strings2[2]).GetDouble();
if (attr_type < EA_End) {
if (attr_level >= 0 && attr_level < i->max_lv()) {
for (int j = 1; j < i->max_lv(); ++j) {
if (j % attr_type == 0) {
level_attrs[j][attr_type] = attr_value * (j / attr_level);
}
}
}
}
}
}
}
float Dress::GetAttrValue(int level, int attr_type)
{
if (level < 1) {
return 0;
}
if (level > (int)level_attrs.size()) {
return 0;
}
if (attr_type < EA_End) {
return level_attrs[level][attr_type];
}
return 0;
}
} }

View File

@ -20,41 +20,6 @@ namespace MetaData
{ {
const metatable::Map* i = nullptr; const metatable::Map* i = nullptr;
std::vector<std::tuple<std::string, int>> template_list;
int rand_space = 0;
void Init();
std::string RandTemplate();
};
struct Item
{
const metatable::Item* i = nullptr;
};
struct Equip
{
const metatable::Equip* i = nullptr;
std::vector<std::tuple<float, float, float>> bullet_born_offset;
void Init();
};
struct EquipUpgrade
{
const metatable::EquipUpgrade* i = nullptr;
void Init();
float GetAttrValue(int level, int attr_type);
private:
std::vector<std::array<float, EA_End>> level_attrs;
};
struct Player
{
const metatable::Player* i = nullptr;
void Init(); void Init();
}; };
@ -65,29 +30,6 @@ namespace MetaData
void Init(); void Init();
}; };
struct Drop
{
const metatable::Drop* i = nullptr;
void Init();
void RandItems(std::vector<std::tuple<int, int, int>>& drop_items);
private:
std::vector<std::tuple<std::vector<int>, std::vector<int>, std::vector<int>, int>> items;
int total_weight = 0;
};
struct Dress
{
const metatable::Dress* i = nullptr;
void Init();
float GetAttrValue(int level, int attr_type);
private:
std::vector<std::array<float, EA_End>> level_attrs;
};
struct RankReward struct RankReward
{ {
const metatable::RankReward* i = nullptr; const metatable::RankReward* i = nullptr;

View File

@ -15,18 +15,8 @@ public:
std::list<MetaData::Parameter> parameter_list; std::list<MetaData::Parameter> parameter_list;
std::list<metatable::Map> map_meta_list; std::list<metatable::Map> map_meta_list;
std::list<MetaData::Map> map_list; std::list<MetaData::Map> map_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::list<metatable::Player> player_meta_list;
std::list<MetaData::Player> player_list;
std::list<metatable::Dress> dress_meta_list;
std::list<MetaData::Dress> dress_list;
std::list<metatable::RankReward> rankreward_meta_list; std::list<metatable::RankReward> rankreward_meta_list;
std::list<MetaData::RankReward> rankreward_list; std::list<MetaData::RankReward> rankreward_list;
std::list<metatable::EquipUpgrade> equipupgrade_meta_list;
std::list<MetaData::EquipUpgrade> equipupgrade_list;
std::list<metatable::KillReward> killreward_meta_list; std::list<metatable::KillReward> killreward_meta_list;
std::list<MetaData::KillReward> killreward_list; std::list<MetaData::KillReward> killreward_list;
std::list<metatable::RankPoint> rankpoint_meta_list; std::list<metatable::RankPoint> rankpoint_meta_list;
@ -38,16 +28,10 @@ public:
std::map<std::string, MetaData::Parameter*> parameter_hash; std::map<std::string, MetaData::Parameter*> parameter_hash;
std::map<int, MetaData::Map*> gamemap_hash; std::map<int, MetaData::Map*> gamemap_hash;
std::map<int, MetaData::Item*> item_hash;
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::Dress*> dress_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;
std::map<int, MetaData::RankPoint*> rankpoint_hash; std::map<int, MetaData::RankPoint*> rankpoint_hash;
std::map<int, MetaData::KillPoint*> killpoint_hash; std::map<int, MetaData::KillPoint*> killpoint_hash;
std::map<int, MetaData::EquipUpgrade*> equipupgrade_hash;
std::map<int, MetaData::Robot*> robot_hash; std::map<int, MetaData::Robot*> robot_hash;
void Load() void Load()
@ -69,16 +53,10 @@ public:
f8::ReadCsvMetaFile(res_path + "parameter@parameter.csv", parameter_meta_list); f8::ReadCsvMetaFile(res_path + "parameter@parameter.csv", parameter_meta_list);
f8::ReadCsvMetaFile(res_path + "map@map.csv", map_meta_list); f8::ReadCsvMetaFile(res_path + "map@map.csv", map_meta_list);
f8::ReadCsvMetaFile(res_path + "item@item.csv", item_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 + "dress@dress.csv", dress_meta_list);
f8::ReadCsvMetaFile(res_path + "rankReward@rankReward.csv", rankreward_meta_list); f8::ReadCsvMetaFile(res_path + "rankReward@rankReward.csv", rankreward_meta_list);
f8::ReadCsvMetaFile(res_path + "killReward@killReward.csv", killreward_meta_list); f8::ReadCsvMetaFile(res_path + "killReward@killReward.csv", killreward_meta_list);
f8::ReadCsvMetaFile(res_path + "killPoint@killPoint.csv", killpoint_meta_list); f8::ReadCsvMetaFile(res_path + "killPoint@killPoint.csv", killpoint_meta_list);
f8::ReadCsvMetaFile(res_path + "rankPoint@rankPoint.csv", rankpoint_meta_list); f8::ReadCsvMetaFile(res_path + "rankPoint@rankPoint.csv", rankpoint_meta_list);
f8::ReadCsvMetaFile(res_path + "equipUpgrade@equipUpgrade.csv", equipupgrade_meta_list);
f8::ReadCsvMetaFile(res_path + "robot@robot.csv", robot_meta_list); f8::ReadCsvMetaFile(res_path + "robot@robot.csv", robot_meta_list);
BindToMetaData(); BindToMetaData();
#if 1 #if 1
@ -122,40 +100,6 @@ private:
} }
} }
for (auto& meta : item_meta_list) {
MetaData::Item& item = a8::FastAppend(item_list);
item.i = &meta;
item_hash[item.i->id()] = &item;
}
for (auto& meta : equip_meta_list) {
if (meta.inventory_slot().empty()) {
meta.set__inventory_slot(-1);
} else {
meta.set__inventory_slot(a8::XValue(meta.inventory_slot()));
}
MetaData::Equip& item = a8::FastAppend(equip_list);
item.i = &meta;
item.Init();
equip_hash[item.i->id()] = &item;
if (meta._inventory_slot() > -1) {
equip_slot_hash[meta._inventory_slot()] = &item;
}
}
for (auto& meta : player_meta_list) {
MetaData::Player& item = a8::FastAppend(player_list);
item.i = &meta;
item.Init();
player_hash[item.i->id()] = &item;
}
for (auto& meta : dress_meta_list) {
MetaData::Dress& item = a8::FastAppend(dress_list);
item.i = &meta;
dress_hash[item.i->id()] = &item;
}
for (auto& meta : rankreward_meta_list) { for (auto& meta : rankreward_meta_list) {
MetaData::RankReward& item = a8::FastAppend(rankreward_list); MetaData::RankReward& item = a8::FastAppend(rankreward_list);
item.i = &meta; item.i = &meta;
@ -180,12 +124,6 @@ private:
rankpoint_hash[item.i->rank()] = &item; rankpoint_hash[item.i->rank()] = &item;
} }
for (auto& meta : equipupgrade_meta_list) {
MetaData::EquipUpgrade& item = a8::FastAppend(equipupgrade_list);
item.i = &meta;
equipupgrade_hash[meta.id()] = &item;
}
for (auto& meta : robot_meta_list) { for (auto& meta : robot_meta_list) {
MetaData::Robot& item = a8::FastAppend(robot_list); MetaData::Robot& item = a8::FastAppend(robot_list);
item.i = &meta; item.i = &meta;
@ -244,36 +182,6 @@ MetaData::Map* MetaMgr::GetMap(int map_id)
return itr != loader_->gamemap_hash.end() ? itr->second : nullptr; return itr != loader_->gamemap_hash.end() ? itr->second : nullptr;
} }
MetaData::Player* MetaMgr::GetPlayer(int id)
{
auto itr = loader_->player_hash.find(id);
return itr != loader_->player_hash.end() ? itr->second : nullptr;
}
MetaData::Equip* MetaMgr::GetEquip(int id)
{
auto itr = loader_->equip_hash.find(id);
return itr != loader_->equip_hash.end() ? itr->second : nullptr;
}
MetaData::Equip* MetaMgr::GetEquipBySlotId(int slot_id)
{
auto itr = loader_->equip_slot_hash.find(slot_id);
return itr != loader_->equip_slot_hash.end() ? itr->second : nullptr;
}
MetaData::EquipUpgrade* MetaMgr::GetEquipUpgrade(int equip_id)
{
auto itr = loader_->equipupgrade_hash.find(equip_id);
return itr != loader_->equipupgrade_hash.end() ? itr->second : nullptr;
}
MetaData::Dress* MetaMgr::GetDress(int dress_id)
{
auto itr = loader_->dress_hash.find(dress_id);
return itr != loader_->dress_hash.end() ? itr->second : nullptr;
}
float MetaMgr::GetRankRewardParam(int rank) float MetaMgr::GetRankRewardParam(int rank)
{ {
auto itr = loader_->rankreward_hash.find(rank); auto itr = loader_->rankreward_hash.find(rank);

View File

@ -20,12 +20,6 @@ class MetaMgr : public a8::Singleton<MetaMgr>
double GetSysParamAsFloat(const std::string& param_name, double def_val = 0.0f); double GetSysParamAsFloat(const std::string& param_name, double def_val = 0.0f);
std::string GetSysParamAsString(const std::string& param_name, const char* def_val = ""); std::string GetSysParamAsString(const std::string& param_name, const char* def_val = "");
MetaData::Map* GetMap(int map_id); MetaData::Map* GetMap(int map_id);
MetaData::Player* GetPlayer(int id);
MetaData::Equip* GetEquip(int id);
MetaData::Equip* GetEquipBySlotId(int slot_id);
MetaData::EquipUpgrade* GetEquipUpgrade(int equip_id);
MetaData::Drop* GetDrop(int drop_id);
MetaData::Dress* GetDress(int dress_id);
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);

View File

@ -27,7 +27,6 @@ Player::~Player()
void Player::Initialize() void Player::Initialize()
{ {
Human::Initialize(); Human::Initialize();
skin_meta = MetaMgr::Instance()->GetDress(SkinId());
RecalcBuff(); RecalcBuff();
} }

View File

@ -51,14 +51,7 @@ Player* PlayerMgr::CreatePlayerByCMJoin(long ip_saddr, int socket, const cs::CMJ
hum->today_enter_times = msg.today_enter_times(); hum->today_enter_times = msg.today_enter_times();
hum->create_tick = a8::XGetTickCount(); hum->create_tick = a8::XGetTickCount();
hum->account_registertime = f8::ExtractRegisterTimeFromSessionId(msg.session_id()); hum->account_registertime = f8::ExtractRegisterTimeFromSessionId(msg.session_id());
hum->atk_add = msg.atk_add();
hum->has_pass = msg.has_pass(); hum->has_pass = msg.has_pass();
for (auto& skin : msg.skins()) {
if (skin.skin_id() != 0 && skin.skin_lv() > 0) {
hum->skin_configs[skin.skin_id()] = skin.skin_lv();
}
}
hum->SetSkinInfo(msg.baseskin());
socket_hash_[socket] = hum; socket_hash_[socket] = hum;
return hum; return hum;
} }

View File

@ -210,6 +210,7 @@ void Room::ShuaAndroid()
void Room::CreateAndroid(int robot_num) void Room::CreateAndroid(int robot_num)
{ {
#if 0
std::vector<MetaData::Robot>* robot_list = MetaMgr::Instance()->GetRobotList(); std::vector<MetaData::Robot>* robot_list = MetaMgr::Instance()->GetRobotList();
if (!robot_list || robot_list->empty()) { if (!robot_list || robot_list->empty()) {
return; return;
@ -266,6 +267,7 @@ void Room::CreateAndroid(int robot_num)
} }
refreshed_robot_set_.insert(robot_meta->i->id()); refreshed_robot_set_.insert(robot_meta->i->id());
} }
#endif
} }
Human* Room::FindEnemy(Human* hum) Human* Room::FindEnemy(Human* hum)
@ -308,44 +310,7 @@ void Room::FillSMJoinedNotify(Player* self_hum, cs::SMJoinedNotify& msg)
int Room::CreateLoot(int equip_id, a8::Vec2 pos, int count, int equip_lv) int Room::CreateLoot(int equip_id, a8::Vec2 pos, int count, int equip_lv)
{ {
MetaData::Equip* equip_meta = MetaMgr::Instance()->GetEquip(equip_id); return 0;
if (equip_meta) {
if (equip_meta->i->equip_type() == 2 &&
MetaMgr::Instance()->fighting_mode) {
return 0;
}
Loot* entity = new Loot();
entity->room = this;
entity->meta = equip_meta;
entity->entity_uniid = AllocUniid();
entity->pos = pos;
#if 1
{
if (entity->pos.x >= map_meta->i->map_width()) {
entity->pos.x = map_meta->i->map_width() - 1;
}
if (entity->pos.x < 1.0f) {
entity->pos.x = 1.0f;
}
if (entity->pos.y >= map_meta->i->map_height()) {
entity->pos.y = map_meta->i->map_height() - 1;
}
if (entity->pos.y < 1.0f) {
entity->pos.y = 1.0f;
}
}
#endif
entity->item_id = equip_id;
entity->count = count;
entity->item_level = equip_lv;
entity->Initialize();
uniid_hash_[entity->entity_uniid] = entity;
grid_service.AddEntity(entity);
entity->BroadcastFullState();
return entity->entity_uniid;
} else {
return 0;
}
} }
void Room::RemoveObjectLater(Entity* entity) void Room::RemoveObjectLater(Entity* entity)

View File

@ -49,10 +49,6 @@ void RoomMgr::Update(int delta_time)
void RoomMgr::_CMJoin(f8::MsgHdr& hdr, const cs::CMJoin& msg) void RoomMgr::_CMJoin(f8::MsgHdr& hdr, const cs::CMJoin& msg)
{ {
MetaData::Player* hum_meta = MetaMgr::Instance()->GetPlayer(40001);
if (!hum_meta) {
abort();
}
if (IsLimitJoin()) { if (IsLimitJoin()) {
{ {
cs::SMJoinedNotify notifymsg; cs::SMJoinedNotify notifymsg;
@ -92,7 +88,6 @@ void RoomMgr::_CMJoin(f8::MsgHdr& hdr, const cs::CMJoin& msg)
room_hash_[room->room_uuid] = room; room_hash_[room->room_uuid] = room;
} }
Player* hum = PlayerMgr::Instance()->CreatePlayerByCMJoin(hdr.ip_saddr, hdr.socket_handle, msg); Player* hum = PlayerMgr::Instance()->CreatePlayerByCMJoin(hdr.ip_saddr, hdr.socket_handle, msg);
hum->meta = hum_meta;
room->AddPlayer(hum); room->AddPlayer(hum);
{ {

View File

@ -3,9 +3,3 @@
#include "cs_proto.pb.h" #include "cs_proto.pb.h"
#include "metamgr.h" #include "metamgr.h"
void Skin::ToPB(cs::MFSkin* pb_obj)
{
pb_obj->set_skin_id(skin_id);
pb_obj->set_skin_lv(skin_lv);
}

View File

@ -15,19 +15,6 @@ struct PerfMonitor
std::array<int, 30> entity_num = {}; std::array<int, 30> entity_num = {};
}; };
namespace MetaData
{
struct SafeArea;
struct Equip;
struct EquipUpgrade;
struct MapTplThing;
}
namespace cs
{
class MFSkin;
}
struct GasData struct GasData
{ {
GasMode_e gas_mode = GasInactive; GasMode_e gas_mode = GasInactive;
@ -35,15 +22,6 @@ struct GasData
bool is_last_gas = false; bool is_last_gas = false;
}; };
struct Skin
{
int tank_uniid = 0;
int skin_id = 0;
int skin_lv = 0;
void ToPB(cs::MFSkin* pb_obj);
};
struct PlayerStats struct PlayerStats
{ {
int kills = 0; int kills = 0;

View File

@ -153,13 +153,6 @@ message MFSnake
optional int32 total_mass = 3; // optional int32 total_mass = 3; //
} }
//
message MFSkin
{
optional int32 skin_id = 1; //id
optional int32 skin_lv = 2; //
}
//- //-
message MFPlayerPart message MFPlayerPart
{ {
@ -175,7 +168,6 @@ message MFPlayerFull
optional bool dead = 7; // optional bool dead = 7; //
optional bool disconnected = 9; // optional bool disconnected = 9; //
optional MFSkin skin = 13; //id
optional int32 kill_count = 24; // optional int32 kill_count = 24; //
optional bool can_revive = 30; // optional bool can_revive = 30; //
@ -225,8 +217,6 @@ message MFObjectFull
//() //()
message MFActivePlayerData message MFActivePlayerData
{ {
optional MFSkin skin = 30; //id
optional int32 spectator_count = 20; optional int32 spectator_count = 20;
} }
@ -307,21 +297,13 @@ message CMJoin
optional int32 team_mode = 4; // 0: 1: optional int32 team_mode = 4; // 0: 1:
optional int32 proto_version = 5; //Constant_e.ProtoVersion optional int32 proto_version = 5; //Constant_e.ProtoVersion
optional bool auto_fill = 6; // optional bool auto_fill = 6; //
optional int32 bot = 7; //
optional string name = 8; // optional string name = 8; //
optional bool use_touch = 9; //zzz
repeated int32 emotes = 10; // repeated int32 emotes = 10; //
optional string avatar_url = 11; // optional string avatar_url = 11; //
optional int32 baseskin = 13; //id
optional int32 basemelee = 14; //xx
repeated MFSkin skins = 18; // key: id value:
repeated int32 prepare_items = 19; // energy_shield repeated int32 prepare_items = 19; // energy_shield
optional string session_id = 20; //session_id optional string session_id = 20; //session_id
optional string from_appid = 21; //from_appid optional string from_appid = 21; //from_appid
optional float atk_add = 22; //
optional string pre_settlement_info = 23; //game2001api预结算信息() optional string pre_settlement_info = 23; //game2001api预结算信息()
optional int32 emoji1 = 24; //1
optional int32 emoji2 = 25; //2
optional bool has_pass = 27; // optional bool has_pass = 27; //
optional int32 today_enter_times = 28; // optional int32 today_enter_times = 28; //
} }

View File

@ -48,107 +48,10 @@ message Map
optional float map_height = 5; optional float map_height = 5;
} }
message MapThing
{
optional int32 thing_id = 1; //id
optional int32 type = 2; //
optional int32 height = 3; //
optional int32 width = 4; //
optional int32 hp = 5; //
optional float damage = 6; //
optional float damage_dia = 7; //
optional int32 drop = 8; //
optional int32 attack_type = 9; // 0: 1 2穿
optional int32 is_door = 10; //
optional int32 is_house = 11; //
optional int32 is_tree = 12; //
optional int32 house_id = 13; //id
}
message Item
{
optional int32 id = 1; //id
}
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 time = 17; //
optional string volume = 19; //
optional int32 bullet_rad = 20; //
optional int32 group_num = 21; //
optional int32 is_luck = 22; //
optional string bullet_born_offset = 30; //
optional float bullet_angle = 34; //
optional string name = 35; //
optional float rad = 36; //
optional float rad2 = 37;
optional string inventory_slot = 31; //
optional int32 _inventory_slot = 32; //
}
message EquipUpgrade
{
optional int32 id = 1;
optional string attr_type = 4;
optional int32 max_lv = 5;
}
message Player
{
optional int32 id = 1; //id
optional float radius = 2; //
optional int32 health = 3; //
optional int32 move_speed = 4; //
optional int32 jump_speed = 5; //
optional int32 move_speed3 = 6;
optional int32 shot_speed = 7;
optional int32 move_speed4 = 10; //4
optional float def = 11; //
optional string volume = 12; //
}
message Robot message Robot
{ {
optional int32 id = 1; optional int32 id = 1;
optional string name = 2; optional string name = 2;
optional int32 skin = 3;
optional int32 weapon_id = 4;
optional int32 weapon_lv = 5;
}
message Drop
{
optional int32 drop_id = 1;
optional string item_id = 2;
optional string num = 3;
optional string weight = 4;
optional int32 type = 5;
}
message Dress
{
optional int32 id = 1;
optional int32 level = 2;
optional int32 skill_id = 3;
optional string attr_type = 4;
optional int32 max_lv = 5;
} }
message RankReward message RankReward