From c6426ef305da0e4dc7f42038e43d944d210d3f5a Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 19 Oct 2022 17:18:22 +0800 Subject: [PATCH] 1 --- server/gameserver/ability.cc | 12 ++++++++++++ server/gameserver/creature.cc | 11 +++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/server/gameserver/ability.cc b/server/gameserver/ability.cc index 23f9d2db..266b621a 100644 --- a/server/gameserver/ability.cc +++ b/server/gameserver/ability.cc @@ -293,6 +293,9 @@ void Ability::DelSpeedRuduce(float rate) speed_ruduce_rate_ -= rate; speed_ruduce_rate_ = std::max(0.0f, speed_ruduce_rate_); --speed_ruduce_times_; + if (speed_ruduce_times_ <= 0) { + speed_ruduce_rate_ = 0; + } #ifdef DEBUG if (speed_ruduce_times_ < 0) { abort(); @@ -302,6 +305,15 @@ void Ability::DelSpeedRuduce(float rate) float Ability::GetSpeedRuduce() { +#ifdef DEBUG + if (std::abs(speed_ruduce_rate_) > 0.001f && owner.Get() && owner.Get()->IsPlayer()) { + a8::XPrintf("speed_ruduce_rate:%f speed_ruduce_times_:%d\n", + { + speed_ruduce_rate_, + speed_ruduce_times_ + }); + } +#endif return speed_ruduce_rate_; } diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index 24d28edb..a31d9c2e 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -114,6 +114,13 @@ int Creature::AddBuff(Creature* caster, MetaData::Skill* buff_skill_meta, bool no_check_immune) { +#if 999 + if (buff_meta->i->buff_id() == 8042) { + if (GetBuffById(buff_meta->i->buff_id())) { + return 0; + } + } +#endif if (buff_meta->only_spec_race) { if (!a8::HasBitFlag(buff_meta->only_spec_race, GetEntityType())) { return 0; @@ -510,11 +517,11 @@ void Creature::OnBuffRemove(Buff& buff) #if 999 if (buff.meta->i->buff_id() == 8042) { if (GetAbility()->GetSpeedRuduceTimes() > 0) { - GetAbility()->DelSpeedRuduce(+buff.meta->param3/100.0f); + GetAbility()->DelSpeedRuduce(-buff.meta->param3/100.0f); } #ifdef DEBUG { - a8::XPrintf("移除减速%f", {buff.meta->param3}); + a8::XPrintf("移除减速%f\nad", {buff.meta->param3}); } #endif }