diff --git a/server/gameserver/buff/callfunc.cc b/server/gameserver/buff/callfunc.cc index 380ab247..8864a272 100644 --- a/server/gameserver/buff/callfunc.cc +++ b/server/gameserver/buff/callfunc.cc @@ -95,6 +95,11 @@ void CallFuncBuff::Activate() ProcSyncProp(); } break; + case BuffCallFunc_e::kSetBulletBornOffset: + { + owner->GetCurrWeapon()->bullet_born_offset_ptr = &meta->_bullet_born_offset; + } + break; default: { } @@ -113,6 +118,11 @@ void CallFuncBuff::Deactivate() } } break; + case BuffCallFunc_e::kSetBulletBornOffset: + { + owner->GetCurrWeapon()->bullet_born_offset_ptr = nullptr; + } + break; default: { } diff --git a/server/gameserver/buff/callfunc.h b/server/gameserver/buff/callfunc.h index 89a30dab..5745833b 100644 --- a/server/gameserver/buff/callfunc.h +++ b/server/gameserver/buff/callfunc.h @@ -13,7 +13,8 @@ A8_DECLARE_CLASS_ENUM(BuffCallFunc_e, int, kAddHp = 11, kFlashMoveToPos = 12, kLightCircle = 13, - kSyncProp = 16 + kSyncProp = 16, + kSetBulletBornOffset = 17 ); diff --git a/server/gameserver/weapon.h b/server/gameserver/weapon.h index 1d0fceec..83ec0d34 100644 --- a/server/gameserver/weapon.h +++ b/server/gameserver/weapon.h @@ -18,6 +18,7 @@ class Weapon const mt::Equip* meta = nullptr; const mt::Equip* bullet_meta = nullptr; const mt::Skill* skill_meta = nullptr; + const std::vector>* bullet_born_offset_ptr = nullptr; void Clear(); void ToPB(Creature* c, cs::MFWeapon* pb_obj);