This commit is contained in:
aozhiwei 2023-11-03 17:14:25 +08:00
parent 8f3f141f55
commit 864a04bfb4
3 changed files with 240 additions and 14 deletions

View File

@ -13,9 +13,110 @@
<property Opl="glm::vec3 Self.HeroAgent::tmp_point0" />
<property Opr="current_target_agent.TargetAgent::GetPos()" />
</node>
<node class="Action" id="3">
<property Method="Self.HeroAgent::CoFindPathEx(glm::vec3 Self.HeroAgent::tmp_point0,float Self.HeroAgent::tmp_val0)" />
<node class="Assignment" id="13">
<property CastRight="false" />
<property Opl="float Self.HeroAgent::tmp_val1" />
<property Opr="const float 0" />
</node>
<node class="Action" id="14">
<property Method="Self.HeroAgent::DebugOut(&quot;ddddd寻路&quot;,0,0,0)" />
<property ResultOption="BT_INVALID" />
</node>
<node class="Parallel" id="4">
<property ChildFinishPolicy="CHILDFINISH_ONCE" />
<property ExitPolicy="EXIT_NONE" />
<property FailurePolicy="FAIL_ON_ONE" />
<property SuccessPolicy="SUCCEED_ON_ONE" />
<node class="Action" id="3">
<property Method="Self.HeroAgent::CoFindPathEx(glm::vec3 Self.HeroAgent::tmp_point0,float Self.HeroAgent::tmp_val0)" />
<property ResultOption="BT_INVALID" />
<attachment class="Precondition" id="8" flag="precondition">
<property BinaryOperator="And" />
<property Operator="Equal" />
<property Opl="float Self.HeroAgent::tmp_val1" />
<property Opr2="const float 0" />
<property Phase="Enter" />
</attachment>
<attachment class="Effector" id="12" flag="effector">
<property Operator="Assign" />
<property Opl="float Self.HeroAgent::tmp_val1" />
<property Opr2="const float 1" />
<property Phase="Success" />
</attachment>
</node>
<node class="DecoratorLoop" id="17">
<property Count="const int -1" />
<property DecorateWhenChildEnds="true" />
<property DoneWithinFrame="false" />
<attachment class="Precondition" id="33" flag="precondition">
<property BinaryOperator="And" />
<property Operator="Equal" />
<property Opl="float Self.HeroAgent::tmp_val1" />
<property Opr2="const float 0" />
<property Phase="Both" />
</attachment>
<node class="IfElse" id="18">
<node class="Or" id="22">
<node class="Condition" id="20">
<property Operator="Equal" />
<property Opl="current_target_agent.TargetAgent::HasBuffEffect(kBET_Hide)" />
<property Opr="const bool true" />
</node>
<node class="Condition" id="21">
<property Operator="Equal" />
<property Opl="current_target_agent.TargetAgent::HasBuffEffect(kBET_InGrass)" />
<property Opr="const bool true" />
</node>
</node>
<node class="Sequence" id="24">
<node class="Action" id="5">
<property Method="Self.HeroAgent::DebugOut(&quot;ddddd隐身随机走&quot;,0,0,0)" />
<property ResultOption="BT_INVALID" />
</node>
<node class="Selector" id="7">
<node class="SelectorProbability" id="10">
<node class="DecoratorWeight" id="15">
<property DecorateWhenChildEnds="false" />
<property Weight="const int 50" />
<node class="ReferencedBehavior" id="19">
<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="16">
<property DecorateWhenChildEnds="false" />
<property Weight="const int 50" />
<node class="ReferencedBehavior" id="11">
<property ReferenceBehavior="const string &quot;task/RandomShot&quot;" />
<property Task="Self.HeroAgent::RandomShot(0,0,{x=0;y=0;z=0;})" />
</node>
</node>
</node>
<node class="True" id="9" />
</node>
<node class="Action" id="6">
<property Method="Self.HeroAgent::DebugOut(&quot;ddddd隐身改变量&quot;,0,0,0)" />
<property ResultOption="BT_INVALID" />
</node>
<node class="Assignment" id="26">
<property CastRight="false" />
<property Opl="float Self.HeroAgent::tmp_val1" />
<property Opr="const float 1" />
</node>
<node class="Action" id="28">
<property Method="Self.HeroAgent::DebugOut(&quot;ddddd隐身跳出循环&quot;,0,0,0)" />
<property ResultOption="BT_INVALID" />
</node>
</node>
<node class="Sequence" id="29">
<node class="True" id="23" />
<node class="Action" id="30">
<property Method="Self.HeroAgent::DebugOut(&quot;ddddd没隐身返回真&quot;,0,0,0)" />
<property ResultOption="BT_INVALID" />
</node>
</node>
</node>
</node>
</node>
</node>
</behavior>

