From 9edcf5fffbf8b61cea2b475811b73a12209db6c2 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Thu, 18 Jan 2024 15:03:46 +0800 Subject: [PATCH] 1 --- server/gameserver/buff/callfunc.cc | 10 ++++++++++ server/gameserver/buff/callfunc.h | 2 ++ server/gameserver/constant.h | 3 +++ server/gameserver/creature.cc | 3 +++ 4 files changed, 18 insertions(+) diff --git a/server/gameserver/buff/callfunc.cc b/server/gameserver/buff/callfunc.cc index 7d461954..4ac04448 100644 --- a/server/gameserver/buff/callfunc.cc +++ b/server/gameserver/buff/callfunc.cc @@ -229,6 +229,11 @@ void CallFuncBuff::Activate() } } break; + case BuffCallFunc_e::kAccumulatePower: + { + AccumulatePower(); + } + break; default: { } @@ -1394,3 +1399,8 @@ void CallFuncBuff::ThrowKnife() })); } } + +void CallFuncBuff::AccumulatePower() +{ + +} diff --git a/server/gameserver/buff/callfunc.h b/server/gameserver/buff/callfunc.h index b0b9aa6a..aab60119 100644 --- a/server/gameserver/buff/callfunc.h +++ b/server/gameserver/buff/callfunc.h @@ -37,6 +37,7 @@ A8_DECLARE_CLASS_ENUM(BuffCallFunc_e, int, kSpecCenterRangeHoldBuff = 37, kThrowKnife = 38, kDirectAbsDecHP = 39, + kAccumulatePower = 40, ); @@ -72,6 +73,7 @@ class CallFuncBuff : public Buff void LispEval(); void SpecCenterRangeHoldBuff(); void ThrowKnife(); + void AccumulatePower(); void InternalRangeHoldBuff(std::function get_center_func); diff --git a/server/gameserver/constant.h b/server/gameserver/constant.h index 267e28ce..b54cd49d 100644 --- a/server/gameserver/constant.h +++ b/server/gameserver/constant.h @@ -194,6 +194,8 @@ enum EquipType_e enum GunSubEquipType_e { + GUN_SUB_EQUIP_TYPE_THREE_GUN = 9, + GUN_SUB_EQUIP_TYPE_LASER_CANNON = 10, GUN_SUB_EQUIP_TYPE_FLY_HOOk = 14, GUN_SUB_EQUIP_TYPE_End }; @@ -508,6 +510,7 @@ enum SwitchTimesType_e kEnableDmgForwardTimes, kImmuneGasTimes, kAniHideTimes, + kAccumulatePowerTimes, kSwitchTimeEnd, }; diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index d08b3f0c..b0562b5a 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -3342,6 +3342,9 @@ std::shared_ptr> Creature::CalcReporterList(bool is_trace_bullet, } break; } + if (weapon_meta->equip_subtype() == GUN_SUB_EQUIP_TYPE_THREE_GUN) { + need_gen = true; + } if (need_gen) { float nearest_distance = FLT_MAX; Creature* nearest_hum = nullptr;