This commit is contained in:
aozhiwei 2023-10-24 14:14:27 +08:00
parent 14e50a5b7c
commit 1a8a0abdb7
7 changed files with 56 additions and 19 deletions

View File

@ -633,7 +633,7 @@ namespace behaviac
virtual bool load() virtual bool load()
{ {
AgentMeta::SetTotalSignature(2676877482u); AgentMeta::SetTotalSignature(83489020u);
AgentMeta* meta = NULL; AgentMeta* meta = NULL;
BEHAVIAC_UNUSED_VAR(meta); BEHAVIAC_UNUSED_VAR(meta);
@ -734,7 +734,7 @@ namespace behaviac
meta->RegisterMethod(502968959u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorRemove()); meta->RegisterMethod(502968959u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorRemove());
// HeroAgent // HeroAgent
meta = BEHAVIAC_NEW AgentMeta(1983672635u); meta = BEHAVIAC_NEW AgentMeta(1855452084u);
AgentMeta::GetAgentMetas()[2270112014u] = meta; 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(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)); 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(3683918805u, BEHAVIAC_NEW CMethod_HeroAgent_ShotNormal());
meta->RegisterMethod(72479814u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_HeroAgent_ShotTrace)); meta->RegisterMethod(72479814u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_HeroAgent_ShotTrace));
meta->RegisterMethod(1576005918u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_HeroAgent_StayPutAttack) /* StayPutAttack */); 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(179831127u, BEHAVIAC_NEW CAgentMethod< bool >(FunctionPointer_HeroAgent_TargetInShotRange));
meta->RegisterMethod(3214329694u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_HeroAgent_TeammateHelpAttack) /* TeammateHelpAttack */); meta->RegisterMethod(3214329694u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_HeroAgent_TeammateHelpAttack) /* TeammateHelpAttack */);
meta->RegisterMethod(1219646948u, BEHAVIAC_NEW CAgentMethodVoid_3<int, int, int>(FunctionPointer_HeroAgent_UseNormalSkill) /* UseNormalSkill */); meta->RegisterMethod(1219646948u, BEHAVIAC_NEW CAgentMethodVoid_3<int, int, int>(FunctionPointer_HeroAgent_UseNormalSkill) /* UseNormalSkill */);
@ -865,7 +866,7 @@ namespace behaviac
meta->RegisterMethod(502968959u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorRemove()); meta->RegisterMethod(502968959u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorRemove());
// AndroidAgent // AndroidAgent
meta = BEHAVIAC_NEW AgentMeta(1228536963u); meta = BEHAVIAC_NEW AgentMeta(1352895618u);
AgentMeta::GetAgentMetas()[2475098143u] = meta; 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(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)); 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(3683918805u, BEHAVIAC_NEW CMethod_HeroAgent_ShotNormal());
meta->RegisterMethod(72479814u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_AndroidAgent_ShotTrace)); meta->RegisterMethod(72479814u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_AndroidAgent_ShotTrace));
meta->RegisterMethod(1576005918u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_AndroidAgent_StayPutAttack) /* StayPutAttack */); 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(179831127u, BEHAVIAC_NEW CAgentMethod< bool >(FunctionPointer_AndroidAgent_TargetInShotRange));
meta->RegisterMethod(3214329694u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_AndroidAgent_TeammateHelpAttack) /* TeammateHelpAttack */); meta->RegisterMethod(3214329694u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_AndroidAgent_TeammateHelpAttack) /* TeammateHelpAttack */);
meta->RegisterMethod(1219646948u, BEHAVIAC_NEW CAgentMethodVoid_3<int, int, int>(FunctionPointer_AndroidAgent_UseNormalSkill) /* UseNormalSkill */); meta->RegisterMethod(1219646948u, BEHAVIAC_NEW CAgentMethodVoid_3<int, int, int>(FunctionPointer_AndroidAgent_UseNormalSkill) /* UseNormalSkill */);

View File

