From ecf5d6042ff2d359e3c6052e492bbf10a3023d7e Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 28 Feb 2023 17:41:23 +0800 Subject: [PATCH] 1 --- server/gameserver/buff/hold_shield.cc | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/server/gameserver/buff/hold_shield.cc b/server/gameserver/buff/hold_shield.cc index c68c4d29..90778893 100644 --- a/server/gameserver/buff/hold_shield.cc +++ b/server/gameserver/buff/hold_shield.cc @@ -93,30 +93,17 @@ void HoldShieldBuff::OnShieldDestory(const a8::Args& params) e->SetThrough(true); e->SetCustomCheckCb ( - [sender] + [this, sender] (const a8::Args& args) mutable { bool* is_hit = args.Get(0); Entity* e = args.Get(1); if (sender.Get() && e->IsCreature(sender.Get()->room)) { Creature* c = (Creature*)e; - glm::vec3 target_pos = sender.Get()->GetPos().ToGlmVec3(); - #if 0 - target_pos = target_pos + (sender.Get()->GetAttackDir() * (float)SkillHelper::GetCmxdRange(this_skill_meta) / 2.0f); - bool ret = Collision::Check2dRotationRectangle - (c->GetPos().GetX(), - c->GetPos().GetY(), - 20, - target_pos.x, - target_pos.y, - shield_buff_meta->_buff_param4, - SkillHelper::GetCmxdRange(this_skill_meta), - sender.Get()->GetAttackDirRotate() * 180.0f - ); - if (ret) { + float distance = c->GetPos().Distance2D2(sender.Get()->GetPos()); + if (distance <= skill_meta->_number_meta->_float_range2) { *is_hit = true; } - #endif } } );