View File

@ -50,9 +50,48 @@
<property Opr="const bool true" />
</node>
<node class="IfElse" id="11">
<node class="Action" id="12">
<property Method="Self.HeroAgent::CoShotCurrentTargetRaycast()" />
<property ResultOption="BT_INVALID" />
<node class="Sequence" id="77">
<node class="Action" id="80">
<property Method="Self.HeroAgent::DebugOut(&quot;ddddd可射击嘛&quot;,0,0,0)" />
<property ResultOption="BT_INVALID" />
</node>
<node class="Action" id="12">
<property Method="Self.HeroAgent::CoShotCurrentTargetRaycast()" />
<property ResultOption="BT_INVALID" />
</node>
<node class="Or" id="84">
<node class="And" id="68">
<node class="Condition" id="78">
<property Operator="Equal" />
<property Opl="current_target_agent.TargetAgent::HasBuffEffect(kBET_InGrass)" />
<property Opr="const bool false" />
</node>
<node class="Condition" id="79">
<property Operator="Equal" />
<property Opl="current_target_agent.TargetAgent::HasBuffEffect(kBET_Hide)" />
<property Opr="const bool false" />
</node>
</node>
<node class="And" id="85">
<node class="Or" id="86">
<node class="Condition" id="87">
<property Operator="Equal" />
<property Opl="current_target_agent.TargetAgent::HasBuffEffect(kBET_InGrass)" />
<property Opr="const bool true" />
</node>
<node class="Condition" id="88">
<property Operator="Equal" />
<property Opl="current_target_agent.TargetAgent::HasBuffEffect(kBET_Hide)" />
<property Opr="const bool true" />
</node>
</node>
<node class="Condition" id="89">
<property Operator="LessEqual" />
<property Opl="Self.HeroAgent::GetTargetManhattanDistance()" />
<property Opr="const float 80" />
</node>
</node>
</node>
</node>
<node class="IfElse" id="13">
<node class="Condition" id="14">
@ -61,6 +100,10 @@
<property Opr="const bool true" />
</node>
<node class="Sequence" id="15">
<node class="Action" id="83">
<property Method="Self.HeroAgent::DebugOut(&quot;ddddd发技能&quot;,0,0,0)" />
<property ResultOption="BT_INVALID" />
</node>
<node class="ReferencedBehavior" id="38">
<property ReferenceBehavior="Self.HeroAgent::GetSkillBtFile()" />
</node>
@ -74,6 +117,10 @@
<node class="IfElse" id="36">
<node class="True" id="22" />
<node class="Sequence" id="17">
<node class="Action" id="76">
<property Method="Self.HeroAgent::DebugOut(&quot;ddddd要战斗走位了&quot;,0,0,0)" />
<property ResultOption="BT_INVALID" />
</node>
<node class="Condition" id="28">
<property Operator="Equal" />
<property Opl="Self.HeroAgent::IsMoving()" />
@ -84,12 +131,28 @@
<property Task="Self.HeroAgent::BattleMove({x=0;y=0;z=0;})" />
</node>
</node>
<node class="Noop" id="37" />
<node class="Sequence" id="81">
<node class="Action" id="82">
<property Method="Self.HeroAgent::DebugOut(&quot;ddddd空操作1&quot;,0,0,0)" />
<property ResultOption="BT_INVALID" />
</node>
<node class="Noop" id="37" />
</node>
</node>
<node class="IfElse" id="33">
<node class="False" id="34" />
<node class="Noop" id="35" />
<node class="Sequence" id="90">
<node class="Action" id="91">
<property Method="Self.HeroAgent::DebugOut(&quot;ddddd空操作2&quot;,0,0,0)" />
<property ResultOption="BT_INVALID" />
</node>
<node class="Noop" id="35" />
</node>
<node class="Sequence" id="16">
<node class="Action" id="75">
<property Method="Self.HeroAgent::DebugOut(&quot;ddddd要射击了&quot;,0,0,0)" />
<property ResultOption="BT_INVALID" />
</node>
<node class="Assignment" id="19">
<property CastRight="false" />
<property Opl="glm::vec3 Self.HeroAgent::tmp_point0" />
@ -113,12 +176,38 @@
<property Opl="Self.HeroAgent::GetTargetManhattanDistance()" />
<property Opr="const float 80" />
</node>
<node class="ReferencedBehavior" id="31">
<property ReferenceBehavior="const string &quot;task/RandomWalk&quot;" />
<property Task="Self.HeroAgent::RandomWalk(0,0,{x=0;y=0;z=0;})" />
<node class="Sequence" id="92">
<node class="Action" id="93">
<property Method="Self.HeroAgent::DebugOut(&quot;ddddd不可射击随机走&quot;,0,0,0)" />
<property ResultOption="BT_INVALID" />
</node>
<node class="SelectorProbability" id="97">
<node class="DecoratorWeight" id="98">
<property DecorateWhenChildEnds="false" />
<property Weight="const int 50" />
<node class="ReferencedBehavior" id="31">
<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="99">
<property DecorateWhenChildEnds="false" />
<property Weight="const int 50" />
<node class="ReferencedBehavior" id="96">
<property ReferenceBehavior="const string &quot;task/RandomShot&quot;" />
<property Task="Self.HeroAgent::RandomShot(0,0,{x=0;y=0;z=0;})" />
</node>
</node>
</node>
</node>
<node class="ReferencedBehavior" id="32">
<property ReferenceBehavior="const string &quot;function/FnFindPathToTarget&quot;" />
<node class="Sequence" id="94">
<node class="Action" id="95">
<property Method="Self.HeroAgent::DebugOut(&quot;ddddd不可射击寻路&quot;,0,0,0)" />
<property ResultOption="BT_INVALID" />
</node>
<node class="ReferencedBehavior" id="32">
<property ReferenceBehavior="const string &quot;function/FnFindPathToTarget&quot;" />
</node>
</node>
</node>
</node>