@ -213,6 +213,7 @@ namespace behaviac
inline void FunctionPointer_HeroAgent_SetV(Agent* self, int id, int val) { ((HeroAgent*)self)->_Execute_Method_<METHOD_TYPE_HeroAgent_SetV, void, int, int >(id, val); } inline void FunctionPointer_HeroAgent_SetV(Agent* self, int id, int val) { ((HeroAgent*)self)->_Execute_Method_<METHOD_TYPE_HeroAgent_SetV, void, int, int >(id, val); }
inline void FunctionPointer_HeroAgent_ShotTrace(Agent* self) { ((HeroAgent*)self)->ShotTrace(); } inline void FunctionPointer_HeroAgent_ShotTrace(Agent* self) { ((HeroAgent*)self)->ShotTrace(); }
inline void FunctionPointer_HeroAgent_StayPutAttack(Agent* self) { } /* StayPutAttack */ 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_<METHOD_TYPE_HeroAgent_TargetInShotRange, bool >(); } inline bool FunctionPointer_HeroAgent_TargetInShotRange(Agent* self) { return (bool)((HeroAgent*)self)->_Execute_Method_<METHOD_TYPE_HeroAgent_TargetInShotRange, bool >(); }
inline void FunctionPointer_HeroAgent_TeammateHelpAttack(Agent* self) { } /* TeammateHelpAttack */ 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 */ 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_<METHOD_TYPE_HeroAgent_SetV, void, int, int >(id, val); } inline void FunctionPointer_AndroidAgent_SetV(Agent* self, int id, int val) { ((HeroAgent*)self)->_Execute_Method_<METHOD_TYPE_HeroAgent_SetV, void, int, int >(id, val); }
inline void FunctionPointer_AndroidAgent_ShotTrace(Agent* self) { ((AndroidAgent*)self)->ShotTrace(); } inline void FunctionPointer_AndroidAgent_ShotTrace(Agent* self) { ((AndroidAgent*)self)->ShotTrace(); }
inline void FunctionPointer_AndroidAgent_StayPutAttack(Agent* self) { } /* StayPutAttack */ 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_<METHOD_TYPE_HeroAgent_TargetInShotRange, bool >(); } inline bool FunctionPointer_AndroidAgent_TargetInShotRange(Agent* self) { return (bool)((HeroAgent*)self)->_Execute_Method_<METHOD_TYPE_HeroAgent_TargetInShotRange, bool >(); }
inline void FunctionPointer_AndroidAgent_TeammateHelpAttack(Agent* self) { } /* TeammateHelpAttack */ 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 */ inline void FunctionPointer_AndroidAgent_UseNormalSkill(Agent* self, int loc_val0, int loc_val1, int loc_val2) { } /* UseNormalSkill */

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!--EXPORTED BY TOOL, DON'T MODIFY IT!--> <!--EXPORTED BY TOOL, DON'T MODIFY IT!-->
<agents version="1" signature="2676877482"> <agents version="1" signature="83489020">
<agent type="HeroAgent" base="BaseAgent" signature="1983672635"> <agent type="HeroAgent" base="BaseAgent" signature="1855452084">
<properties> <properties>
<property name="current_target_agent" type="TargetAgent*" member="false" static="false" defaultvalue="null" /> <property name="current_target_agent" type="TargetAgent*" member="false" static="false" defaultvalue="null" />
<property name="master_agent" type="MasterAgent*" member="false" static="false" defaultvalue="null" /> <property name="master_agent" type="MasterAgent*" member="false" static="false" defaultvalue="null" />
@ -31,7 +31,7 @@
<property name="tmp_val4" type="float" member="false" static="false" defaultvalue="0" /> <property name="tmp_val4" type="float" member="false" static="false" defaultvalue="0" />
</properties> </properties>
</agent> </agent>
<agent type="AndroidAgent" base="HeroAgent" signature="1228536963"> <agent type="AndroidAgent" base="HeroAgent" signature="1352895618">
<properties> <properties>
<property name="current_target_agent" type="TargetAgent*" member="false" static="false" defaultvalue="null" /> <property name="current_target_agent" type="TargetAgent*" member="false" static="false" defaultvalue="null" />
<property name="master_agent" type="MasterAgent*" member="false" static="false" defaultvalue="null" /> <property name="master_agent" type="MasterAgent*" member="false" static="false" defaultvalue="null" />

