From ff132c103beb46e38c4d7604972668f690335f20 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 13 Nov 2023 17:34:45 +0800 Subject: [PATCH] 1 --- server/gameserver/android.cc | 9 +++++++++ server/gameserver/constant_export.h | 3 ++- server/gameserver/creature.h | 1 + server/gameserver/player.cc | 9 +++++++++ 4 files changed, 21 insertions(+), 1 deletion(-) diff --git a/server/gameserver/android.cc b/server/gameserver/android.cc index d37bf6c7..0af185d2 100644 --- a/server/gameserver/android.cc +++ b/server/gameserver/android.cc @@ -107,6 +107,15 @@ void Android::Update(int delta_time) } #endif InternalUpdate(delta_time); + if (shot_hold) { + if (HasBuffEffect(kBET_HoldGun)) { + RemoveBuffByEffectId(kBET_HoldGun); + } + } else { + if (!HasBuffEffect(kBET_HoldGun)) { + TryAddBuffAndSetTime(this, kHoldGunBuffId, 10); + } + } ++updated_times_; } diff --git a/server/gameserver/constant_export.h b/server/gameserver/constant_export.h index c14e0444..c1211d6d 100644 --- a/server/gameserver/constant_export.h +++ b/server/gameserver/constant_export.h @@ -28,6 +28,7 @@ A8_DECLARE_ENUM(SpecBuffId_e, kRecoverHpEffectBuffId = 7040, kPullToWalkableBuffId = 8003, kDiveBuffId = 8054, + kHoldGunBuffId = 8059, kInvincibleBuffId = 1005, ); @@ -107,7 +108,7 @@ A8_DECLARE_ENUM(BuffEffectType_e, kBET_CondAdd = 71, // kBET_Dive = 72, //下潜模式 kBET_Reverse = 73, //人物反向 - kBET_UnUse74 = 74, + kBET_HoldGun = 74, //持枪状态 kBET_MachineGun = 75, //机枪 kBET_HoldShield = 76, //手持盾牌 kBET_InRescue = 77, //被救援中(被就方) diff --git a/server/gameserver/creature.h b/server/gameserver/creature.h index 3621e544..3cb3dbf2 100644 --- a/server/gameserver/creature.h +++ b/server/gameserver/creature.h @@ -128,6 +128,7 @@ class Creature : public MoveableEntity std::vector gemstone_hold_buffs; bool shot_start = false; bool shot_hold = false; + bool pre_shot_hold = false; a8::XTimerWp craze_mode_timer; a8::XTimerWp nature_recover_hp_idle_timer; diff --git a/server/gameserver/player.cc b/server/gameserver/player.cc index 162486ce..f59d6b4c 100644 --- a/server/gameserver/player.cc +++ b/server/gameserver/player.cc @@ -143,6 +143,15 @@ void Player::Update(int delta_time) } } InternalUpdate(delta_time); + if (shot_hold) { + if (HasBuffEffect(kBET_HoldGun)) { + RemoveBuffByEffectId(kBET_HoldGun); + } + } else { + if (!HasBuffEffect(kBET_HoldGun)) { + TryAddBuffAndSetTime(this, kHoldGunBuffId, 10); + } + } ++updated_times_; }