From 2f0bee2fd82ab9d66e250320994395b697cc3237 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 10 Jul 2019 11:21:18 +0800 Subject: [PATCH] 1 --- server/gameserver/android.ai.cc | 2 +- server/gameserver/human.cc | 5 +++++ server/gameserver/human.h | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/server/gameserver/android.ai.cc b/server/gameserver/android.ai.cc index bcd15bf..5030906 100644 --- a/server/gameserver/android.ai.cc +++ b/server/gameserver/android.ai.cc @@ -112,7 +112,7 @@ void AndroidAI::DoAttack() } if (owner->updated_times % 10 == 0) { Human* enemy = owner->room->FindEnemy((Human*)owner); - if (enemy) { + if (enemy && !enemy->HasBuffEffect(BET_Invincible) && !enemy->HasBuffEffect(BET_Hide)) { Human* sender = (Human*)owner; a8::Vec2 shot_dir = enemy->pos - sender->pos; if (std::abs(shot_dir.x) > FLT_EPSILON || diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index f3cf691..b1a2e2b 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -1384,6 +1384,11 @@ void Human::RemoveBuff(int buff_id) } } +bool Human::HasBuffEffect(int buff_effect_id) +{ + return GetBuffByEffectId(buff_effect_id) != nullptr; +} + void Human::_UpdateMove(int speed) { for (int i = 0; i < speed; ++i) { diff --git a/server/gameserver/human.h b/server/gameserver/human.h index 91669bb..a353915 100644 --- a/server/gameserver/human.h +++ b/server/gameserver/human.h @@ -201,6 +201,7 @@ class Human : public Entity void TriggerBuff(std::set& target_list, BuffTriggerType_e trigger_type); void AddBuff(MetaData::Buff* buff_meta); void RemoveBuff(int buff_id); + bool HasBuffEffect(int buff_effect_id); protected: void _UpdateMove(int speed);