24h購物| | PChome| 登入
2010-02-27 13:07:21| 人氣6,353| 回應1 | 上一篇 | 下一篇

AI:寵物當你的好戰友

推薦 0 收藏 0 轉貼0 訂閱站台

作者:deepmelody (深)

AI簡介:

  1. 寵物可當隊友使用,會幫打亦會主攻,且能活用重擊ˋ防禦ˋ反擊ˋ火焰
  2. 可在孤單奮戰中援用此AI分散怪物注意力,比起放任寵物亂打存活率可望提升.
  3. 適合solo多一名戰力,但若有朋友組隊需小心搶怪問題.

寵物技能限定:火焰

作者拍攝此AI測試影片:寵物AI高級影任實戰應用-弓手篇 (阿阿阿~~拍到要暴走啦!!!)

作者言: (引述)

1.原有AI調整 支援主人項改成主人被打一下立即支援
2.新增AI-支援弓手 射擊 穿心 毒雲
3.射擊支援-火推護駕模式, 寵物沒魔力轉 無火護駕模式
4.穿心支援-跟隨式反擊護駕模式
5.毒雲-火推預備

限制--
1.射擊支援中 其他AI的觸發會被中斷 無法正常執行
(如寵物被盯 只要你射中敵人 會立刻跑回你身邊準備火推)

2.射擊支援中 魔力損耗大
(若想減少寵物魔力的使用 請在火推完畢 寵物走回你身邊開反擊時 不要跟寵物重疊 否則反擊會被取消 進入 集火-火推-反擊-反擊取消-集火 的循環)

3.射擊支援中 寵物被盯時, 無法做正常的判斷與反應
4.射擊支援中 寵物有暴走的可能 (與寵物被盯的反應有相關)
5.適合遠近雙修之人類 精靈 (換武器時不須替換AI)

6.若不想使用火推模式 將無火護駕模式往上移一格 則火推模式將不會觸發 轉觸發無火護駕模式 (寵物會一直跟在主人身邊 比較不會暴走)

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="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_distance" min_distance="100" max_distance="700"/>
   <condition name="target_state" state="blowaway"/>
  </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="prepare_skill" pet_skill="smash" try_cnt="0" timeout="1000"/>
    <cmd name="move_around" clockwise="true" radius="300" run="false" timeout="2000"/>
    <cmd name="melee_attack" timeout="5000"/>
   </sequence>
  </pattern>
  <event name="attack" pet_attackable_skill="counter" down="true"/>
 </rule>
 <rule name="寵物普攻後的反應-怪物太近">
  <conditions>
   <condition name="target_distance" min_distance="100" max_distance="500"/>
   <condition name="target_state" state="shoved"/>
  </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="false" radius="1000" run="true" timeout="2000"/>
    <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_around" clockwise="true" radius="300" run="true" timeout="1000"/>
    <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="主人被打倒了 寵物去報仇">
  <conditions/>
  <pattern>
   <param_decl/>
   <sequence>
    <cmd name="prepare_skill" pet_skill="smash" try_cnt="0" timeout="1000"/>
    <cmd name="move_around" clockwise="false" radius="300" run="true" timeout="1000"/>
    <cmd name="melee_attack" timeout="5000"/>
    <cmd name="prepare_skill" pet_skill="counter" try_cnt="1" timeout="500"/>
   </sequence>
  </pattern>
  <event name="master_attacked" master_skill="all" down="true"/>
 </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="0" timeout="1000"/>
    <cmd name="move_around" clockwise="true" radius="300" run="true" timeout="1000"/>
    <cmd name="melee_attack" timeout="5000"/>
    <cmd name="prepare_skill" pet_skill="counter" try_cnt="1" timeout="500"/>
   </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>
   <condition name="skill_preparable" pet_skill="firebolt"/>
  </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="wait" min="1000" max="2000"/>
    <cmd name="stackmagic_attack" stack_magic="firebolt" charge="1" timeout="500"/>
    <cmd name="chase" chase_target="master" timeout="0" run="false"/>
    <cmd name="prepare_skill" pet_skill="counter" try_cnt="1" timeout="500"/>
    <cmd name="wait" min="5000" max="7000"/>
   </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="defence" try_cnt="0" timeout="500"/>
    <cmd name="chase" chase_target="master" timeout="1000" run="false"/>
    <cmd name="wait" min="1000" max="1000"/>
    <cmd name="chase" chase_target="master" timeout="0" run="false"/>
    <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補完+示範影片

台長: 南瓜超人
人氣(6,353) | 回應(1)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 電玩動漫(電玩、動畫、漫畫、同人) | 個人分類: AI總覽 |
此分類下一篇:AI:打Boss用隨行AI
此分類上一篇:AI:主人穿心寵物丟火護駕

(悄悄話)
2011-07-26 13:39:42
是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文