4.40a テストリリース
テスト版:Ver4.40a
http://privatemoon.sakura.ne.jp/alc/ai/test/AI.lua
かなり色々と弄ったので大きくナンバーアップな次リリース版なのですが、若干不安もあるのでテストでリリース。かいつまんで大きな変更点を述べますと
●トリガーコントロール実装
●HP減少時退避行動をトリガーコントロール内に移植
●AS確率に関する変数系をごっそり削除し、トリガーコントロール内に同様の機能を移植
●サーチング中途半端に実装
~トリガーコントロールについて
トリガーコントロールの概念は、
「特定の条件が成立した時」+「指定の行動をする」
この組み合わせを用意されている範囲で自由に組み替え可能にする機能です。既存の機能で「HPが減った時に退避」や「敵の数が指定数以上のときにAS確率UP」というのもこれに含まれるようになります。
設定変更可能な追加変数は以下の通り
— トリガー系編集に関する変数 ——————–
— 特定の条件に任意の機能やパラメータ変動を割り当てることが出来ます.
MANY_ENEMYS = {TRIGGER_ASP_INC,TRIGGER_ASL_INC}
— ●敵の数がEnemyBorder_N以上の時の行動
TOUGH_ENEMY = {TRIGGER_ASP_INC}
— ●平均戦闘時間記録がEnemyBorder_T以上の時の行動
ALT_T_TO_REST = {}
— ●Alt+Tで待機→休息状態に移行する時の行動
ALT_T_TO_IDLE = {}
— ●Alt+Tで休息→待機状態に移行する時の行動
ALT_MY_CLICK ={TRIGGER_OnSEARCH}
— ●自分の居るセルをAlt+右クリックしたときの行動
ALT_OWNER_CLICK = {}
— ●主人の居るセルをAlt+右クリックしたときの行動
ALT_FRIEND_CLICK = {TRIGGER_CHANGE_OWNER}
— ●友達の居るセルをAlt+右クリックしたときの行動
MY_HP_UNDER_SAFETY = {TRIGGER_OnESCAPE}
— ●自分のHPがHomunculusSafetyHPで指定した%以下になった時の行動
MY_SP_UNDER_SAFETY = {}
— ●自分のSPがHomunculusSafetySPで指定した%以下になった時の行動
OWNER_HP_UNDER_SAFETY = {}
— ●主人のSPがOwnerSafetyHPで指定した%以下になった時の行動
OWNER_SP_UNDER_SAFETY = {}
— ●主人のSPがOwnerSafetySPで指定した%以下になった時の行動
— トリガーに関係する設定変数
HomunculusSafetyHP = 30 — ●自分のHPが指定%以下のとき,任意の行動をとる
HomunculusSafetySP = 60 — ●自分のSPが指定%以下のとき,任意の行動をとる
OwnerSafetyHP = 30 — ●主人のHPが指定%以下のとき,任意の行動をとる
OwnerSafetySP = 20 — ●主人のSPが指定%以下のとき,任意の行動をとる
EnemyBorder_N = 3 — ●敵の数が指定数以上のとき,任意の行動をとる
EnemyBorder_T = 7000 — ●ターゲットの平均戦闘時間が指定ミリ秒以上の時,任意の行動を取る
各条件変数に割り当てられる行動定数は以下の通り
TRIGGER_OnESCAPE = 1 — 退避状態化
TRIGGER_OnSEARCH = 2 — サーチング
TRIGGER_OnFORWARD = 3 — 先行移動化
TRIGGER_OnSHOOTING = 4 — 援護射撃化
TRIGGER_ACTIVE = 5 — アクティブ化
TRIGGER_CHANGE_OWNER = 6 — オーナーチェンジ
TRIGGER_ASP_INC = 7 — AS時の確率増加
TRIGGER_ASL_INC = 8 — AS時のレベル増加
※設定例
デフォルト状態で設定されているものを例に挙げます。
>MANY_ENEMYS = {TRIGGER_ASP_INC,TRIGGER_ASL_INC}
これは、「敵の数がEnemyBorder_Nで指定された数(デフォルトは3)以上になった時に、AS確率とASレベルを上昇させる」という指定です。一つの条件には複数の行動を割り当てることも出来ますが、あまり多くするとややこしいので大抵は1つか2つです。例えばこれを、「敵の数がEnemyBorder_Nで指定された数以上になった時に、退避行動をとる」としたい場合は、
MANY_ENEMYS = {TRIGGER_OnESCAPE}
と変更します。このように行動定数と条件変数をよく見比べて、様々な組み合わせの行動を定義できます。
~サーチングについて
予め指定した種IDを持つオブジェクトを探し出し、画面内に存在する場合(正確には距離12以内)は、そのうち最も近いものに近寄り、その周囲を旋回して知らせます。草、キノコなどがわかりにくいMAPや、フキダシのみのNPCオブジェクトを探す時などに役立つかもしれません。
— 対象編集 TargetObjects[***] = true
— ***に探索対象のIDを入れる
TargetObjects[111] = true — 吹き出し
TargetObjects[113] = true — グラリスさん
今現在はデフォルトでフキダシとカプラ・グラリスをサーチ対象にしています。もちろんPCの職IDも入るので、特定の職のPCもサーチできますが、一部職業IDはホムンクルスIDと被っているので混同します。