先附上原作出處是好習慣 原名叫做
菲逖斯特魔戰AI實戰應用
簡單說就像是排球AI的獨立多動作版,如果沒有特別指定或是怪物有警示了,寵會自動做出單打的動作
<rules>
<rule name="弓箭瞄準寵物的反應">
<conditions/>
<pattern>
<param_decl/>
<sequence>
<cmd name="cancel_skill"/>
<cmd name="melee_attack" timeout="5000"/>
<cmd name="prepare_skill" pet_skill="smash" try_cnt="0" timeout="1000"/>
<cmd name="chase" chase_target="enemy" timeout="3000" run="true"/>
<cmd name="melee_attack" timeout="5000"/>
</sequence>
</pattern>
<event name="aimed"/>
</rule>
<rule name="主人被弓箭瞄準的反應">
<conditions/>
<pattern>
<param_decl/>
<sequence>
<cmd name="cancel_skill"/>
<cmd name="melee_attack" timeout="5000"/>
<cmd name="prepare_skill" pet_skill="smash" try_cnt="0" timeout="1000"/>
<cmd name="chase" chase_target="enemy" timeout="3000" run="true"/>
<cmd name="melee_attack" timeout="5000"/>
</sequence>
</pattern>
<event name="master_aimed"/>
</rule>
<rule name="魔法瞄準寵物的反應">
<conditions/>
<pattern>
<param_decl/>
<sequence>
<cmd name="cancel_skill"/>
<cmd name="melee_attack" timeout="5000"/>
<cmd name="prepare_skill" pet_skill="smash" try_cnt="0" timeout="1000"/>
<cmd name="chase" chase_target="enemy" timeout="2000" run="true"/>
<cmd name="melee_attack" timeout="5000"/>
<cmd name="prepare_skill" pet_skill="firebolt" try_cnt="0" timeout="500"/>
<cmd name="stackmagic_attack" stack_magic="firebolt" charge="1" timeout="5000"/>
<cmd name="prepare_skill" pet_skill="counter" try_cnt="1" timeout="500"/>
</sequence>
</pattern>
<event name="target_magic_prepare"/>
</rule>
<rule name="主人被魔法瞄準的反應">
<conditions/>
<pattern>
<param_decl/>
<sequence>
<cmd name="cancel_skill"/>
<cmd name="melee_attack" timeout="5000"/>
<cmd name="prepare_skill" pet_skill="smash" try_cnt="0" timeout="1000"/>
<cmd name="chase" chase_target="enemy" timeout="2000" run="true"/>
<cmd name="melee_attack" timeout="5000"/>
<cmd name="prepare_skill" pet_skill="firebolt" try_cnt="0" timeout="500"/>
<cmd name="stackmagic_attack" stack_magic="firebolt" charge="1" timeout="5000"/>
<cmd name="prepare_skill" pet_skill="counter" try_cnt="1" timeout="500"/>
</sequence>
</pattern>
<event name="master_target_magic_prepare"/>
</rule>
<rule name="寵物反擊後的反應-怪物太近">
<conditions>
<condition name="target_state" state="blowaway"/>
<condition name="target_distance" min_distance="100" max_distance="600"/>
</conditions>
<pattern>
<param_decl/>
<sequence>
<cmd name="cancel_skill"/>
<cmd name="move_around" clockwise="false" radius="1000" run="true" timeout="500"/>
<cmd name="move_around" clockwise="true" radius="1000" run="true" timeout="500"/>
<cmd name="move_against" distance="1000" run="true" timeout="1000"/>
<cmd name="prepare_skill" pet_skill="defence" try_cnt="0" timeout="500"/>
<cmd name="move_around" clockwise="true" radius="1000" run="true" timeout="2000"/>
<cmd name="move_around" clockwise="true" radius="1000" run="true" timeout="2000"/>
<cmd name="cancel_skill"/>
<cmd name="melee_attack" timeout="5000"/>
</sequence>
</pattern>
<event name="now_targeting"/>
</rule>
<rule name="寵物普攻後的反應-怪物太近">
<conditions>
<condition name="target_state" state="shoved"/>
<condition name="target_distance" min_distance="100" max_distance="500"/>
</conditions>
<pattern>
<param_decl/>
<sequence>
<cmd name="prepare_skill" pet_skill="defence" try_cnt="0" timeout="500"/>
<cmd name="move_against" distance="1000" run="true" timeout="4000"/>
<cmd name="prepare_skill" pet_skill="smash" try_cnt="0" timeout="500"/>
<cmd name="move_around" clockwise="true" radius="300" run="true" timeout="2000"/>
<cmd name="melee_attack" timeout="5000"/>
<cmd name="prepare_skill" pet_skill="counter" try_cnt="1" timeout="500"/>
</sequence>
</pattern>
<event name="now_targeting"/>
</rule>
<rule name="寵物被警告的反應">
<conditions/>
<pattern>
<param_decl/>
<sequence>
<cmd name="prepare_skill" pet_skill="smash" try_cnt="0" timeout="500"/>
<cmd name="melee_attack" timeout="5000"/>
<cmd name="prepare_skill" pet_skill="defence" try_cnt="1" timeout="500"/>
<cmd name="move_around" clockwise="false" radius="1000" run="false" timeout="3000"/>
<cmd name="move_around" clockwise="true" radius="1000" run="false" timeout="3000"/>
<cmd name="move_against" distance="1000" run="true" timeout="2000"/>
<cmd name="wait" min="1000" max="2000"/>
<cmd name="cancel_skill"/>
<cmd name="melee_attack" timeout="5000"/>
</sequence>
</pattern>
<event name="targeted" targeting_type="attack"/>
</rule>
<rule name="寵物被打的反應1">
<conditions/>
<pattern>
<param_decl/>
<sequence>
<cmd name="move_against" distance="300" run="true" timeout="1000"/>
<cmd name="prepare_skill" pet_skill="smash" try_cnt="1" timeout="1000"/>
<cmd name="move_around" clockwise="true" radius="300" run="true" timeout="2000"/>
<cmd name="melee_attack" timeout="5000"/>
<cmd name="prepare_skill" pet_skill="counter" try_cnt="1" timeout="500"/>
</sequence>
</pattern>
<event name="attacked" master_skill="all" down="false"/>
</rule>
<rule name="寵物被打的反應2">
<conditions/>
<pattern>
<param_decl/>
<sequence>
<cmd name="move_against" distance="300" run="true" timeout="1000"/>
<cmd name="prepare_skill" pet_skill="smash" try_cnt="0" timeout="1000"/>
<cmd name="move_around" clockwise="true" radius="200" run="true" timeout="1000"/>
<cmd name="melee_attack" timeout="5000"/>
<cmd name="prepare_skill" pet_skill="defence" try_cnt="0" timeout="500"/>
<cmd name="move_against" distance="1000" run="false" timeout="3000"/>
<cmd name="move_around" clockwise="false" radius="1000" run="true" timeout="5000"/>
<cmd name="melee_attack" timeout="5000"/>
</sequence>
</pattern>
<event name="attacked" master_skill="all" down="true"/>
</rule>
<rule name="寵物被盯危險-怪物防禦">
<conditions>
<condition name="target_state" state="walk"/>
</conditions>
<pattern>
<param_decl/>
<sequence>
<cmd name="prepare_skill" pet_skill="smash" try_cnt="0" timeout="1000"/>
<cmd name="melee_attack" timeout="5000"/>
<cmd name="prepare_skill" pet_skill="counter" try_cnt="1" timeout="500"/>
</sequence>
</pattern>
<event name="target_skill_prepare"/>
</rule>
<rule name="寵物被盯危險-怪物重擊">
<conditions>
<condition name="target_state" state="run"/>
</conditions>
<pattern>
<param_decl/>
<sequence>
<cmd name="cancel_skill"/>
<cmd name="melee_attack" timeout="5000"/>
<cmd name="prepare_skill" pet_skill="counter" try_cnt="1" timeout="500"/>
</sequence>
</pattern>
<event name="target_skill_prepare"/>
</rule>
<rule name="寵物被盯危險-怪物反擊">
<conditions>
<condition name="target_state" state="stop"/>
</conditions>
<pattern>
<param_decl/>
<sequence>
<cmd name="cancel_skill"/>
<cmd name="move_against" distance="1000" run="true" timeout="2000"/>
<cmd name="move_around" clockwise="false" radius="1000" run="true" timeout="2000"/>
<cmd name="prepare_skill" pet_skill="smash" try_cnt="0" timeout="500"/>
<cmd name="move_around" clockwise="true" radius="300" run="false" timeout="2000"/>
<cmd name="melee_attack" timeout="5000"/>
</sequence>
</pattern>
<event name="target_skill_prepare"/>
</rule>
<rule name="寵物普攻後的反應">
<conditions/>
<pattern>
<param_decl/>
<sequence>
<cmd name="prepare_skill" pet_skill="counter" try_cnt="0" timeout="500"/>
</sequence>
</pattern>
<event name="attack" pet_attackable_skill="basic" down="true"/>
</rule>
<rule name="寵物防禦後的反應">
<conditions/>
<pattern>
<param_decl/>
<sequence>
<cmd name="melee_attack" timeout="5000"/>
<cmd name="prepare_skill" pet_skill="counter" try_cnt="1" timeout="500"/>
</sequence>
</pattern>
<event name="defence" defence_enable_skill="all"/>
</rule>
<rule name="寵物反擊後的反應">
<conditions/>
<pattern>
<param_decl/>
<sequence>
<cmd name="prepare_skill" pet_skill="firebolt" try_cnt="1" timeout="500"/>
<cmd name="stackmagic_attack" stack_magic="firebolt" charge="1" timeout="5000"/>
<cmd name="prepare_skill" pet_skill="defence" try_cnt="0" timeout="500"/>
<cmd name="move_against" distance="1000" run="true" timeout="3000"/>
<cmd name="move_around" clockwise="false" radius="1000" run="true" timeout="3000"/>
<cmd name="move_around" clockwise="true" radius="1000" run="true" timeout="3000"/>
<cmd name="cancel_skill"/>
<cmd name="melee_attack" timeout="5000"/>
</sequence>
</pattern>
<event name="attack" pet_attackable_skill="counter" down="true"/>
</rule>
<rule name="主人被盯危險">
<conditions/>
<pattern>
<param_decl/>
<sequence>
<cmd name="prepare_skill" pet_skill="smash" try_cnt="0" timeout="1000"/>
<cmd name="move_against" distance="100" run="true" timeout="1000"/>
<cmd name="chase" chase_target="enemy" timeout="1000" run="true"/>
<cmd name="melee_attack" timeout="5000"/>
<cmd name="prepare_skill" pet_skill="counter" try_cnt="1" timeout="500"/>
</sequence>
</pattern>
<event name="master_targeted" targeting_type="attack"/>
</rule>
<rule name="主人被打 寵物報仇2">
<conditions/>
<pattern>
<param_decl/>
<sequence>
<cmd name="prepare_skill" pet_skill="smash" try_cnt="0" timeout="1000"/>
<cmd name="move_against" distance="100" run="true" timeout="1000"/>
<cmd name="chase" chase_target="enemy" timeout="5000" run="true"/>
</sequence>
</pattern>
<event name="master_attacked" master_skill="all" down="true"/>
</rule>
<rule name="主人被打 寵物報仇1">
<conditions/>
<pattern>
<param_decl/>
<sequence>
<cmd name="melee_attack" timeout="10000"/>
<cmd name="prepare_skill" pet_skill="firebolt" try_cnt="0" timeout="500"/>
<cmd name="stackmagic_attack" stack_magic="firebolt" charge="1" timeout="5000"/>
<cmd name="prepare_skill" pet_skill="counter" try_cnt="0" timeout="500"/>
</sequence>
</pattern>
<event name="master_attacked" master_skill="all" down="false"/>
</rule>
<rule name="主人防禦 寵物重擊">
<conditions/>
<pattern>
<param_decl/>
<sequence>
<cmd name="prepare_skill" pet_skill="smash" try_cnt="0" timeout="1000"/>
<cmd name="move_against" distance="100" run="true" timeout="500"/>
<cmd name="chase" chase_target="enemy" timeout="1000" run="true"/>
<cmd name="melee_attack" timeout="1000"/>
<cmd name="chase" chase_target="enemy" timeout="5000" run="true"/>
</sequence>
</pattern>
<event name="master_defence" defence_enable_skill="all"/>
</rule>
<rule name="主人射箭 寵物支援">
<conditions/>
<pattern>
<param_decl/>
<sequence>
<cmd name="melee_attack" timeout="5000"/>
<cmd name="prepare_skill" pet_skill="firebolt" try_cnt="0" timeout="500"/>
<cmd name="stackmagic_attack" stack_magic="firebolt" charge="1" timeout="5000"/>
<cmd name="chase" chase_target="master" timeout="2000" run="true"/>
<cmd name="prepare_skill" pet_skill="counter" try_cnt="1" timeout="500"/>
</sequence>
</pattern>
<event name="master_attack" master_skill="ranged_attack"/>
</rule>
<rule name="主人毒雲 寵物支援">
<conditions/>
<pattern>
<param_decl/>
<sequence>
<cmd name="prepare_skill" pet_skill="firebolt" try_cnt="0" timeout="1000"/>
<cmd name="stackmagic_attack" stack_magic="firebolt" charge="1" timeout="5000"/>
<cmd name="melee_attack" timeout="5000"/>
<cmd name="prepare_skill" pet_skill="firebolt" try_cnt="0" timeout="1000"/>
<cmd name="stackmagic_attack" stack_magic="firebolt" charge="1" timeout="5000"/>
<cmd name="chase" chase_target="master" timeout="2000" run="true"/>
<cmd name="prepare_skill" pet_skill="counter" try_cnt="1" timeout="500"/>
</sequence>
</pattern>
<event name="master_attack" master_skill="mirage_missile"/>
</rule>
</rules>