This commit is contained in:
aozhiwei 2024-03-28 11:44:43 +08:00
parent 5684536a8e
commit c81d94cf38
7 changed files with 133 additions and 100 deletions

View File

@ -164,6 +164,12 @@ template<> inline void HeroAgent::_Execute_Method_<METHOD_TYPE_HeroAgent_ResetUs
this->HeroAgent::ResetUseSkillTimes();
}
struct METHOD_TYPE_HeroAgent_SearchHumanEnemy { };
template<> inline behaviac::EBTStatus HeroAgent::_Execute_Method_<METHOD_TYPE_HeroAgent_SearchHumanEnemy>(int p0)
{
return this->HeroAgent::SearchHumanEnemy(p0);
}
struct METHOD_TYPE_HeroAgent_SearchPickupObj { };
template<> inline int HeroAgent::_Execute_Method_<METHOD_TYPE_HeroAgent_SearchPickupObj>()
{

View File

@ -633,7 +633,7 @@ namespace behaviac
virtual bool load()
{
AgentMeta::SetTotalSignature(4051514415u);
AgentMeta::SetTotalSignature(2686576916u);
AgentMeta* meta = NULL;
BEHAVIAC_UNUSED_VAR(meta);
@ -750,7 +750,7 @@ namespace behaviac
meta->RegisterMethod(502968959u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorRemove());
// HeroAgent
meta = BEHAVIAC_NEW AgentMeta(254256538u);
meta = BEHAVIAC_NEW AgentMeta(1955586164u);
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(3525744799u, BEHAVIAC_NEW CMemberProperty< TeammateAgent* >("current_teammate_agent", Set_HeroAgent_current_teammate_agent, Get_HeroAgent_current_teammate_agent));
@ -884,6 +884,7 @@ namespace behaviac
meta->RegisterMethod(3146209884u, BEHAVIAC_NEW CAgentMethodVoid_1<glm::vec3&>(FunctionPointer_HeroAgent_RunAway) /* RunAway */);
meta->RegisterMethod(160678866u, BEHAVIAC_NEW CAgentMethodVoid_3<int, int, int>(FunctionPointer_HeroAgent_RunGas) /* RunGas */);
meta->RegisterMethod(3025058903u, BEHAVIAC_NEW CAgentMethod_1< behaviac::EBTStatus, float >(FunctionPointer_HeroAgent_SearchEnemy));
meta->RegisterMethod(3238208553u, BEHAVIAC_NEW CAgentMethod_1< behaviac::EBTStatus, int >(FunctionPointer_HeroAgent_SearchHumanEnemy));
meta->RegisterMethod(1182328469u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_HeroAgent_SearchPickupObj));
meta->RegisterMethod(3477639065u, BEHAVIAC_NEW CAgentMethod_1< bool, int >(FunctionPointer_HeroAgent_SearchTeammate));
meta->RegisterMethod(2380700906u, BEHAVIAC_NEW CAgentMethodVoid_1<int>(FunctionPointer_HeroAgent_SendEmote));
@ -922,7 +923,7 @@ namespace behaviac
meta->RegisterMethod(502968959u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorRemove());
// AndroidAgent
meta = BEHAVIAC_NEW AgentMeta(2829637431u);
meta = BEHAVIAC_NEW AgentMeta(3669426665u);
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(3525744799u, BEHAVIAC_NEW CMemberProperty< TeammateAgent* >("current_teammate_agent", Set_HeroAgent_current_teammate_agent, Get_HeroAgent_current_teammate_agent));
@ -1057,6 +1058,7 @@ namespace behaviac
meta->RegisterMethod(3146209884u, BEHAVIAC_NEW CAgentMethodVoid_1<glm::vec3&>(FunctionPointer_AndroidAgent_RunAway) /* RunAway */);
meta->RegisterMethod(160678866u, BEHAVIAC_NEW CAgentMethodVoid_3<int, int, int>(FunctionPointer_AndroidAgent_RunGas) /* RunGas */);
meta->RegisterMethod(3025058903u, BEHAVIAC_NEW CAgentMethod_1< behaviac::EBTStatus, float >(FunctionPointer_AndroidAgent_SearchEnemy));
meta->RegisterMethod(3238208553u, BEHAVIAC_NEW CAgentMethod_1< behaviac::EBTStatus, int >(FunctionPointer_AndroidAgent_SearchHumanEnemy));
meta->RegisterMethod(1182328469u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_AndroidAgent_SearchPickupObj));
meta->RegisterMethod(3477639065u, BEHAVIAC_NEW CAgentMethod_1< bool, int >(FunctionPointer_AndroidAgent_SearchTeammate));
meta->RegisterMethod(2380700906u, BEHAVIAC_NEW CAgentMethodVoid_1<int>(FunctionPointer_AndroidAgent_SendEmote));

