From c9d024e54e78b105a2f66f72ddb4fdfaeafe3be5 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 8 Nov 2023 15:31:31 +0800 Subject: [PATCH] 1 --- server/gameserver/buff/callfunc.cc | 73 ++++++++++++++++++++++++++++++ server/gameserver/buff/callfunc.h | 2 + 2 files changed, 75 insertions(+) diff --git a/server/gameserver/buff/callfunc.cc b/server/gameserver/buff/callfunc.cc index 492cca6a..b745a4ad 100644 --- a/server/gameserver/buff/callfunc.cc +++ b/server/gameserver/buff/callfunc.cc @@ -229,6 +229,11 @@ void CallFuncBuff::Deactivate() owner->ClearEnergyShield(); } break; + case BuffCallFunc_e::kLispEval: + { + LispEval(); + } + break; default: { } @@ -1142,3 +1147,71 @@ void CallFuncBuff::PlayFlyEffect() } owner->TryAddBuff(GetCaster().Get(), meta->_int_buff_param4, skill_meta); } + +void CallFuncBuff::LispEval() +{ + for (int i = 1; i <= 8; ++i) { + switch (i) { + case 1: + { + if (!meta->buff_param1().empty()) { + meta->GetBuffParam1(this); + } + } + break; + case 2: + { + if (!meta->buff_param2().empty()) { + meta->GetBuffParam2(this); + } + } + break; + case 3: + { + if (!meta->buff_param3().empty()) { + meta->GetBuffParam3(this); + } + } + break; + case 4: + { + if (!meta->buff_param4().empty()) { + meta->GetBuffParam4(this); + } + } + break; + case 5: + { + if (!meta->buff_param5().empty()) { + meta->GetBuffParam5(this); + } + } + break; + case 6: + { + if (!meta->buff_param6().empty()) { + meta->GetBuffParam6(this); + } + } + break; + case 7: + { + if (!meta->buff_param7().empty()) { + meta->GetBuffParam7(this); + } + } + break; + case 8: + { + if (!meta->buff_param8().empty()) { + meta->GetBuffParam8(this); + } + } + break; + default: + { + break; + } + } + } +} diff --git a/server/gameserver/buff/callfunc.h b/server/gameserver/buff/callfunc.h index f97d2047..1275723b 100644 --- a/server/gameserver/buff/callfunc.h +++ b/server/gameserver/buff/callfunc.h @@ -33,6 +33,7 @@ A8_DECLARE_CLASS_ENUM(BuffCallFunc_e, int, kDisableClientSkill = 33, kRangeHoldBuff = 34, kPlayFlyEffect = 35, + kLispEval = 36, ); @@ -65,6 +66,7 @@ class CallFuncBuff : public Buff void SummonCarSpecPoint(); void RangeHoldBuff(); void PlayFlyEffect(); + void LispEval(); float hold_param2_ = 0.0; Weapon* hold_weapon_ = nullptr;