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;