添加能量护盾

This commit is contained in:
aozhiwei 2019-07-20 17:36:32 +08:00
parent 7086ba3ce7
commit 78d30f79e5
6 changed files with 13 additions and 6 deletions

View File

@ -51,4 +51,5 @@ void Hero::FillMFObjectFull(cs::MFObjectFull* full_data)
skin.ToPB(p->mutable_skin());
weapon.ToPB(p->mutable_weapon());
p->set_energy_shield(energy_shield);
}

View File

@ -17,6 +17,7 @@ class Hero : public Entity
Tank skin;
Weapon weapon;
int energy_shield = 0;
Hero();
virtual ~Hero() override;

View File

@ -120,6 +120,8 @@ void Human::FillMFObjectFull(cs::MFObjectFull* full_data)
#if 0
p->set_downed(downed);
#endif
p->set_energy_shield(energy_shield);
p->set_max_energy_shield(max_energy_shield);
p->set_disconnected(disconnected);
tank_.ToPB(p->mutable_skin());
if (tankskin.skin_id != 0) {
@ -483,7 +485,9 @@ void Human::BeKill(int killer_id, const std::string& killer_name, int weapon_id)
void Human::DecHP(float dec_hp, int killer_id, const std::string& killer_name, int weapon_id)
{
{
if (energy_shield > 0.001f) {
energy_shield = std::max(0.0f, energy_shield - dec_hp);
} else {
float old_health = GetHP();
ability.hp = std::max(0.0f, GetHP() - dec_hp);
if (GetHP() - old_health > 0.001f) {
@ -738,12 +742,8 @@ void Human::FillMFActivePlayerData(cs::MFActivePlayerData* player_data)
for (auto& num : inventory_) {
player_data->add_inventory(num);
}
#if 0
player_data->set_energy_shield(energy_shield);
{
player_data->set_max_energy_shield(max_energy_shield);
}
#endif
player_data->set_max_energy_shield(max_energy_shield);
if (skill_meta_) {
player_data->set_skill_left_time(GetSkillLeftTime());
player_data->set_skill_cd_time(GetSkillCd());

View File

@ -69,6 +69,9 @@ class Human : public Entity
int curr_scope_idx = 0;
int energy_shield = 0;
int max_energy_shield = 0;
bool need_sync_team_data = false;
bool need_sync_teammate_data = false;
bool need_sync_active_player = false;

View File

@ -47,6 +47,7 @@ void Player::Initialize()
}
}
driver_meta_ = MetaMgr::Instance()->GetDriver(driver.driver_id);
max_energy_shield = energy_shield;
RecalcBaseAttr();
}

View File

@ -50,6 +50,7 @@ Player* PlayerMgr::CreatePlayerByCMJoin(long ip_saddr, int socket, const cs::CMJ
hum->auto_fill = msg.auto_fill();
hum->use_touch = msg.use_touch();
hum->avatar_url = msg.avatar_url();
hum->energy_shield = msg.energy_shield();
hum->create_tick = a8::XGetTickCount();
hum->account_registertime = f8::ExtractRegisterTimeFromSessionId(msg.session_id());
for (auto& weapon : msg.weapons()) {