diff --git a/server/gameserver/buff/callfunc.cc b/server/gameserver/buff/callfunc.cc index c9b1ef87..5f7bff31 100644 --- a/server/gameserver/buff/callfunc.cc +++ b/server/gameserver/buff/callfunc.cc @@ -75,8 +75,11 @@ void CallFuncBuff::Activate() owner->GetAbility()->SetFixedSpeed(hold_param2_); } break; + case BuffCallFunc_e::kAddEnergyShield: default: { + hold_param2_ = meta->GetBuffParam2(this); + ProcAddEnergyShield(); } break; } @@ -244,3 +247,8 @@ void CallFuncBuff::ProcFlashMove() } owner->context_real_pos = owner->GetPos().ToGlmVec3(); } + +void CallFuncBuff::ProcAddEnergyShield() +{ + owner->AddEnergyShield(hold_param2_); +} diff --git a/server/gameserver/buff/callfunc.h b/server/gameserver/buff/callfunc.h index 26834513..5e876ec2 100644 --- a/server/gameserver/buff/callfunc.h +++ b/server/gameserver/buff/callfunc.h @@ -11,7 +11,8 @@ A8_DECLARE_CLASS_ENUM(BuffCallFunc_e, int, kSpeedAddition = 6, kRemoveBuff = 7, kFlashMove = 8, - kSetSpeed = 9 + kSetSpeed = 9, + kAddEnergyShield = 10 ); @@ -28,6 +29,7 @@ class CallFuncBuff : public Buff void ProcMarkTag(); void ProcRemoveBuff(); void ProcFlashMove(); + void ProcAddEnergyShield(); float hold_param2_ = 0.0; };