Entries

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

-件回應

我要回應

新規
本回應內容僅站主看得見

-件回應

引用URL
http://gkgwpk.blog79.fc2.com/tb.php/284-c0bb50e9
對本記事進行引用(FC2 blog User)

我的寵物AI

這篇某方面算是替自己的寵物AI檔案備份,順便拿來當一些小研究用的…
也許對將來案子也有一定的啟發性…
全部寵物AI下載,請改為ZIP檔

基本上冰反和雷反是一樣的,只是雷反把使用冰改成使用雷而已。
<rules>
<rule name="尋怪">
<conditions/>
<pattern>
<param_decl/>
<sequence>
<cmd name="cancel_skill"/>
<cmd name="prepare_skill" pet_skill="smash" try_cnt="0" timeout="5000"/>
<cmd name="process_skill" target="enemy" timeout="5000"/>
</sequence>
</pattern>
<event name="seek_target"/>
</rule>
<rule name="重冰">
<conditions/>
<pattern>
<param_decl/>
<sequence>
<cmd name="stackmagic_attack" stack_magic="icebolt" charge="1" timeout="5000"/>
</sequence>
</pattern>
<event name="attack" pet_attackable_skill="smash" down="true"/>
</rule>
<rule name="冰刀">
<conditions>
<condition name="target_distance" min_distance="100" max_distance="200"/>
</conditions>
<pattern>
<param_decl/>
<sequence>
<cmd name="chase" chase_target="enemy" timeout="3000" run="true"/>
</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="0" timeout="5000"/>
<cmd name="wait" min="1000" max="5000"/>
<cmd name="process_skill" target="enemy" timeout="5000"/>
</sequence>
</pattern>
<event name="attack" pet_attackable_skill="icebolt" down="false"/>
</rule>
<rule name="反冰">
<conditions>
<condition name="target_state" state="blowaway"/>
</conditions>
<pattern>
<param_decl/>
<sequence>
<cmd name="stackmagic_attack" stack_magic="icebolt" charge="1" 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="counter" try_cnt="0" timeout="5000"/>
<cmd name="wait" min="1000" max="7000"/>
<cmd name="process_skill" target="enemy" timeout="5000"/>
</sequence>
</pattern>
<event name="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="targeted" targeting_type="attack"/>
</rule>
<rule name="命令攻擊">
<conditions/>
<pattern>
<param_decl/>
<sequence>
<cmd name="prepare_skill" pet_skill="counter" try_cnt="0" timeout="5000"/>
<cmd name="wait" min="1000" max="10000"/>
<cmd name="process_skill" target="enemy" timeout="5000"/>
</sequence>
</pattern>
<event name="attack" pet_attackable_skill="basic" down="true"/>
</rule>
</rules>

這邊進行一些解說:
1. 這是主動AI,所以先讓寵物主動找怪物。(尋怪條件)
當寵物找到怪就先取消技能,並且對怪物發動重擊。
2. (重冰條件)
重擊完畢後當然必然擊退,之後立刻使用冰矛
3. (冰刀和冰反)
基本上我自己的計算是因為冰刀只有距離很短的時候才會發動,只要反擊來得及就優先反擊,所以先設定冰刀條件(比較嚴),這邊設定距離1m~2m間(1m是最小距離, 最大的可能調整比較好),的時候發動冰刀,用跑的追擊3秒(這可能也不見得好)。如果距離更遠,則發動冰反條件,讓寵物準備反擊,最多等待5+5=10秒左右。
4. 反擊成功,把怪物打飛(反冰條件),這種情形下就準備冰。
理想狀況下應該可以和3完成一個循環。
5. 但是有時候怪物會先主動攻擊,這點也不能不防備,所以設定要是寵物挨打怎麼辦,既然是冰反當然先反擊嘛,接著又可以進入4->3的循環狀態了。
6. 另一個條件是寵物被怪物發現,但是或許還不一定先攻擊。由於此時重擊比較容易讓怪物普通攻擊打掉,所以就直接上了,把對方打退以後進入冰反循環。
7. 最後的是主人指示對某怪物直接攻擊,此AI是使用普打接反擊的對應法,或許可以測試是否更好的處理方法…

以上的算是寵物獨立作戰的AI,相信還有很大改良空間。
不過至少我有好幾隻寵物已經靠這個多賺好幾個等級了…

條件列表
1.寵物尋找對方:寵物可能目前沒有目標,所以讓牠尋找一次目標
2.寵物鎖定對方:寵物找到目標並且已經鎖定牠
3.寵物攻擊對方:寵物剛剛使用了任何招式攻擊目標,之後怎麼接?
4.對方識別寵物:發現有怪物已經鎖定寵物,或是有兩隻以上警戒寵物的時候
5.寵物的對方使用遠距離戰鬥技能
6.寵物的對方使用近距離戰鬥技能
7.寵物的對方使用魔法技能
8.寵物使用防禦技能對攻擊進行防禦:要是寵物防禦成功,接下來呢?
9.寵物受到對方攻擊:挨打了,可以依據是否後退決定怎麼應對。
10.對方識別主人
11.主人的對方使用遠距離戰鬥技能
12.主人的對方使用近距離戰鬥技能
13.主人的對方使用魔法技能
14.主人使用防禦技能對攻擊進行防禦
15.主人受到對方攻擊
16.主人準備技能
17.主人發動攻擊:可依據主人使用什麼技能來應對

條件之後下一步是幾個參考條件檢查,可以多個,必須全部成立才算。
1. 對方的狀態:可以選走路/走或跑/停止/走或停/跑/逃離/推開/僵直
2. 和對方的距離:1m~15m範圍
3. 是否可以使用技能:可以選擇判斷是否能使用哪種技能
4. 主人生命力消耗:可能適於補血用

之後是行動,可以選擇:
1. 等待對方(時間)
2. 從對方處按指定距離逃跑:簡單講就是逃離
3. 追擊對方
4. 圍繞對方周圍奔跑
5. 受到對方近距離攻擊(寫錯,應該是使用近距離攻擊對方)
6. 受到對方魔法攻擊(寫錯,應該是使用魔法攻擊對方)
7. 技能準備
8. 魔法技能佔據:集幾次魔法,可選擇冰矛/火焰/雷矢/雷擊,當然寵物能用才行
9. 使用準備的技能:可以選擇對目標或是主人,或是一個附近位置(範圍技?)
10. 取消使用的技能
11. 使用休息技能:開始或中斷

不過有些規則還是優先於寵物AI(例如坐下跟著坐或是一起打樹枝)這就沒辦法了…
スポンサーサイト

0件回應

我要回應

新規
本回應內容僅站主看得見

0件回應

引用URL
http://gkgwpk.blog79.fc2.com/tb.php/284-c0bb50e9
對本記事進行引用(FC2 blog User)

Appendix

關於作者/プロフィール

肉包子(肉まん)

Author:肉包子(肉まん)
以台灣的貝婷伺服器為主,最常出現於ch4。但是也有其他伺服器的角色存在。關於本站請參閱這一篇
關於所有角色,請看角色介紹這一篇。
本站正式網址: http://gkgwpk.blog79.fc2.com/
簡易網址: http://mabilife.3cc.cc/

Erinn Info

一般 星月門 布萊斯 露雅
如果時間不正確,請使用中華電信對時程式校正系統時間再重新載入。

最新文章/最近の記事

月曆/カレンダー

04 | 2017年05月 | 06
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -

引用/最近のトラックバック

ブロとも申請フォーム

この人とブロともになる

搜索/ブログ内検索

連結/リンク

站長有興趣的連結

QR Code/QRコード

QRコード

人數/カウンター

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。