View File

@ -188,8 +188,22 @@
<property Opr2="const bool true" /> <property Opr2="const bool true" />
<property Phase="Both" /> <property Phase="Both" />
</attachment> </attachment>
<node class="True" id="42" /> <attachment class="Precondition" id="53" flag="precondition">
<node class="Noop" id="43" /> <property BinaryOperator="And" />
<property Operator="Greater" />
<property Opl="Self.HeroAgent::GetLastAttackPassTime()" />
<property Opr2="Self.BaseAgent::RandRange(8000,12000)" />
<property Phase="Both" />
</attachment>
<node class="Condition" id="42">
<property Operator="Equal" />
<property Opl="Self.HeroAgent::TargetInRange(550)" />
<property Opr="const bool true" />
</node>
<node class="Action" id="43">
<property Method="current_target_agent.TargetAgent::Abandon(2,3)" />
<property ResultOption="BT_SUCCESS" />
</node>
<node class="Noop" id="44" /> <node class="Noop" id="44" />
</node> </node>
</node> </node>

View File

@ -9,17 +9,24 @@
<property Prototype="Self.HeroAgent::RunAway({x=0;y=0;z=0;})" /> <property Prototype="Self.HeroAgent::RunAway({x=0;y=0;z=0;})" />
<property IsHTN="false" /> <property IsHTN="false" />
<node class="Sequence" id="1"> <node class="Sequence" id="1">
<node class="Action" id="3"> <node class="DecoratorLoop" id="5">
<property Method="Self.HeroAgent::CoGetRunAwayPoint()" /> <property Count="const int 3" />
<property ResultOption="BT_INVALID" /> <property DecorateWhenChildEnds="true" />
</node> <property DoneWithinFrame="false" />
<node class="Action" id="4"> <node class="Sequence" id="6">
<property Method="Self.HeroAgent::CoFindPath(glm::vec3 Self.HeroAgent::out_point0)" /> <node class="Action" id="3">
<property ResultOption="BT_INVALID" /> <property Method="Self.HeroAgent::CoGetRunAwayPoint()" />
</node> <property ResultOption="BT_INVALID" />
<node class="Action" id="2"> </node>
<property Method="current_target_agent.TargetAgent::Abandon(1,3)" /> <node class="Action" id="4">
<property ResultOption="BT_SUCCESS" /> <property Method="Self.HeroAgent::CoFindPath(glm::vec3 Self.HeroAgent::out_point0)" />
<property ResultOption="BT_INVALID" />
</node>
<node class="Action" id="2">
<property Method="current_target_agent.TargetAgent::Abandon(1,3)" />
<property ResultOption="BT_SUCCESS" />
</node>
</node>
</node> </node>
</node> </node>
</node> </node>

View File

@ -980,3 +980,14 @@ behaviac::EBTStatus HeroAgent::CoGetRunAwayPoint()
}; };
return StartCoroutine(co); 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);
}

View File

@ -79,6 +79,7 @@ public:
int GetLastUseSkillPassTime(); int GetLastUseSkillPassTime();
int GetLastAttackPassTime(); int GetLastAttackPassTime();
float GetHPRate(); float GetHPRate();
bool TargetInRange(float range);
behaviac::EBTStatus RegisterEvents(behaviac::vector<BtEvent_e> events); behaviac::EBTStatus RegisterEvents(behaviac::vector<BtEvent_e> events);
behaviac::EBTStatus SearchEnemy(float range); behaviac::EBTStatus SearchEnemy(float range);