From 9654c35e61eb42e678effbbf5797b3dd612a8bd0 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 13 Sep 2022 20:37:13 +0800 Subject: [PATCH] 1 --- server/gameserver/buff.cc | 8 ++++++++ server/gameserver/human.cc | 6 ++++++ server/gameserver/player.cc | 6 ++++++ 3 files changed, 20 insertions(+) diff --git a/server/gameserver/buff.cc b/server/gameserver/buff.cc index 956256d5..67b88e4d 100644 --- a/server/gameserver/buff.cc +++ b/server/gameserver/buff.cc @@ -939,6 +939,14 @@ void Buff::ProcMachineGun() caster_.Get()->need_sync_active_player = true; caster_.Get()->SyncAroundPlayers(__FILE__, __LINE__, __func__); } + if (skill_meta) { + if (skill_meta->GetMagicId() == MAGIC_FG) { + bool shot_ok = false; + a8::Vec2 target_dir = owner->GetAttackDir(); + owner->last_shot_frameno_ = 0; + owner->Shot(target_dir, shot_ok, 5); + } + } } void Buff::ProcRemoveMachineGun() diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 06176413..e0219b5c 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -353,6 +353,12 @@ float Human::GetSpeed() return buff->meta->param2; } } + { + Buff* buff = GetBuffByEffectId(kBET_HoldShield); + if (buff) { + return buff->meta->param1; + } + } { Buff* buff = GetBuffByEffectId(kBET_Jump); if (buff) { diff --git a/server/gameserver/player.cc b/server/gameserver/player.cc index d683ce17..85c65e47 100644 --- a/server/gameserver/player.cc +++ b/server/gameserver/player.cc @@ -275,6 +275,12 @@ void Player::UpdateShot() series_shot_frames = 0; return; } + if (HasBuffEffect(kBET_HoldShield)) { + shot_start = false; + shot_hold = false; + series_shot_frames = 0; + return; + } if (HasBuffEffect(kBET_Sprint)) { shot_start = false; shot_hold = false;