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()
{
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<int, int, int>(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<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_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_<METHOD_TYPE_HeroAgent_TargetInShotRange, bool >(); }
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_<METHOD_TYPE_HeroAgent_SetV, void, int, int >(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_<METHOD_TYPE_HeroAgent_TargetInShotRange, bool >(); }
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 */

View File

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

View File

@ -188,8 +188,22 @@
<property Opr2="const bool true" />
<property Phase="Both" />
</attachment>
<node class="True" id="42" />
<node class="Noop" id="43" />
<attachment class="Precondition" id="53" flag="precondition">
<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>
</node>

View File

@ -9,6 +9,11 @@
<property Prototype="Self.HeroAgent::RunAway({x=0;y=0;z=0;})" />
<property IsHTN="false" />
<node class="Sequence" id="1">
<node class="DecoratorLoop" id="5">
<property Count="const int 3" />
<property DecorateWhenChildEnds="true" />
<property DoneWithinFrame="false" />
<node class="Sequence" id="6">
<node class="Action" id="3">
<property Method="Self.HeroAgent::CoGetRunAwayPoint()" />
<property ResultOption="BT_INVALID" />
@ -23,4 +28,6 @@
</node>
</node>
</node>
</node>
</node>
</behavior>

View File

@ -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);
}

View File

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