View File

@ -54,10 +54,46 @@
<property Method="Self.HeroAgent::SetAttackDir(glm::vec3 Self.HeroAgent::_$local_task_param_$_2)" />
<property ResultOption="BT_SUCCESS" />
</node>
<node class="Action" id="12">
<property Method="Self.HeroAgent::RegisterEvents(1:kUnderAttackEvent)" />
<node class="Action" id="23">
<property Method="Self.HeroAgent::DebugOut(&quot;ddddd随机走要不要切换目标&quot;,0,0,0)" />
<property ResultOption="BT_INVALID" />
</node>
<node class="IfElse" id="14">
<node class="Sequence" id="15">
<custom>
<node class="Condition" id="18">
<property Operator="Greater" />
<property Opl="Self.HeroAgent::GetNewAttackerPassTime()" />
<property Opr="const int 200" />
</node>
</custom>
<node class="Condition" id="19">
<property Operator="Less" />
<property Opl="Self.HeroAgent::GetNewAttackerPassTime()" />
<property Opr="const int 2000" />
</node>
<node class="Condition" id="20">
<property Operator="Equal" />
<property Opl="Self.HeroAgent::GetNewAttackerInRange(350)" />
<property Opr="const bool true" />
</node>
</node>
<node class="Sequence" id="16">
<node class="Action" id="21">
<property Method="Self.HeroAgent::ResetShotTimes()" />
<property ResultOption="BT_SUCCESS" />
</node>
<node class="Action" id="22">
<property Method="Self.HeroAgent::SwitchToNewAttacker()" />
<property ResultOption="BT_SUCCESS" />
</node>
<node class="Action" id="24">
<property Method="Self.HeroAgent::DebugOut(&quot;ddddd随机走已切换目标&quot;,0,0,0)" />
<property ResultOption="BT_INVALID" />
</node>
</node>
<node class="Noop" id="17" />
</node>
<node class="Action" id="11">
<property Method="Self.HeroAgent::CoMoveForward(150,300)" />
<property ResultOption="BT_INVALID" />