This commit is contained in:
aozhiwei 2021-03-19 14:12:49 +08:00
parent 4e40976eea
commit d8580561af
4 changed files with 11 additions and 10 deletions

View File

@ -1313,9 +1313,9 @@ void Human::DoJump()
} }
} }
int Human::SelectSkillId() Skill* Human::SelectSkill()
{ {
return 0; return nullptr;
} }
void Human::DoGetOn(int obj_uniid) void Human::DoGetOn(int obj_uniid)

View File

@ -190,7 +190,7 @@ class Human : public Creature
bool HasNoDownedTeammate(); bool HasNoDownedTeammate();
void DoJump(); void DoJump();
virtual bool CanUseSkill(int skill_id) override; virtual bool CanUseSkill(int skill_id) override;
virtual int SelectSkillId(); virtual Skill* SelectSkill();
void DoGetOn(int obj_uniid); void DoGetOn(int obj_uniid);
void DoGetDown(); void DoGetDown();
void FindLocation(); void FindLocation();

View File

@ -191,10 +191,11 @@ void ZombieModeAI::UpdateAttack()
} }
float distance = myself->GetPos().Distance(node_->target->GetPos()); float distance = myself->GetPos().Distance(node_->target->GetPos());
if (distance > GetAttackRange()) { if (distance > GetAttackRange()) {
if (myself->CanUseSkill(myself->SelectSkillId()) && Skill* skill = myself->SelectSkill();
myself->CurrentSkill()->meta->i->skill_id() != TURN_OVER_SKILL_ID && if (myself->CanUseSkill(skill->meta->i->skill_id()) &&
distance < myself->CurrentSkill()->meta->i->skill_distance()) { skill->meta->i->skill_id() != TURN_OVER_SKILL_ID &&
DoSkill(); distance < skill->meta->i->skill_distance()) {
DoSkill(skill->meta->i->skill_id());
} else if (node_->ai_meta->i->pursuit_radius() <= 0) { } else if (node_->ai_meta->i->pursuit_radius() <= 0) {
//站桩 //站桩
ChangeToState(ZSE_Thinking); ChangeToState(ZSE_Thinking);
@ -475,10 +476,10 @@ void ZombieModeAI::DoShot()
} }
} }
void ZombieModeAI::DoSkill() void ZombieModeAI::DoSkill(int skill_id)
{ {
Human* myself = (Human*)owner; Human* myself = (Human*)owner;
myself->DoSkill(myself->SelectSkillId(), node_->target->GetEntityUniId(), node_->target->GetPos()); myself->DoSkill(skill_id, node_->target->GetEntityUniId(), node_->target->GetPos());
} }
int ZombieModeAI::GetAttackTimes() int ZombieModeAI::GetAttackTimes()

View File

@ -33,7 +33,7 @@ private:
void DoMove(); void DoMove();
void ChangeToState(ZombieState_e to_state); void ChangeToState(ZombieState_e to_state);
void DoShot(); void DoShot();
void DoSkill(); void DoSkill(int skill_id);
Human* GetTarget(); Human* GetTarget();
float GetAttackRange(); float GetAttackRange();