diff --git a/server/bin/exported/behaviac_generated/types/internal/behaviac_agent_meta.cpp b/server/bin/exported/behaviac_generated/types/internal/behaviac_agent_meta.cpp index 6505eaaa..428abe89 100644 --- a/server/bin/exported/behaviac_generated/types/internal/behaviac_agent_meta.cpp +++ b/server/bin/exported/behaviac_generated/types/internal/behaviac_agent_meta.cpp @@ -633,7 +633,7 @@ namespace behaviac virtual bool load() { - AgentMeta::SetTotalSignature(2676877482u); + AgentMeta::SetTotalSignature(83489020u); AgentMeta* meta = NULL; BEHAVIAC_UNUSED_VAR(meta); @@ -734,7 +734,7 @@ namespace behaviac meta->RegisterMethod(502968959u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorRemove()); // HeroAgent - meta = BEHAVIAC_NEW AgentMeta(1983672635u); + meta = BEHAVIAC_NEW AgentMeta(1855452084u); AgentMeta::GetAgentMetas()[2270112014u] = meta; meta->RegisterMemberProperty(2706111800u, BEHAVIAC_NEW CMemberProperty< TargetAgent* >("current_target_agent", Set_HeroAgent_current_target_agent, Get_HeroAgent_current_target_agent)); meta->RegisterMemberProperty(1530109714u, BEHAVIAC_NEW CMemberProperty< MasterAgent* >("master_agent", Set_HeroAgent_master_agent, Get_HeroAgent_master_agent)); @@ -845,6 +845,7 @@ namespace behaviac meta->RegisterMethod(3683918805u, BEHAVIAC_NEW CMethod_HeroAgent_ShotNormal()); meta->RegisterMethod(72479814u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_HeroAgent_ShotTrace)); meta->RegisterMethod(1576005918u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_HeroAgent_StayPutAttack) /* StayPutAttack */); + meta->RegisterMethod(277653485u, BEHAVIAC_NEW CAgentMethod_1< bool, float >(FunctionPointer_HeroAgent_TargetInRange)); meta->RegisterMethod(179831127u, BEHAVIAC_NEW CAgentMethod< bool >(FunctionPointer_HeroAgent_TargetInShotRange)); meta->RegisterMethod(3214329694u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_HeroAgent_TeammateHelpAttack) /* TeammateHelpAttack */); meta->RegisterMethod(1219646948u, BEHAVIAC_NEW CAgentMethodVoid_3(FunctionPointer_HeroAgent_UseNormalSkill) /* UseNormalSkill */); @@ -865,7 +866,7 @@ namespace behaviac meta->RegisterMethod(502968959u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorRemove()); // AndroidAgent - meta = BEHAVIAC_NEW AgentMeta(1228536963u); + meta = BEHAVIAC_NEW AgentMeta(1352895618u); AgentMeta::GetAgentMetas()[2475098143u] = meta; meta->RegisterMemberProperty(2706111800u, BEHAVIAC_NEW CMemberProperty< TargetAgent* >("current_target_agent", Set_HeroAgent_current_target_agent, Get_HeroAgent_current_target_agent)); meta->RegisterMemberProperty(1530109714u, BEHAVIAC_NEW CMemberProperty< MasterAgent* >("master_agent", Set_HeroAgent_master_agent, Get_HeroAgent_master_agent)); @@ -977,6 +978,7 @@ namespace behaviac meta->RegisterMethod(3683918805u, BEHAVIAC_NEW CMethod_HeroAgent_ShotNormal()); meta->RegisterMethod(72479814u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_AndroidAgent_ShotTrace)); meta->RegisterMethod(1576005918u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_AndroidAgent_StayPutAttack) /* StayPutAttack */); + meta->RegisterMethod(277653485u, BEHAVIAC_NEW CAgentMethod_1< bool, float >(FunctionPointer_AndroidAgent_TargetInRange)); meta->RegisterMethod(179831127u, BEHAVIAC_NEW CAgentMethod< bool >(FunctionPointer_AndroidAgent_TargetInShotRange)); meta->RegisterMethod(3214329694u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_AndroidAgent_TeammateHelpAttack) /* TeammateHelpAttack */); meta->RegisterMethod(1219646948u, BEHAVIAC_NEW CAgentMethodVoid_3(FunctionPointer_AndroidAgent_UseNormalSkill) /* UseNormalSkill */); diff --git a/server/bin/exported/behaviac_generated/types/internal/behaviac_agent_meta.h b/server/bin/exported/behaviac_generated/types/internal/behaviac_agent_meta.h index dc9560c8..c9bbf93a 100644 --- a/server/bin/exported/behaviac_generated/types/internal/behaviac_agent_meta.h +++ b/server/bin/exported/behaviac_generated/types/internal/behaviac_agent_meta.h @@ -213,6 +213,7 @@ namespace behaviac inline void FunctionPointer_HeroAgent_SetV(Agent* self, int id, int val) { ((HeroAgent*)self)->_Execute_Method_(id, val); } inline void FunctionPointer_HeroAgent_ShotTrace(Agent* self) { ((HeroAgent*)self)->ShotTrace(); } inline void FunctionPointer_HeroAgent_StayPutAttack(Agent* self) { } /* StayPutAttack */ + inline bool FunctionPointer_HeroAgent_TargetInRange(Agent* self, float range) { return ((HeroAgent*)self)->TargetInRange(range); } inline bool FunctionPointer_HeroAgent_TargetInShotRange(Agent* self) { return (bool)((HeroAgent*)self)->_Execute_Method_(); } inline void FunctionPointer_HeroAgent_TeammateHelpAttack(Agent* self) { } /* TeammateHelpAttack */ inline void FunctionPointer_HeroAgent_UseNormalSkill(Agent* self, int loc_val0, int loc_val1, int loc_val2) { } /* UseNormalSkill */ @@ -303,6 +304,7 @@ namespace behaviac inline void FunctionPointer_AndroidAgent_SetV(Agent* self, int id, int val) { ((HeroAgent*)self)->_Execute_Method_(id, val); } inline void FunctionPointer_AndroidAgent_ShotTrace(Agent* self) { ((AndroidAgent*)self)->ShotTrace(); } inline void FunctionPointer_AndroidAgent_StayPutAttack(Agent* self) { } /* StayPutAttack */ + inline bool FunctionPointer_AndroidAgent_TargetInRange(Agent* self, float range) { return ((AndroidAgent*)self)->TargetInRange(range); } inline bool FunctionPointer_AndroidAgent_TargetInShotRange(Agent* self) { return (bool)((HeroAgent*)self)->_Execute_Method_(); } inline void FunctionPointer_AndroidAgent_TeammateHelpAttack(Agent* self) { } /* TeammateHelpAttack */ inline void FunctionPointer_AndroidAgent_UseNormalSkill(Agent* self, int loc_val0, int loc_val1, int loc_val2) { } /* UseNormalSkill */ diff --git a/server/bin/exported/meta/counterfire.meta.xml b/server/bin/exported/meta/counterfire.meta.xml index d1e4ec74..d5a1e88b 100644 --- a/server/bin/exported/meta/counterfire.meta.xml +++ b/server/bin/exported/meta/counterfire.meta.xml @@ -1,7 +1,7 @@ - - + + @@ -31,7 +31,7 @@ - + diff --git a/server/bin/exported/task/ChaseToKill.xml b/server/bin/exported/task/ChaseToKill.xml index 71931e5b..c5a2129b 100644 --- a/server/bin/exported/task/ChaseToKill.xml +++ b/server/bin/exported/task/ChaseToKill.xml @@ -188,8 +188,22 @@ - - + + + + + + + + + + + + + + + + diff --git a/server/bin/exported/task/RunAway.xml b/server/bin/exported/task/RunAway.xml index 0e0e2214..cc991ce3 100644 --- a/server/bin/exported/task/RunAway.xml +++ b/server/bin/exported/task/RunAway.xml @@ -9,17 +9,24 @@ - - - - - - - - - - - + + + + + + + + + + + + + + + + + + diff --git a/server/gameserver/hero_agent.cc b/server/gameserver/hero_agent.cc index 23e75259..381e8198 100644 --- a/server/gameserver/hero_agent.cc +++ b/server/gameserver/hero_agent.cc @@ -980,3 +980,14 @@ behaviac::EBTStatus HeroAgent::CoGetRunAwayPoint() }; return StartCoroutine(co); } + +bool HeroAgent::TargetInRange(float range) +{ + if (!current_target_agent->IsValid()) { + return false; + } + return Collision::InSquare + (current_target_agent->GetPos(), + owner_->GetPos().ToGlmVec3(), + range); +} diff --git a/server/gameserver/hero_agent.h b/server/gameserver/hero_agent.h index 46b29e4e..ded68998 100644 --- a/server/gameserver/hero_agent.h +++ b/server/gameserver/hero_agent.h @@ -79,6 +79,7 @@ public: int GetLastUseSkillPassTime(); int GetLastAttackPassTime(); float GetHPRate(); + bool TargetInRange(float range); behaviac::EBTStatus RegisterEvents(behaviac::vector events); behaviac::EBTStatus SearchEnemy(float range);