fix c4 time bug

This commit is contained in:
aozhiwei 2021-07-07 02:35:20 +00:00
parent 0e15e58980
commit f99e54b74d
3 changed files with 11 additions and 3 deletions

View File

@ -132,6 +132,13 @@ void Bullet::ProcBomb()
if (!block) { if (!block) {
delay_time = gun_meta->i->missiles_time(); delay_time = gun_meta->i->missiles_time();
} }
if (IsCurrWeapon() &&
sender.Get() &&
sender.Get()->GetAbility()->GetAttrAbs(kHAT_WeaponExplosionDealyTime) > 0) {
delay_time = delay_time / 1000 -
sender.Get()->GetAbility()->GetAttrAbs(kHAT_WeaponExplosionDealyTime) ;
delay_time = std::max(0, delay_time);
}
switch (meta->i->_inventory_slot()) { switch (meta->i->_inventory_slot()) {
case IS_RPG: case IS_RPG:
{ {

View File

@ -159,12 +159,13 @@ enum HumanAttrType_e
kHAT_WeaponShotSpeed = 21, kHAT_WeaponShotSpeed = 21,
kHAT_WeaponReloadTime = 22, kHAT_WeaponReloadTime = 22,
kHAT_WeaponExplosionRange = 23, kHAT_WeaponExplosionRange = 23,
kHAT_WeaponExplosionTime = 24, kHAT_WeaponExplosionContinueTime = 24,
kHAT_PoisoningReduction = 25, kHAT_PoisoningReduction = 25,
kHAT_RescueTime = 26, kHAT_RescueTime = 26,
kHAT_DrugTime = 27, kHAT_DrugTime = 27,
kHAT_DrugEfficacy = 28, kHAT_DrugEfficacy = 28,
kHAT_CarOil = 29, kHAT_CarOil = 29,
kHAT_WeaponExplosionDealyTime = 30,
kHAT_End kHAT_End
}; };

View File

@ -196,8 +196,8 @@ void RoomObstacle::SpecExplosion()
} }
} }
int total_explosion_times = meta->i->explosion_times(); int total_explosion_times = meta->i->explosion_times();
if (context_ability && context_ability->GetAttrAbs(kHAT_WeaponExplosionTime) > 0.001f) { if (context_ability && context_ability->GetAttrAbs(kHAT_WeaponExplosionContinueTime) > 0.001f) {
total_explosion_times += context_ability->GetAttrAbs(kHAT_WeaponExplosionTime) * 1000 / total_explosion_times += context_ability->GetAttrAbs(kHAT_WeaponExplosionContinueTime) * 1000 /
meta->i->explosion_interval(); meta->i->explosion_interval();
} }
if (explosion_times_ >= total_explosion_times) { if (explosion_times_ >= total_explosion_times) {