diff --git a/server/gameserver/android.cc b/server/gameserver/android.cc index 6b1970e..7a1def8 100644 --- a/server/gameserver/android.cc +++ b/server/gameserver/android.cc @@ -26,9 +26,9 @@ void Android::Initialize() { Human::Initialize(); SetTankInfo(MetaMgr::Instance()->RandTank()); - tank_meta = MetaMgr::Instance()->GetTank(TankId()); - if (tank_meta) { - skill_meta_ = MetaMgr::Instance()->GetSkill(tank_meta->i->skill_id()); + tank_meta_ = MetaMgr::Instance()->GetTank(TankId()); + if (tank_meta_) { + skill_meta_ = MetaMgr::Instance()->GetSkill(tank_meta_->i->skill_id()); } GiveEquip(); MetaData::TankSkin* tank_tank_meta = MetaMgr::Instance()->GetTankSkin(TankId()); @@ -49,8 +49,8 @@ void Android::Update(int delta_time) void Android::GiveEquip() { - if (tank_meta) { - MetaData::Equip* weapon_meta = MetaMgr::Instance()->GetEquip(tank_meta->i->bullet_id()); + if (tank_meta_) { + MetaData::Equip* weapon_meta = MetaMgr::Instance()->GetEquip(tank_meta_->i->bullet_id()); if (weapon_meta) { weapons[GUN_SLOT1].weapon_idx = GUN_SLOT1; weapons[GUN_SLOT1].weapon_id = weapon_meta->i->id(); diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index ee61891..c8ea365 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -1425,21 +1425,21 @@ float* Human::GetAbilityById(int attr_id) void Human::RecalcBaseAttr() { ability = HumanAbility(); - if (tank_meta) { - for (auto& pair : tank_meta->attr_init) { + if (tank_meta_) { + for (auto& pair : tank_meta_->attr_init) { float* p_attr = GetAbilityById(pair.first); if (p_attr) { *p_attr += pair.second; } } - for (auto& pair : tank_meta->attr_up) { + for (auto& pair : tank_meta_->attr_up) { float* p_attr = GetAbilityById(pair.first); if (p_attr) { *p_attr += (TankLv() / std::get<1>(pair.second)) * std::get<0>(pair.second); } } } - if (driver_meta && tank_meta && driver_meta->i->g_type() == tank_meta->i->type()) { + if (driver_meta && tank_meta_ && driver_meta->i->g_type() == tank_meta_->i->type()) { for (auto& pair : driver_meta->attr_up) { float* p_attr = GetAbilityById(pair.first); if (p_attr) { diff --git a/server/gameserver/human.h b/server/gameserver/human.h index 1d057fb..733f5b8 100644 --- a/server/gameserver/human.h +++ b/server/gameserver/human.h @@ -39,7 +39,6 @@ class Human : public Entity std::string team_uuid; int account_registertime = 0; MetaData::Player* meta = nullptr; - MetaData::Tank* tank_meta = nullptr; MetaData::Driver* driver_meta = nullptr; HumanAbility ability; int born_point = 0; @@ -236,6 +235,7 @@ protected: Human* follow_target_ = nullptr; bool follow_synced_active_player = false; MetaData::Skill* skill_meta_ = nullptr; + MetaData::Tank* tank_meta_ = nullptr; private: CircleCollider* self_collider_ = nullptr; diff --git a/server/gameserver/player.cc b/server/gameserver/player.cc index b995ebc..125ce7d 100644 --- a/server/gameserver/player.cc +++ b/server/gameserver/player.cc @@ -30,10 +30,10 @@ Player::~Player() void Player::Initialize() { Human::Initialize(); - tank_meta = MetaMgr::Instance()->GetTank(TankId()); - if (tank_meta) { - skill_meta_ = MetaMgr::Instance()->GetSkill(tank_meta->i->skill_id()); - MetaData::Equip* weapon_meta = MetaMgr::Instance()->GetEquip(tank_meta->i->bullet_id()); + tank_meta_ = MetaMgr::Instance()->GetTank(TankId()); + if (tank_meta_) { + skill_meta_ = MetaMgr::Instance()->GetSkill(tank_meta_->i->skill_id()); + MetaData::Equip* weapon_meta = MetaMgr::Instance()->GetEquip(tank_meta_->i->bullet_id()); if (weapon_meta) { weapons[GUN_SLOT1].weapon_idx = GUN_SLOT1; weapons[GUN_SLOT1].weapon_id = weapon_meta->i->id();