魔戰系寵物AI
作者:deepmelody (深)
功能簡介:泛用型AI.寵物活動相當人性化,結合冰反及雷反模式,便且可活用近戰技能支援魔戰
寵物限定技能:冰矛 + 雷矢 (掃把ˋ魔毯ˋ貓頭鷹...)
作者親攝測試影片:掃把魔毯類AI實戰應用 (完成度98%)
作者言:(引述)
簡介-
掃把與魔毯 平時可以載著主人高速移動, 然而當自己面對敵人時, 卻會表現出老人一種深沉的 以靜制動的作戰方式. 睿智的攻擊模式, 將導致敵人的智能下降 (魔反進行時).對敵人的動作有著更靈敏的判斷, 而魔法巡迴禮的進行, 則將是敵人惡夢的開始!!
AI特性:
特性:
非主動鎖敵 人性化應對敵人 人性化支援
a-怪物防禦時 a-主人被!!時
b-怪物重擊時 b-主人被攻擊時
c-怪物反擊時 c-主人被弓箭瞄準時
d-弓箭手瞄準時 d-主人被怪物鎖定集魔法時
e-被怪物鎖定集魔法時 e-主人使用弓箭時 (尚未測試 有修改)
f-寵物被!!時
g-寵物被攻擊時
h-寵物單獨對敵型態-3連魔反
(有修正 原本為雷-冰反-雷反 的2連魔反 但是雷-冰中間太慢, 容易有破綻 於是就改成雷反-冰反-雷反的3連模式, 然後效果意外的不錯? )
限制:
1.適用場所-全地形 全場所!!
2.對有魔PD怪需注意
3.魔反失敗率低!! 魔力消耗需注意 (基本上不要讓牠一直單挑怪是不用擔心的)
4.寵物耐久低 長時間攻擊的話注意耐力
5.被重擊機率低!! AI表現方式的關係!!
6.反擊後離怪物太近的問題 尚未完全處理成功
(如:在牆角時 影片中可見, 目前AI已修正 但效果未明)
7.弓箭手支援方面 採取舊AI再做一些修正
a.火推 變 雷矢
b.無雷時 改採反擊護
c.嘗試讓寵物一直跟隨在主人身邊
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="1" timeout="500"/>
<cmd name="melee_attack" timeout="5000"/>
<cmd name="chase" chase_target="enemy" timeout="500" run="false"/>
<cmd name="melee_attack" timeout="5000"/>
<cmd name="prepare_skill" pet_skill="smash" try_cnt="0" timeout="500"/>
<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="500"/>
<cmd name="melee_attack" timeout="5000"/>
<cmd name="chase" chase_target="enemy" timeout="500" run="false"/>
<cmd name="melee_attack" timeout="5000"/>
<cmd name="prepare_skill" pet_skill="smash" try_cnt="0" timeout="500"/>
<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="500" 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="500" 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/>
<pattern>
<param_decl/>
<sequence>
<cmd name="prepare_skill" pet_skill="smash" try_cnt="0" timeout="500"/>
<cmd name="melee_attack" timeout="0"/>
<cmd name="prepare_skill" pet_skill="counter" try_cnt="1" timeout="500"/>
<cmd name="stackmagic_attack" stack_magic="icebolt" charge="1" timeout="0"/>
<cmd name="prepare_skill" pet_skill="icebolt" try_cnt="0" timeout="500"/>
<cmd name="stackmagic_attack" stack_magic="icebolt" charge="1" 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="wait" min="2000" max="3000"/>
<cmd name="melee_attack" timeout="0"/>
<cmd name="prepare_skill" pet_skill="counter" try_cnt="1" timeout="500"/>
<cmd name="stackmagic_attack" stack_magic="icebolt" charge="1" timeout="0"/>
<cmd name="prepare_skill" pet_skill="defence" try_cnt="1" timeout="500"/>
<cmd name="move_against" distance="1000" run="true" timeout="4000"/>
<cmd name="cancel_skill"/>
<cmd name="melee_attack" timeout="5000"/>
</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="chase" chase_target="enemy" timeout="1000" run="true"/>
<cmd name="melee_attack" timeout="0"/>
<cmd name="prepare_skill" pet_skill="counter" try_cnt="1" timeout="500"/>
<cmd name="stackmagic_attack" stack_magic="icebolt" charge="1" timeout="0"/>
<cmd name="prepare_skill" pet_skill="defence" try_cnt="0" timeout="500"/>
<cmd name="move_against" distance="1000" run="true" timeout="4000"/>
<cmd name="cancel_skill"/>
<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="1" timeout="500"/>
<cmd name="melee_attack" timeout="6000"/>
<cmd name="prepare_skill" pet_skill="counter" try_cnt="1" timeout="500"/>
<cmd name="stackmagic_attack" stack_magic="icebolt" charge="1" timeout="0"/>
<cmd name="prepare_skill" pet_skill="defence" try_cnt="0" timeout="500"/>
<cmd name="move_against" distance="1000" run="true" timeout="4000"/>
<cmd name="cancel_skill"/>
<cmd name="melee_attack" timeout="5000"/>
</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"/>
<cmd name="stackmagic_attack" stack_magic="icebolt" charge="1" timeout="0"/>
<cmd name="prepare_skill" pet_skill="icebolt" try_cnt="0" timeout="500"/>
<cmd name="stackmagic_attack" stack_magic="icebolt" charge="1" timeout="5000"/>
</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="1000"/>
<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="prepare_skill" pet_skill="firebolt" try_cnt="0" timeout="500"/>
<cmd name="stackmagic_attack" stack_magic="firebolt" charge="1" timeout="10000"/>
<cmd name="prepare_skill" pet_skill="counter" try_cnt="1" timeout="500"/>
<cmd name="stackmagic_attack" stack_magic="icebolt" charge="1" timeout="0"/>
<cmd name="prepare_skill" pet_skill="icebolt" try_cnt="1" timeout="500"/>
<cmd name="stackmagic_attack" stack_magic="icebolt" charge="1" 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="1" timeout="500"/>
<cmd name="stackmagic_attack" stack_magic="lightningbolt" charge="1" timeout="0"/>
<cmd name="prepare_skill" pet_skill="lightningbolt" try_cnt="0" timeout="500"/>
<cmd name="stackmagic_attack" stack_magic="lightningbolt" charge="1" timeout="5000"/>
<cmd name="prepare_skill" pet_skill="counter" try_cnt="1" timeout="500"/>
<cmd name="stackmagic_attack" stack_magic="icebolt" charge="1" timeout="0"/>
<cmd name="prepare_skill" pet_skill="icebolt" try_cnt="0" timeout="500"/>
<cmd name="stackmagic_attack" stack_magic="icebolt" charge="1" timeout="5000"/>
</sequence>
</pattern>
<event name="attack" pet_attackable_skill="basic" down="true"/>
</rule>
<rule name="寵物冰矛後雷反-怪物僵直">
<conditions/>
<pattern>
<param_decl/>
<sequence>
<cmd name="prepare_skill" pet_skill="counter" try_cnt="1" timeout="500"/>
<cmd name="stackmagic_attack" stack_magic="lightningbolt" charge="1" timeout="0"/>
<cmd name="prepare_skill" pet_skill="lightningbolt" try_cnt="0" timeout="500"/>
<cmd name="stackmagic_attack" stack_magic="lightningbolt" charge="1" timeout="5000"/>
<cmd name="prepare_skill" pet_skill="counter" try_cnt="1" timeout="500"/>
<cmd name="stackmagic_attack" stack_magic="icebolt" charge="1" timeout="0"/>
<cmd name="prepare_skill" pet_skill="defence" try_cnt="0" timeout="500"/>
<cmd name="move_against" distance="1000" run="true" timeout="6000"/>
<cmd name="cancel_skill"/>
<cmd name="melee_attack" timeout="5000"/>
</sequence>
</pattern>
<event name="attack" pet_attackable_skill="icebolt" down="false"/>
</rule>
<rule name="寵物冰矛後雷反-怪物擊倒">
<conditions/>
<pattern>
<param_decl/>
<sequence>
<cmd name="prepare_skill" pet_skill="counter" try_cnt="1" timeout="500"/>
<cmd name="stackmagic_attack" stack_magic="lightningbolt" charge="1" timeout="0"/>
<cmd name="prepare_skill" pet_skill="lightningbolt" try_cnt="0" timeout="500"/>
<cmd name="stackmagic_attack" stack_magic="lightningbolt" charge="1" timeout="5000"/>
<cmd name="prepare_skill" pet_skill="counter" try_cnt="0" timeout="500"/>
<cmd name="stackmagic_attack" stack_magic="icebolt" charge="1" timeout="0"/>
<cmd name="prepare_skill" pet_skill="defence" try_cnt="0" timeout="500"/>
<cmd name="move_against" distance="1000" run="true" timeout="6000"/>
<cmd name="cancel_skill"/>
<cmd name="melee_attack" timeout="5000"/>
</sequence>
</pattern>
<event name="attack" pet_attackable_skill="icebolt" down="true"/>
</rule>
<rule name="寵物防禦後的反應">
<conditions/>
<pattern>
<param_decl/>
<sequence>
<cmd name="melee_attack" timeout="3000"/>
</sequence>
</pattern>
<event name="defence" defence_enable_skill="all"/>
</rule>
<rule name="寵物反擊後的反應-怪物太近">
<conditions>
<condition name="target_distance" min_distance="100" max_distance="800"/>
</conditions>
<pattern>
<param_decl/>
<sequence>
<cmd name="cancel_skill"/>
<cmd name="move_against" distance="1000" run="true" timeout="1000"/>
<cmd name="move_against" distance="1000" run="true" timeout="500"/>
<cmd name="prepare_skill" pet_skill="defence" try_cnt="0" timeout="500"/>
<cmd name="move_against" distance="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="melee_attack" timeout="6000"/>
<cmd name="prepare_skill" pet_skill="counter" try_cnt="1" timeout="500"/>
<cmd name="stackmagic_attack" stack_magic="icebolt" charge="1" timeout="0"/>
<cmd name="prepare_skill" pet_skill="defence" try_cnt="0" timeout="500"/>
<cmd name="move_against" distance="1000" run="true" timeout="6000"/>
<cmd name="cancel_skill"/>
<cmd name="melee_attack" timeout="5000"/>
</sequence>
</pattern>
<event name="master_targeted" targeting_type="attack"/>
</rule>
<rule name="主人正在被打 寵物快解圍">
<conditions/>
<pattern>
<param_decl/>
<sequence>
<cmd name="cancel_skill"/>
<cmd name="melee_attack" timeout="5000"/>
</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="1" timeout="1000"/>
<cmd name="chase" chase_target="enemy" timeout="1000" run="true"/>
<cmd name="melee_attack" timeout="5000"/>
</sequence>
</pattern>
<event name="master_attacked" master_skill="all" down="true"/>
</rule>
<rule name="主人防禦 寵物重擊">
<conditions/>
<pattern>
<param_decl/>
<sequence>
<cmd name="prepare_skill" pet_skill="smash" try_cnt="1" timeout="1000"/>
<cmd name="chase" chase_target="enemy" timeout="1000" run="true"/>
<cmd name="melee_attack" timeout="5000"/>
<cmd name="prepare_skill" pet_skill="icebolt" try_cnt="1" timeout="500"/>
<cmd name="stackmagic_attack" stack_magic="icebolt" charge="1" timeout="5000"/>
</sequence>
</pattern>
<event name="master_defence" defence_enable_skill="all"/>
</rule>
<rule name="主人穿心 寵物支援">
<conditions/>
<pattern>
<param_decl/>
<sequence>
<cmd name="cancel_skill"/>
<cmd name="chase" chase_target="master" timeout="0" run="true"/>
<cmd name="prepare_skill" pet_skill="counter" try_cnt="1" timeout="500"/>
</sequence>
</pattern>
<event name="master_attack" master_skill="magnum_shot"/>
</rule>
<rule name="主人毒雲 寵物支援">
<conditions/>
<pattern>
<param_decl/>
<sequence>
<cmd name="chase" chase_target="master" timeout="0" run="true"/>
<cmd name="prepare_skill" pet_skill="firebolt" try_cnt="0" timeout="1000"/>
<cmd name="chase" chase_target="master" timeout="0" run="true"/>
<cmd name="wait" min="1000" max="2000"/>
<cmd name="chase" chase_target="master" timeout="0" run="true"/>
</sequence>
</pattern>
<event name="master_attack" master_skill="mirage_missile"/>
</rule>
<rule name="主人射箭 寵物追隨">
<conditions/>
<pattern>
<param_decl/>
<sequence>
<cmd name="chase" chase_target="master" timeout="0" run="true"/>
</sequence>
</pattern>
<event name="master_attack" master_skill="ranged_attack"/>
</rule>
<rule name="主人射箭 寵物支援-雷矢護駕">
<conditions>
<condition name="skill_preparable" pet_skill="lightningbolt"/>
</conditions>
<pattern>
<param_decl/>
<sequence>
<cmd name="chase" chase_target="master" timeout="0" run="true"/>
<cmd name="prepare_skill" pet_skill="lightningbolt" try_cnt="0" timeout="1000"/>
<cmd name="chase" chase_target="master" timeout="2000" run="true"/>
<cmd name="stackmagic_attack" stack_magic="lightningbolt" charge="1" timeout="1000"/>
<cmd name="chase" chase_target="master" timeout="0" run="true"/>
<cmd name="prepare_skill" pet_skill="lightningbolt" try_cnt="1" timeout="500"/>
<cmd name="chase" chase_target="master" timeout="2000" run="true"/>
<cmd name="stackmagic_attack" stack_magic="lightningbolt" charge="1" timeout="1000"/>
</sequence>
</pattern>
<event name="master_attack" master_skill="ranged_attack"/>
</rule>
<rule name="主人射箭 寵物支援-無雷護駕">
<conditions>
<condition name="skill_preparable" pet_skill="counter"/>
</conditions>
<pattern>
<param_decl/>
<sequence>
<cmd name="chase" chase_target="master" timeout="0" 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>
</rules>
原始文章 ::【其他】燃燒阿!!沸騰吧!!燃えろ!!!!! 掃把魔毯類AI實戰應用 AI公佈
上一篇:寵物AI:掛甲熟補HP用
下一篇:AI:主人與寵物打排球