From 931008868f7e34ffacbad12a882b4420cae497f4 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 30 Mar 2021 19:58:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=90=8E=E5=9D=90=E5=8A=9B?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/gameserver/creature.cc | 7 +++++++ server/gameserver/creature.h | 3 +-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index 9763dbf..5d07bca 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -64,6 +64,13 @@ void InternalShot(Creature* c, is_tank_skin); } } + if (weapon_meta->i->recoil_force() > 0.000001) { + a8::Vec2 old_move_dir = c->move_dir; + c->MustBeAddBuff(c, kRecoilBuffId); + c->move_dir = c->attack_dir * -1; + c->_UpdateMove(weapon_meta->i->recoil_force()); + c->move_dir = old_move_dir; + } } Creature::Creature():MoveableEntity() diff --git a/server/gameserver/creature.h b/server/gameserver/creature.h index 829856d..0b579c9 100644 --- a/server/gameserver/creature.h +++ b/server/gameserver/creature.h @@ -111,14 +111,13 @@ class Creature : public MoveableEntity void AddInventory(int slot_id, int num); void DecInventory(int slot_id, int num); std::array& GetInventoryData() { return inventory_; }; - + virtual void _UpdateMove(int speed) {}; private: virtual void AddBuffPostProc(Creature* caster, Buff* buff); virtual void OnBuffRemove(const Buff& buff); virtual void DoSkillPreProc(int skill_id, int target_id, const a8::Vec2& target_pos); virtual void DoSkillPostProc(bool used, int skill_id, int target_id, const a8::Vec2& target_pos); - virtual void _UpdateMove(int speed) {}; void UpdateSkill(); void ProcSkillPhase(MetaData::SkillPhase* phase);