添加能量护盾

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()); skin.ToPB(p->mutable_skin());
weapon.ToPB(p->mutable_weapon()); weapon.ToPB(p->mutable_weapon());
p->set_energy_shield(energy_shield);
} }

View File

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

View File

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

View File

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

View File

@ -47,6 +47,7 @@ void Player::Initialize()
} }
} }
driver_meta_ = MetaMgr::Instance()->GetDriver(driver.driver_id); driver_meta_ = MetaMgr::Instance()->GetDriver(driver.driver_id);
max_energy_shield = energy_shield;
RecalcBaseAttr(); 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->auto_fill = msg.auto_fill();
hum->use_touch = msg.use_touch(); hum->use_touch = msg.use_touch();
hum->avatar_url = msg.avatar_url(); hum->avatar_url = msg.avatar_url();
hum->energy_shield = msg.energy_shield();
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());
for (auto& weapon : msg.weapons()) { for (auto& weapon : msg.weapons()) {