View File

@ -257,6 +257,7 @@ namespace behaviac
inline void FunctionPointer_HeroAgent_RunAway(Agent* self, glm::vec3& loc_point0) { } /* RunAway */
inline void FunctionPointer_HeroAgent_RunGas(Agent* self, int loc_val0, int loc_val1, int loc_val2) { } /* RunGas */
inline behaviac::EBTStatus FunctionPointer_HeroAgent_SearchEnemy(Agent* self, float range) { return ((HeroAgent*)self)->SearchEnemy(range); }
inline behaviac::EBTStatus FunctionPointer_HeroAgent_SearchHumanEnemy(Agent* self, int range) { return (behaviac::EBTStatus)((HeroAgent*)self)->_Execute_Method_<METHOD_TYPE_HeroAgent_SearchHumanEnemy, behaviac::EBTStatus, int >(range); }
inline int FunctionPointer_HeroAgent_SearchPickupObj(Agent* self) { return (int)((HeroAgent*)self)->_Execute_Method_<METHOD_TYPE_HeroAgent_SearchPickupObj, int >(); }
inline bool FunctionPointer_HeroAgent_SearchTeammate(Agent* self, int range) { return (bool)((HeroAgent*)self)->_Execute_Method_<METHOD_TYPE_HeroAgent_SearchTeammate, bool, int >(range); }
inline void FunctionPointer_HeroAgent_SendEmote(Agent* self, int emote) { ((HeroAgent*)self)->_Execute_Method_<METHOD_TYPE_HeroAgent_SendEmote, void, int >(emote); }
@ -387,6 +388,7 @@ namespace behaviac
inline void FunctionPointer_AndroidAgent_RunAway(Agent* self, glm::vec3& loc_point0) { } /* RunAway */
inline void FunctionPointer_AndroidAgent_RunGas(Agent* self, int loc_val0, int loc_val1, int loc_val2) { } /* RunGas */
inline behaviac::EBTStatus FunctionPointer_AndroidAgent_SearchEnemy(Agent* self, float range) { return ((AndroidAgent*)self)->SearchEnemy(range); }
inline behaviac::EBTStatus FunctionPointer_AndroidAgent_SearchHumanEnemy(Agent* self, int range) { return (behaviac::EBTStatus)((HeroAgent*)self)->_Execute_Method_<METHOD_TYPE_HeroAgent_SearchHumanEnemy, behaviac::EBTStatus, int >(range); }
inline int FunctionPointer_AndroidAgent_SearchPickupObj(Agent* self) { return (int)((HeroAgent*)self)->_Execute_Method_<METHOD_TYPE_HeroAgent_SearchPickupObj, int >(); }
inline bool FunctionPointer_AndroidAgent_SearchTeammate(Agent* self, int range) { return (bool)((HeroAgent*)self)->_Execute_Method_<METHOD_TYPE_HeroAgent_SearchTeammate, bool, int >(range); }
inline void FunctionPointer_AndroidAgent_SendEmote(Agent* self, int emote) { ((HeroAgent*)self)->_Execute_Method_<METHOD_TYPE_HeroAgent_SendEmote, void, int >(emote); }

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!--EXPORTED BY TOOL, DON'T MODIFY IT!-->
<agents version="1" signature="4051514415">
<agent type="HeroAgent" base="BaseAgent" signature="254256538">
<agents version="1" signature="2686576916">
<agent type="HeroAgent" base="BaseAgent" signature="1955586164">
<properties>
<property name="current_target_agent" type="TargetAgent*" member="false" static="false" defaultvalue="null" />
<property name="current_teammate_agent" type="TeammateAgent*" member="false" static="false" defaultvalue="null" />
@ -32,7 +32,7 @@
<property name="tmp_val4" type="float" member="false" static="false" defaultvalue="0" />
</properties>
</agent>
<agent type="AndroidAgent" base="HeroAgent" signature="2829637431">
<agent type="AndroidAgent" base="HeroAgent" signature="3669426665">
<properties>
<property name="current_target_agent" type="TargetAgent*" member="false" static="false" defaultvalue="null" />
<property name="current_teammate_agent" type="TeammateAgent*" member="false" static="false" defaultvalue="null" />

