From 03612c3f73ced86f294689b83d73a88ce7ed9a5f Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Fri, 4 Jun 2021 19:19:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D14=20=20=20=20=20=20=20=20Ai?= =?UTF-8?q?=E5=91=BD=E4=B8=AD=E5=AE=9A=E8=BA=ABBUFF=EF=BC=8C=E5=AE=9E?= =?UTF-8?q?=E9=99=85=E4=BB=8D=E5=8F=AF=E5=B0=84=E5=87=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/gameserver/android.ai.cc | 6 ++++++ server/gameserver/hero.ai.cc | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/server/gameserver/android.ai.cc b/server/gameserver/android.ai.cc index 2b7497c..68b7204 100644 --- a/server/gameserver/android.ai.cc +++ b/server/gameserver/android.ai.cc @@ -529,6 +529,9 @@ void AndroidNewAI::UpdateAttack() return; } #endif + if (myself->HasBuffEffect(kBET_Vertigo)) { + return; + } float distance = myself->GetPos().Distance(node_.target.Get()->GetPos()); if (distance > GetAttackRange()) { if (ai_meta->i->pursuit_radius() <= 0) { @@ -608,6 +611,9 @@ void AndroidNewAI::UpdatePursuit() void AndroidNewAI::DoMoveNewAI() { Human* hum = (Human*)owner; + if (hum->HasBuffEffect(kBET_Vertigo)) { + return; + } if (std::abs(hum->GetMoveDir().x) > FLT_EPSILON || std::abs(hum->GetMoveDir().y) > FLT_EPSILON) { hum->on_move_collision = diff --git a/server/gameserver/hero.ai.cc b/server/gameserver/hero.ai.cc index 0982163..ea88ec1 100644 --- a/server/gameserver/hero.ai.cc +++ b/server/gameserver/hero.ai.cc @@ -153,6 +153,9 @@ void HeroAI::UpdateAttack() ChangeToStateAI(HSE_Thinking); return; } + if (myself->HasBuffEffect(kBET_Vertigo)) { + return; + } float distance = myself->GetPos().Distance(node_.target.Get()->GetPos()); if (distance > GetAttackRange()) { if (ai_meta->i->pursuit_radius() <= 0) { @@ -236,6 +239,9 @@ void HeroAI::UpdateFollowMaster() void HeroAI::DoMoveAI() { Hero* hero = (Hero*)owner; + if (hero->HasBuffEffect(kBET_Vertigo)) { + return; + } if (std::abs(hero->GetMoveDir().x) > FLT_EPSILON || std::abs(hero->GetMoveDir().y) > FLT_EPSILON) { auto old_on_move_collision_func = hero->on_move_collision;