修复看广告问题

This commit is contained in:
aozhiwei 2020-05-13 18:39:25 +08:00
parent 6ba0c3cd3d
commit ce7f6cad29
4 changed files with 13 additions and 4 deletions

View File

@ -52,7 +52,7 @@ void Bullet::OnHit(std::set<Entity*>& objects)
} }
Human* hum = (Human*)target; Human* hum = (Human*)target;
if (hum->HasBuffEffect(kBET_Invincible) || if (hum->HasBuffEffect(kBET_Invincible) ||
hum->HasBuffEffect(kBET_LordMode)) { hum->HasBuffEffect(kBET_AdPlaying)) {
continue; continue;
} }
#if 1 #if 1
@ -62,8 +62,8 @@ void Bullet::OnHit(std::set<Entity*>& objects)
(hum->team_id == 0 || player->team_id != hum->team_id)) { (hum->team_id == 0 || player->team_id != hum->team_id)) {
#endif #endif
#if 1 #if 1
float dmg = gun_meta->i->atk() * (1 + hum->GetBuffAttrRate(kHAT_Atk)) + float dmg = gun_meta->i->atk() * (1 + player->GetBuffAttrRate(kHAT_Atk)) +
hum->GetBuffAttrAbs(kHAT_Atk); player->GetBuffAttrAbs(kHAT_Atk);
#else #else
float dmg = gun_meta->i->atk() * (1 + player->buff.damage_add + player->atk_add); float dmg = gun_meta->i->atk() * (1 + player->buff.damage_add + player->atk_add);
#endif #endif
@ -92,7 +92,8 @@ void Bullet::OnHit(std::set<Entity*>& objects)
Obstacle* obstacle = (Obstacle*)target; Obstacle* obstacle = (Obstacle*)target;
if (!obstacle->dead && obstacle->meta->i->attack_type() == 1) { if (!obstacle->dead && obstacle->meta->i->attack_type() == 1) {
#if 1 #if 1
float dmg = gun_meta->i->atk() * (1 + player->atk_add); float dmg = gun_meta->i->atk() * (1 + player->GetBuffAttrRate(kHAT_Atk)) +
player->GetBuffAttrAbs(kHAT_Atk);
#else #else
float dmg = gun_meta->i->atk() * (1 + player->buff.damage_add + player->atk_add); float dmg = gun_meta->i->atk() * (1 + player->buff.damage_add + player->atk_add);
#endif #endif

View File

@ -883,6 +883,9 @@ void Human::BeKill(int killer_id, const std::string& killer_name, int weapon_id)
if (HasBuffEffect(kBET_Camouflage)) { if (HasBuffEffect(kBET_Camouflage)) {
RemoveBuffByEffectId(kBET_Camouflage); RemoveBuffByEffectId(kBET_Camouflage);
} }
if (GetBuffByEffectId(kBET_LordMode)) {
RemoveBuffByEffectId(kBET_LordMode);
}
int max_revive_times = MetaMgr::Instance()->GetSysParamAsInt("max_revive_times", 1); int max_revive_times = MetaMgr::Instance()->GetSysParamAsInt("max_revive_times", 1);
if (weapon_id != VW_Spectate && if (weapon_id != VW_Spectate &&
dead_times <= max_revive_times && dead_times <= max_revive_times &&

View File

@ -21,6 +21,7 @@ enum HumanStatus
HS_Jump = 3, HS_Jump = 3,
HS_AtkAdd = 11, HS_AtkAdd = 11,
HS_Assaulting = 12, HS_Assaulting = 12,
HS_AlreadyLordMode = 13,
HS_End HS_End
}; };

View File

@ -1228,6 +1228,9 @@ void Player::_CMAdStart(f8::MsgHdr& hdr, const cs::CMAdStart& msg)
if (GetBuffByEffectId(kBET_AdPlaying)) { if (GetBuffByEffectId(kBET_AdPlaying)) {
return; return;
} }
if (a8::HasBitFlag(status, HS_AlreadyLordMode)) {
return;
}
if (ad_timer_) { if (ad_timer_) {
room->xtimer.DeleteTimer(ad_timer_); room->xtimer.DeleteTimer(ad_timer_);
ad_timer_ = nullptr; ad_timer_ = nullptr;
@ -1275,6 +1278,7 @@ void Player::_CMAdEnd(f8::MsgHdr& hdr, const cs::CMAdEnd& msg)
lord_buff_meta = MetaMgr::Instance()->GetBuff(buff_meta->param2); lord_buff_meta = MetaMgr::Instance()->GetBuff(buff_meta->param2);
} }
if (lord_buff_meta) { if (lord_buff_meta) {
a8::SetBitFlag(status, HS_AlreadyLordMode);
AddBuff(lord_buff_meta, 1); AddBuff(lord_buff_meta, 1);
std::vector<std::string> strings; std::vector<std::string> strings;
a8::Split(lord_buff_meta->i->buff_param1(), strings, ':'); a8::Split(lord_buff_meta->i->buff_param1(), strings, ':');