View File

@ -2,67 +2,75 @@
<!--EXPORTED BY TOOL, DON'T MODIFY IT!-->
<!--Source File: monster\8002_thief.xml-->
<behavior name="monster/8002_thief" agenttype="HeroAgent" version="5">
<node class="IfElse" id="6">
<node class="Action" id="7">
<property Method="Self.HeroAgent::SearchEnemy(300)" />
<property ResultOption="BT_INVALID" />
<node class="IfElse" id="19">
<node class="Condition" id="20">
<property Operator="Equal" />
<property Opl="Self.HeroAgent::IsMobaMode()" />
<property Opr="const bool true" />
</node>
<node class="SelectorProbability" id="8">
<node class="DecoratorWeight" id="9">
<property DecorateWhenChildEnds="false" />
<property Weight="const int 80" />
<node class="ReferencedBehavior" id="2">
<property ReferenceBehavior="const string &quot;task/RandomWalk&quot;" />
<property Task="Self.HeroAgent::RandomWalk(0,0,{x=0;y=0;z=0;})" />
</node>
</node>
<node class="DecoratorWeight" id="1">
<property DecorateWhenChildEnds="false" />
<property Weight="const int 20" />
<node class="Action" id="4">
<property Method="Self.HeroAgent::CoIdle(2000,4000)" />
<property ResultOption="BT_INVALID" />
</node>
</node>
</node>
<node class="IfElse" id="0">
<node class="Action" id="3">
<property Method="Self.HeroAgent::SearchEnemy(600)" />
<node class="Noop" id="21" />
<node class="IfElse" id="6">
<node class="Action" id="7">
<property Method="Self.HeroAgent::SearchEnemy(300)" />
<property ResultOption="BT_INVALID" />
</node>
<node class="SelectorProbability" id="5">
<node class="DecoratorWeight" id="10">
<node class="SelectorProbability" id="8">
<node class="DecoratorWeight" id="9">
<property DecorateWhenChildEnds="false" />
<property Weight="const int 30" />
<node class="ReferencedBehavior" id="11">
<property Weight="const int 80" />
<node class="ReferencedBehavior" id="2">
<property ReferenceBehavior="const string &quot;task/RandomWalk&quot;" />
<property Task="Self.HeroAgent::RandomWalk(0,0,{x=0;y=0;z=0;})" />
</node>
</node>
<node class="DecoratorWeight" id="12">
<node class="DecoratorWeight" id="1">
<property DecorateWhenChildEnds="false" />
<property Weight="const int 70" />
<node class="Action" id="13">
<property Weight="const int 20" />
<node class="Action" id="4">
<property Method="Self.HeroAgent::CoIdle(2000,4000)" />
<property ResultOption="BT_INVALID" />
</node>
</node>
</node>
<node class="SelectorProbability" id="14">
<node class="DecoratorWeight" id="15">
<property DecorateWhenChildEnds="false" />
<property Weight="const int 10" />
<node class="ReferencedBehavior" id="16">
<property ReferenceBehavior="const string &quot;task/RandomWalk&quot;" />
<property Task="Self.HeroAgent::RandomWalk(0,0,{x=0;y=0;z=0;})" />
<node class="IfElse" id="0">
<node class="Action" id="3">
<property Method="Self.HeroAgent::SearchEnemy(600)" />
<property ResultOption="BT_INVALID" />
</node>
<node class="SelectorProbability" id="5">
<node class="DecoratorWeight" id="10">
<property DecorateWhenChildEnds="false" />
<property Weight="const int 30" />
<node class="ReferencedBehavior" id="11">
<property ReferenceBehavior="const string &quot;task/RandomWalk&quot;" />
<property Task="Self.HeroAgent::RandomWalk(0,0,{x=0;y=0;z=0;})" />
</node>
</node>
<node class="DecoratorWeight" id="12">
<property DecorateWhenChildEnds="false" />
<property Weight="const int 70" />
<node class="Action" id="13">
<property Method="Self.HeroAgent::CoIdle(2000,4000)" />
<property ResultOption="BT_INVALID" />
</node>
</node>
</node>
<node class="DecoratorWeight" id="17">
<property DecorateWhenChildEnds="false" />
<property Weight="const int 90" />
<node class="Action" id="18">
<property Method="Self.HeroAgent::CoIdle(2000,4000)" />
<property ResultOption="BT_INVALID" />
<node class="SelectorProbability" id="14">
<node class="DecoratorWeight" id="15">
<property DecorateWhenChildEnds="false" />
<property Weight="const int 10" />
<node class="ReferencedBehavior" id="16">
<property ReferenceBehavior="const string &quot;task/RandomWalk&quot;" />
<property Task="Self.HeroAgent::RandomWalk(0,0,{x=0;y=0;z=0;})" />
</node>
</node>
<node class="DecoratorWeight" id="17">
<property DecorateWhenChildEnds="false" />
<property Weight="const int 90" />
<node class="Action" id="18">
<property Method="Self.HeroAgent::CoIdle(2000,4000)" />
<property ResultOption="BT_INVALID" />
</node>
</node>
</node>
</node>

