diff --git a/server/gameserver/buff/callfunc.cc b/server/gameserver/buff/callfunc.cc index 097588af..b2d33ae5 100644 --- a/server/gameserver/buff/callfunc.cc +++ b/server/gameserver/buff/callfunc.cc @@ -20,7 +20,8 @@ void CallFuncBuff::Activate() break; case BuffCallFunc_e::kSpeedReduce: { - owner->GetAbility()->AddSpeedRuduce(meta->_buff_param2); + hold_param2_ = meta->GetBuffParam2(owner, skill_meta); + owner->GetAbility()->AddSpeedRuduce(hold_param2_); } break; case BuffCallFunc_e::kInternalRangeAddBuff: @@ -54,7 +55,7 @@ void CallFuncBuff::Deactivate() break; case BuffCallFunc_e::kSpeedReduce: { - owner->GetAbility()->DelSpeedRuduce(meta->_buff_param2); + owner->GetAbility()->DelSpeedRuduce(hold_param2_); } break; default: @@ -100,12 +101,13 @@ void CallFuncBuff::ProcIntervalRangeAddBuffFunc() void CallFuncBuff::ProcAddMinorMode() { if (skill_meta) { + float dur_time = meta->GetBuffParam3(owner, skill_meta); Skill* skill = owner->GetSkill(skill_meta->skill_id()); if (skill) { skill->AddMinorMode ( meta->_int_buff_param2, - meta->_int_buff_param3, + dur_time, [this] (int action) { if (action == 0) { diff --git a/server/gameserver/buff/callfunc.h b/server/gameserver/buff/callfunc.h index d1b78472..dfc8dd81 100644 --- a/server/gameserver/buff/callfunc.h +++ b/server/gameserver/buff/callfunc.h @@ -22,4 +22,6 @@ class CallFuncBuff : public Buff void ProcIntervalRangeAddBuffFunc(); void ProcAddMinorMode(); void ProcMarkTag(); + + float hold_param2_ = 0.0; };