From 73d7d819ab0a2eeb0417a18a5ac6c30b5c04aa44 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 4 Mar 2024 19:03:30 +0800 Subject: [PATCH] 1 --- server/gameserver/buff/beatback.cc | 12 ++++++++++++ server/gameserver/creature.cc | 5 +++++ server/gameserver/shot.cc | 10 ++++++++++ 3 files changed, 27 insertions(+) diff --git a/server/gameserver/buff/beatback.cc b/server/gameserver/buff/beatback.cc index af80cccc..fed10907 100644 --- a/server/gameserver/buff/beatback.cc +++ b/server/gameserver/buff/beatback.cc @@ -11,6 +11,17 @@ void BeatBackBuff::Activate() { if (caster_.Get()) { + #if 1 + if (std::abs(caster_.Get()->GetAttackDir().x) > FLT_EPSILON || + std::abs(caster_.Get()->GetAttackDir().y) > FLT_EPSILON) { + if (std::abs(meta->_int_buff_param1) > 0) { + glm::vec3 old_move_dir = owner->GetMoveDir(); + owner->SetMoveDir(caster_.Get()->GetAttackDir()); + owner->ForwardMove(meta->_buff_param1); + owner->SetMoveDir(old_move_dir); + } + } + #else if (std::abs(caster_.Get()->context_dir.x) > FLT_EPSILON || std::abs(caster_.Get()->context_dir.x) > FLT_EPSILON) { if (std::abs(meta->_int_buff_param1) > 0) { @@ -20,6 +31,7 @@ void BeatBackBuff::Activate() owner->SetMoveDir(old_move_dir); } } + #endif } } diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index 911ed33c..da260d65 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -548,6 +548,11 @@ void Creature::RemoveBuffByUniId(int buff_uniid) } if (buff) { buff_id = buff->meta->buff_id(); +#ifdef MYDEBUG + if (buff_id == 210011) { + int i = 0; + } +#endif removed_buffs.push_back(std::make_tuple(buff->meta, buff->GetCaster().Get())); OnBuffRemove(*buff.get()); buff->UnInit(); diff --git a/server/gameserver/shot.cc b/server/gameserver/shot.cc index 4ee0b033..3b37f34a 100644 --- a/server/gameserver/shot.cc +++ b/server/gameserver/shot.cc @@ -564,6 +564,16 @@ void InternalShot(Creature* c, if (c->skill_hold_skill_id != 0) { c->ClearSkillHoldState(); } + #if 0 + if (weapon_meta->id() == 20914) { + c->TryAddBuff(c, + 30708, + nullptr, + nullptr, + nullptr + ); + } + #endif if (weapon_meta->id() == 20611) { float angle = GlmHelper::CalcAngle(c->GetAttackDir(), GlmHelper::UP); std::shared_ptr> buff_vars = std::make_shared>