View File

@ -2,67 +2,75 @@
<!--EXPORTED BY TOOL, DON'T MODIFY IT!-->
<!--Source File: monster\8003_mystery_troop.xml-->
<behavior name="monster/8003_mystery_troop" agenttype="HeroAgent" version="5">
<node class="IfElse" id="6">
<node class="Action" id="7">
<property Method="Self.HeroAgent::SearchEnemy(300)" />
<property ResultOption="BT_INVALID" />
<node class="IfElse" id="19">
<node class="Condition" id="20">
<property Operator="Equal" />
<property Opl="Self.HeroAgent::IsMobaMode()" />
<property Opr="const bool true" />
</node>
<node class="SelectorProbability" id="8">
<node class="DecoratorWeight" id="9">
<property DecorateWhenChildEnds="false" />
<property Weight="const int 70" />
<node class="ReferencedBehavior" id="2">
<property ReferenceBehavior="const string &quot;task/RandomWalk&quot;" />
<property Task="Self.HeroAgent::RandomWalk(0,0,{x=0;y=0;z=0;})" />
</node>
</node>
<node class="DecoratorWeight" id="1">
<property DecorateWhenChildEnds="false" />
<property Weight="const int 30" />
<node class="Action" id="4">
<property Method="Self.HeroAgent::CoIdle(2000,4000)" />
<property ResultOption="BT_INVALID" />
</node>
</node>
</node>
<node class="IfElse" id="0">
<node class="Action" id="3">
<property Method="Self.HeroAgent::SearchEnemy(600)" />
<node class="Noop" id="21" />
<node class="IfElse" id="6">
<node class="Action" id="7">
<property Method="Self.HeroAgent::SearchEnemy(300)" />
<property ResultOption="BT_INVALID" />
</node>
<node class="SelectorProbability" id="5">
<node class="DecoratorWeight" id="10">
<node class="SelectorProbability" id="8">
<node class="DecoratorWeight" id="9">
<property DecorateWhenChildEnds="false" />
<property Weight="const int 30" />
<node class="ReferencedBehavior" id="11">
<property Weight="const int 70" />
<node class="ReferencedBehavior" id="2">
<property ReferenceBehavior="const string &quot;task/RandomWalk&quot;" />
<property Task="Self.HeroAgent::RandomWalk(0,0,{x=0;y=0;z=0;})" />
</node>
</node>
<node class="DecoratorWeight" id="12">
<node class="DecoratorWeight" id="1">
<property DecorateWhenChildEnds="false" />
<property Weight="const int 70" />
<node class="Action" id="13">
<property Weight="const int 30" />
<node class="Action" id="4">
<property Method="Self.HeroAgent::CoIdle(2000,4000)" />
<property ResultOption="BT_INVALID" />
</node>
</node>
</node>
<node class="SelectorProbability" id="14">
<node class="DecoratorWeight" id="15">
<property DecorateWhenChildEnds="false" />
<property Weight="const int 10" />
<node class="ReferencedBehavior" id="16">
<property ReferenceBehavior="const string &quot;task/RandomWalk&quot;" />
<property Task="Self.HeroAgent::RandomWalk(0,0,{x=0;y=0;z=0;})" />
<node class="IfElse" id="0">
<node class="Action" id="3">
<property Method="Self.HeroAgent::SearchEnemy(600)" />
<property ResultOption="BT_INVALID" />
</node>
<node class="SelectorProbability" id="5">
<node class="DecoratorWeight" id="10">
<property DecorateWhenChildEnds="false" />
<property Weight="const int 30" />
<node class="ReferencedBehavior" id="11">
<property ReferenceBehavior="const string &quot;task/RandomWalk&quot;" />
<property Task="Self.HeroAgent::RandomWalk(0,0,{x=0;y=0;z=0;})" />
</node>
</node>
<node class="DecoratorWeight" id="12">
<property DecorateWhenChildEnds="false" />
<property Weight="const int 70" />
<node class="Action" id="13">
<property Method="Self.HeroAgent::CoIdle(2000,4000)" />
<property ResultOption="BT_INVALID" />
</node>
</node>
</node>
<node class="DecoratorWeight" id="17">
<property DecorateWhenChildEnds="false" />
<property Weight="const int 90" />
<node class="Action" id="18">
<property Method="Self.HeroAgent::CoIdle(2000,4000)" />
<property ResultOption="BT_INVALID" />
<node class="SelectorProbability" id="14">
<node class="DecoratorWeight" id="15">
<property DecorateWhenChildEnds="false" />
<property Weight="const int 10" />
<node class="ReferencedBehavior" id="16">
<property ReferenceBehavior="const string &quot;task/RandomWalk&quot;" />
<property Task="Self.HeroAgent::RandomWalk(0,0,{x=0;y=0;z=0;})" />
</node>
</node>
<node class="DecoratorWeight" id="17">
<property DecorateWhenChildEnds="false" />
<property Weight="const int 90" />
<node class="Action" id="18">
<property Method="Self.HeroAgent::CoIdle(2000,4000)" />
<property ResultOption="BT_INVALID" />
</node>
</node>
</node>
</node>

View File

@ -52,10 +52,17 @@
</node>
</node>
<node class="IfElse" id="6">
<node class="Condition" id="7">
<property Operator="Equal" />
<property Opl="Self.HeroAgent::SearchEnemy(500)" />
<property Opr="const behaviac::EBTStatus BT_SUCCESS" />
<node class="Or" id="7">
<node class="Condition" id="40">
<property Operator="Equal" />
<property Opl="Self.HeroAgent::SearchHumanEnemy(500)" />
<property Opr="const behaviac::EBTStatus BT_SUCCESS" />
</node>
<node class="Condition" id="41">
<property Operator="Equal" />
<property Opl="Self.HeroAgent::SearchEnemy(500)" />
<property Opr="const behaviac::EBTStatus BT_SUCCESS" />
</node>
</node>
<node class="ReferencedBehavior" id="8">
<property ReferenceBehavior="const string &quot;task/ChaseToKill&quot;" />