工体研究所AI rev103+patch23
・傭兵に対応しました。(スキル攻撃などは実装していません)
・チャットコマンドを組み込みました。
・ほむTALKを入れるとメッセージを見ることが出来るようになります。
久しぶりに大幅な追加をしました。
チャットコマンドの詳細に関しては、後ほど書きます。
続きを読む
2009年01月23日
2009年01月05日
工体研究所AI私的修正版。#23
工体研究所AI rev103+patch23
・傭兵に対応しました。(スキル攻撃などは実装していません)
・チャットコマンドを組み込みました。
・ほむTALKを入れるとメッセージを見ることが出来るようになります。
久しぶりに大幅な追加をしました。
チャットコマンドの詳細に関しては、後ほど書きます。続きを読む
・傭兵に対応しました。(スキル攻撃などは実装していません)
・チャットコマンドを組み込みました。
・ほむTALKを入れるとメッセージを見ることが出来るようになります。
久しぶりに大幅な追加をしました。
チャットコマンドの詳細に関しては、後ほど書きます。続きを読む
2008年04月24日
こめんとれすその2。
Will様>
> ホムの攻撃範囲は29x29と言うことですが、これは東西南北を
> 頂点とした菱形◇と認識しているのですが、合ってますでしょうか。
攻撃範囲ではなくて、AIが動く範囲です。これは正方形です。
攻撃範囲という意味ならば、以下の通りになります。
直接攻撃:以下の範囲+2セル(ホムの攻撃は2セル目まで届きます。)
スキル:以下の範囲+ホム視点から15セル(画面外までは検証していません)
□:0セル目、主人の位置
■:AIが動く範囲≠AIで攻撃出来る範囲
14セル目に敵、プレイヤーが居た場合ホムが15セル目に押し出されることがあります。
そのとき、AIが止まりホムがスタックします。
そのために探索の標準範囲は12セルとなっています。以下の設定項目です。
SEARCH_DISTANCE = 12,
これの中心は上で示した0セル目となります。
この特性を知った上で、14セルまで設定することに問題はありません。
この場合、AIが止まってホムがスタックする可能性がほんのわずか出る危険性を
承知の上でお願いします。
> また、主人から14セル以遠の件ですが、例えばSEARCH_DISTANCE上で
> 4を設定した場合、4x4の範囲がホムの索敵範囲になるかと思いますが、
SEARCH_DISTANCEは、上にも書いたように主人からの距離です。
念のためailib.luaを見て確認しましたが、この変数は主人と敵の座標を比較していますね。
つまり、標準の12セルは12+1+12の、主人の周り25x25セルがホム攻撃可能範囲となります。
これ以外で敵攻撃優先度の変更をしたい場合は以下の関数をいじれば良さそうと見当を付けています。
ailib.lua
> ホムの攻撃範囲は29x29と言うことですが、これは東西南北を
> 頂点とした菱形◇と認識しているのですが、合ってますでしょうか。
攻撃範囲ではなくて、AIが動く範囲です。これは正方形です。
攻撃範囲という意味ならば、以下の通りになります。
直接攻撃:以下の範囲+2セル(ホムの攻撃は2セル目まで届きます。)
スキル:以下の範囲+ホム視点から15セル(画面外までは検証していません)
■■■■■■■■■■■■■■14■■■■■■■■■■■■■■
■■■■■■■■■■■■■■13■■■■■■■■■■■■■■
■■■■■■■■■■■■■■12■■■■■■■■■■■■■■
■■■■■■■■■■■■■■11■■■■■■■■■■■■■■
■■■■■■■■■■■■■■10■■■■■■■■■■■■■■
■■■■■■■■■■■■■■09■■■■■■■■■■■■■■
■■■■■■■■■■■■■■08■■■■■■■■■■■■■■
■■■■■■■■■■■■■■07■■■■■■■■■■■■■■
■■■■■■■■■■■■■■06■■■■■■■■■■■■■■
■■■■■■■■■■■■■■05■■■■■■■■■■■■■■
■■■■■■■■■■■■■■04■■■■■■■■■■■■■■
■■■■■■■■■■■■■■03■■■■■■■■■■■■■■
■■■■■■■■■■■■■■02■■■■■■■■■■■■■■
■■■■■■■■■■■■■■01■■■■■■■■■■■■■■
1413121110090807060504030201□0102030405060708091011121314
■■■■■■■■■■■■■■01■■■■■■■■■■■■■■
■■■■■■■■■■■■■■02■■■■■■■■■■■■■■
■■■■■■■■■■■■■■03■■■■■■■■■■■■■■
■■■■■■■■■■■■■■04■■■■■■■■■■■■■■
■■■■■■■■■■■■■■05■■■■■■■■■■■■■■
■■■■■■■■■■■■■■06■■■■■■■■■■■■■■
■■■■■■■■■■■■■■07■■■■■■■■■■■■■■
■■■■■■■■■■■■■■08■■■■■■■■■■■■■■
■■■■■■■■■■■■■■09■■■■■■■■■■■■■■
■■■■■■■■■■■■■■10■■■■■■■■■■■■■■
■■■■■■■■■■■■■■11■■■■■■■■■■■■■■
■■■■■■■■■■■■■■12■■■■■■■■■■■■■■
■■■■■■■■■■■■■■13■■■■■■■■■■■■■■
■■■■■■■■■■■■■■14■■■■■■■■■■■■■■
□:0セル目、主人の位置
■:AIが動く範囲≠AIで攻撃出来る範囲
14セル目に敵、プレイヤーが居た場合ホムが15セル目に押し出されることがあります。
そのとき、AIが止まりホムがスタックします。
そのために探索の標準範囲は12セルとなっています。以下の設定項目です。
SEARCH_DISTANCE = 12,
これの中心は上で示した0セル目となります。
この特性を知った上で、14セルまで設定することに問題はありません。
この場合、AIが止まってホムがスタックする可能性がほんのわずか出る危険性を
承知の上でお願いします。
> また、主人から14セル以遠の件ですが、例えばSEARCH_DISTANCE上で
> 4を設定した場合、4x4の範囲がホムの索敵範囲になるかと思いますが、
SEARCH_DISTANCEは、上にも書いたように主人からの距離です。
念のためailib.luaを見て確認しましたが、この変数は主人と敵の座標を比較していますね。
つまり、標準の12セルは12+1+12の、主人の周り25x25セルがホム攻撃可能範囲となります。
これ以外で敵攻撃優先度の変更をしたい場合は以下の関数をいじれば良さそうと見当を付けています。
ailib.lua
-- 周辺の敵を解析してキャッシュする
function ParseActors( myid, actors, priority )
2008年04月19日
攻撃優先度の設定。
will様>
調べてみた結果、モンスター攻撃優先度の変更でしたら既にあります。
config.luaのここにIDを入れてみてはどうですか?
-- モンスターの優先度指定(IDかもしくは名前)※
MONSTER_PRIORITY = { ANY_ID },
以下に例を。複数指定可能です。
-- モンスターの優先度指定(IDかもしくは名前)※
MONSTER_PRIORITY = { 1189 }, -- オークアーチャー
複数のIDを入れるときはコロン , で区切ります。
モンスターIDは、Blue Box - mobID名称一覧で調べることが出来ます。
ホムの攻撃範囲ですが、AIが動くのは主人から14セル以内、主人を中心とした29x29の範囲です。よって、ホムの近くに敵がいても、主人から14セル以遠になった場合は範囲スキルで攻撃するしかありません。(敵の近くに行くとAIが止まります)
調べてみた結果、モンスター攻撃優先度の変更でしたら既にあります。
config.luaのここにIDを入れてみてはどうですか?
-- モンスターの優先度指定(IDかもしくは名前)※
MONSTER_PRIORITY = { ANY_ID },
以下に例を。複数指定可能です。
-- モンスターの優先度指定(IDかもしくは名前)※
MONSTER_PRIORITY = { 1189 }, -- オークアーチャー
複数のIDを入れるときはコロン , で区切ります。
モンスターIDは、Blue Box - mobID名称一覧で調べることが出来ます。
ホムの攻撃範囲ですが、AIが動くのは主人から14セル以内、主人を中心とした29x29の範囲です。よって、ホムの近くに敵がいても、主人から14セル以遠になった場合は範囲スキルで攻撃するしかありません。(敵の近くに行くとAIが止まります)
2007年11月14日
工体研究所AI私的修正版。#20
工体研究所AI rev103+patch19
■更新
・mobdata.luaを更新(ベインズパッチ対応)
・ガンスリンガー・忍者のモーションIDを追加しました。
忍法(畳返し、火炎陣)、デスぺラード、フルバスター
Blue Box - ホムンクルス用ライブラリ配布所
にあるモンスターIDのうち「モンスターレース」「ギルド宝箱」が反映されていないのは残念。
それと海外限定のモンスターIDも出来れば入れてほしいものです。
新たに追加された空白部分はモスコビアとシュバルツバルドギルド、アルナベルツギルド、攻城戦SE2の敵(守護石など)が入っているようです。
次の更新は何事もなければ名無し島パッチの予定。
それ以外の更新はほぼ終了になります。
■更新
・mobdata.luaを更新(ベインズパッチ対応)
・ガンスリンガー・忍者のモーションIDを追加しました。
忍法(畳返し、火炎陣)、デスぺラード、フルバスター
Blue Box - ホムンクルス用ライブラリ配布所
にあるモンスターIDのうち「モンスターレース」「ギルド宝箱」が反映されていないのは残念。
それと海外限定のモンスターIDも出来れば入れてほしいものです。
新たに追加された空白部分はモスコビアとシュバルツバルドギルド、アルナベルツギルド、攻城戦SE2の敵(守護石など)が入っているようです。
次の更新は何事もなければ名無し島パッチの予定。
それ以外の更新はほぼ終了になります。
2007年08月31日
2007年07月21日
2007年07月11日
2007年03月05日
2007年03月04日
工体研究所AI私的修正版。#16
工体研究所AI rev103+patch16
■工体AIとの違い
・追加ライブラリの内容をすぐ使える(config.luaで変更可能)
・プレイヤー・モンスターデータは最新
・各種修正をパッチの形で適用(多重攻撃、オートSBRなど)
今回の変更点
■工体AIとの違い
・追加ライブラリの内容をすぐ使える(config.luaで変更可能)
・プレイヤー・モンスターデータは最新
・各種修正をパッチの形で適用(多重攻撃、オートSBRなど)
今回の変更点
2007年02月19日
ロード時間を軽く確認。
日記/2007-02-19 - Singing and Thinking.より:
工体AI私的修正版が一番重いのですか(ノ∀`)r
ロード時間が長くなる主要ファイル
・revolver.lua
・mobdata.lua
この2つをロードするのをやめると、だいぶ軽くなります。
それでも0.3秒前後止まりますが…。
mobdata.luaは外せばいいだけなので簡単なのですが、
revolver.luaは設定を変えないとダメですね…。
時間が出来たらpatch16でロード時間簡易対策を行う予定です。
根本的な対策は、AIの仕組みそのものを見直さないとダメな気がするので
多分しないと思います。
工体AI私的修正版が一番重いのですか(ノ∀`)r
ロード時間が長くなる主要ファイル
・revolver.lua
・mobdata.lua
この2つをロードするのをやめると、だいぶ軽くなります。
それでも0.3秒前後止まりますが…。
mobdata.luaは外せばいいだけなので簡単なのですが、
revolver.luaは設定を変えないとダメですね…。
時間が出来たらpatch16でロード時間簡易対策を行う予定です。
根本的な対策は、AIの仕組みそのものを見直さないとダメな気がするので
多分しないと思います。
2007年02月06日
工体研究所AI私的修正版。#15
工体研究所AI rev103+patch15
■更新履歴
くるくる回る設定は最初OFFになるように変更しました。
これにより、デフォルトは元の工体AIと全く同じように動くようになります。
元の工体AIと違う点:
・追加ライブラリの内容をすぐ使える(config.luaで変更可能)
・プレイヤー・モンスターデータは最新
■更新履歴
2007/02/06 rev103+patch15
・doc/link.bat: シンプルにしました。
・mobdata.lua: 更新
・config.lua: くるくる設定のデフォルトをOFFに変更
くるくる回る設定は最初OFFになるように変更しました。
これにより、デフォルトは元の工体AIと全く同じように動くようになります。
元の工体AIと違う点:
・追加ライブラリの内容をすぐ使える(config.luaで変更可能)
・プレイヤー・モンスターデータは最新
2006年12月09日
工体研究所AI私的修正版。#14
工体研究所AI rev103+patch14
■更新履歴
コンパイル用バッチファイルと鳥飼いの質問をFAQに追加しました。
コンパイル用バッチファイルは、どうぞご自由にお使いください。
他AIと一緒に配布しても構いません。
■更新履歴
2006/12/08 rev103+patch14
・doc/faq.txt: 新たな質問と回答を追加
・doc/compile.txt: 最適化方法の説明ファイルを追加
・doc/compile.bat: 最適化実行バッチファイル
・doc/link.bat: 最適化実行バッチファイル(1ファイル版)
コンパイル用バッチファイルと鳥飼いの質問をFAQに追加しました。
コンパイル用バッチファイルは、どうぞご自由にお使いください。
他AIと一緒に配布しても構いません。
2006年11月27日
工体研究所AI私的修正版。#13
工体研究所AI rev103+patch13
■更新履歴
今回の更新は、mobdata.luaを最新版にしただけです。
S.B.R.44に関してはまだ反映できていません(汗
■更新履歴
2006/11/27 rev103+patch13
・mobdata.lua: 更新(フィーゲルパッチ対応)
今回の更新は、mobdata.luaを最新版にしただけです。
S.B.R.44に関してはまだ反映できていません(汗
2006年10月30日
工体研究所AI私的修正版。#12
工体研究所AI rev103+patch12
■更新履歴
注)S.B.R.44は設計上の検証しかしていません。バグ修正は難しいですが、出来る限り対応します。
■Special Thanks
■更新履歴
2006/10/30 rev103+patch12
・mobdata.lua: 更新
・events.lua: S.B.R.44対応(念mobのみ、ムーンライト使用)
・config.lua: S.B.R.44設定追加(デフォルトはOFF)
※S.B.R.44: 某教授の館パッチ適用
注)S.B.R.44は設計上の検証しかしていません。バグ修正は難しいですが、出来る限り対応します。
■Special Thanks
某教授の館 as 某教授様
http://www.yoroduya.org/blog/
2006年10月19日
patch11-SBR44対応。
工体AI私的修正版patch12は、フィーゲルパッチ対応のものにする予定です。
(主にmobdata.lua, playerdata.luaの2ファイルが対象)
また、オートSBR用の修正が上手く行った場合はマージします。
工体研究所AI rev103+patch11-SBR44対応版
某教授の館パッチ適用:
これは、223行: if Settings.SELF_SKILL then -- オートスキル
の後に UseAttackSkill() を呼び出しているため、"and Settings.SELF_SKILL"は不要になります。
その他、構造を見直しました。
(主にmobdata.lua, playerdata.luaの2ファイルが対象)
また、オートSBR用の修正が上手く行った場合はマージします。
工体研究所AI rev103+patch11-SBR44対応版
追加設定項目:
-----------------------------
-- オートSBR
-----------------------------
-- S.B.R.44使用許可 true / false
USE_SBR = true,
-- S.B.R.44ディレイ(ms): 標準は1ms
SBR_SKILL_DELAY = 1, -- 100〜200程度にしたが良いかも
-- S.B.R.44使用レベル
SELF_SKILL_SBR44_LEVEL = 3, -- 最大Lv.3
某教授の館パッチ適用:
event.lua:
function UseAttackSkill( enemy )
if Settings.USE_MOBDATA and Settings.SELF_SKILL then
↓
if Settings.USE_MOBDATA then
これは、223行: if Settings.SELF_SKILL then -- オートスキル
の後に UseAttackSkill() を呼び出しているため、"and Settings.SELF_SKILL"は不要になります。
その他、構造を見直しました。
2006年10月04日
工体研究所AI私的修正版。#11
工体研究所AI rev103+patch11
■更新履歴
これにより、patch4からのバグ「アミストルスキルディフェンスの不具合」が解消されたと思います。
言うまでもありませんが、以前のパッチは動作検証や比較用に残しているだけであり使用を推奨しません。
■機能一覧
工体研究所:機能紹介
例えば、ムーンライトLv1を状態変化のスイッチに出来ることがわかります。
savechatコマンドからのログ読み込みに対応すればもっとたくさんの状態変化が出来そうです。
■工体研究所AI私的修正版とは?
以下のサイトにある修正例やライブラリをまとめて、すぐ使えるパッケージにしたものです。
・ホムンクルス用ライブラリを配布するサイトLv.1
・ホムンクルスAIについての雑談スレ その3 from LiveRO板@MMOBBS
これに誤字訂正、タナトスパッチ対応(進化スキルリストなど)を付け加えています。
工体研究所の中の人がAI更新再開するときにすぐ取り込めるように
情報をまとめる意味合いも兼ねています。
実際、ROPlusは修正を全て取り込んでくれました。
くるくる設定を無効(false)に設定すれば、オリジナルそのものと変わりありません。
■留意点
個人的な事情で未進化ばにるみー(Vanilmirth)でのみ、動作をチェックしています。
進化フィーリル(Filir)などは他の方々の協力がないとテストできません;
■更新履歴
2006/10/04 rev103+patch11
・ailib.lua: SKILL_DEFENCE誤字訂正(patch4由来のタイプミスです)
・同上: ホムスキル最大レベル追加(タナトスパッチ追加分)
これにより、patch4からのバグ「アミストルスキルディフェンスの不具合」が解消されたと思います。
言うまでもありませんが、以前のパッチは動作検証や比較用に残しているだけであり使用を推奨しません。
■機能一覧
工体研究所:機能紹介
例えば、ムーンライトLv1を状態変化のスイッチに出来ることがわかります。
savechatコマンドからのログ読み込みに対応すればもっとたくさんの状態変化が出来そうです。
■工体研究所AI私的修正版とは?
以下のサイトにある修正例やライブラリをまとめて、すぐ使えるパッケージにしたものです。
・ホムンクルス用ライブラリを配布するサイトLv.1
・ホムンクルスAIについての雑談スレ その3 from LiveRO板@MMOBBS
これに誤字訂正、タナトスパッチ対応(進化スキルリストなど)を付け加えています。
工体研究所の中の人がAI更新再開するときにすぐ取り込めるように
情報をまとめる意味合いも兼ねています。
実際、ROPlusは修正を全て取り込んでくれました。
くるくる設定を無効(false)に設定すれば、オリジナルそのものと変わりありません。
■留意点
個人的な事情で未進化ばにるみー(Vanilmirth)でのみ、動作をチェックしています。
進化フィーリル(Filir)などは他の方々の協力がないとテストできません;
2006年10月01日
patch10エラー追跡。
工体AIrev103patch10のエラー情報をまとめてみます。
工体AI私的修正版
■今回気づいた点
エラーを良く見てみると、引数の#3(三番目)です。
これはSetSkillInterval関数中にあるので他を探していきます。
ホムがアミストルとのことなのでこれが気になりました。
events.lua:348行目
function SetSkillInterval( family, minsp, delay, lv, skill, target )
から推測するにSettings.SELF_BUFF_DEFENCE_LEVELが原因のようにも見えます。
config.luaには以下のようになっているので、
追記。
patch8のconfig.luaだけをpatch10に上書きして動かしてみた場合はどうなりますか?
それも確認をお願いしたいです。
(設定が違うことから来るエラーの可能性もあります)
ailib.lua:345:bad argument #3 to 'SkillObject' (number expected, got nil)
ailib.lua:345行目:'SkillObject'への第三引数が悪いです(数字を見込んでいたのに、nilを得ました)
工体AI私的修正版
patch8 ○
patch9 ×
patch10 ×(何も変更していない状態でも)
・使用ホム:アミストル
・mobdata.luaはfalse, 削除してもエラー発生
・主人は何もせず、ホムはスキルを使わず敵を攻撃している状態
・攻撃対象:ミノタウロスでも発生
■今回気づいた点
エラーを良く見てみると、引数の#3(三番目)です。
ailib.lua:345行目: SkillObject( MyID, lv, skill, id )つまり、ここのskillに数字ではなく"nil"が代入されてることがわかります。
これはSetSkillInterval関数中にあるので他を探していきます。
ホムがアミストルとのことなのでこれが気になりました。
events.lua:348行目
SetSkillInterval( AMISTR, Settings.SELF_BUFF_MIN_SP,
Settings.SELF_BUFF_DEFENCE_DELAY,
Settings.SELF_BUFF_DEFENCE_LEVEL, SKILL_DEFENCE ) -- ディフェンス
function SetSkillInterval( family, minsp, delay, lv, skill, target )
から推測するにSettings.SELF_BUFF_DEFENCE_LEVELが原因のようにも見えます。
config.luaには以下のようになっているので、
SELF_BUFF_DEFENCE_LEVEL = 5,ディフェンス取得レベルが5に届いてないとかそのあたりの可能性はないでしょうか?
追記。
patch8のconfig.luaだけをpatch10に上書きして動かしてみた場合はどうなりますか?
それも確認をお願いしたいです。
(設定が違うことから来るエラーの可能性もあります)
コメントをまとめてレスと報告。
コメントをまとめてレスと報告。
報告をまとめてみると、patch10で出てきた不具合はpatch8から9の間で行った
変更が原因っぽいですね。
それでこの間の更新ファイルを見たところ、ailib.luaとmobdata.luaだけでした。
mobdata.luaは無効にしても発生するので、ailib.luaが原因になります。
そこで差分を取ったところ…
まさかと思いますが、patch8のailib.luaをpatch9かpatch10のほうに上書きして
みて、同じようにエラーがでるでしょうか?
追記:
patch10は、ばにるみーでは何もエラーは出ないことを確認しました。
フィーリルだけ問題が発生してるのでしょうか?
報告のあった方以外にも報告があればさらに詳しく調べます。
patch11では、ailib.luaに新実装の進化ホムスキルの最大レベルを入れます。
もう一つ、オートSBRの別の実装方法として某教授の館の変更点を見てると、オートムーンライトとオートSBR(オート奥義)を同時併用することに視点を置いてるようです。
ムーンライトをSBRに置き換えるだけならここまでしなくていいですから。
併用する理由は、念属性にSBRが当たらないからでしょうか?
結果的に、こっこAIと同じような機能が工体AIのほうにも欲しいというわけですね。
報告をまとめてみると、patch10で出てきた不具合はpatch8から9の間で行った
変更が原因っぽいですね。
それでこの間の更新ファイルを見たところ、ailib.luaとmobdata.luaだけでした。
mobdata.luaは無効にしても発生するので、ailib.luaが原因になります。
そこで差分を取ったところ…
MOTION_SOUL = 23 -- ソウルリンカー、魂使用これだけしか違わないです。
まさかと思いますが、patch8のailib.luaをpatch9かpatch10のほうに上書きして
みて、同じようにエラーがでるでしょうか?
追記:
patch10は、ばにるみーでは何もエラーは出ないことを確認しました。
フィーリルだけ問題が発生してるのでしょうか?
報告のあった方以外にも報告があればさらに詳しく調べます。
patch11では、ailib.luaに新実装の進化ホムスキルの最大レベルを入れます。
MAXLV_MENTAL_CHANGE = 3
MAXLV_BLOOD_LUST = 3
MAXLV_SKILL_SBR44 = 3
MAXLV_BIO_EXPLOSION = 3
もう一つ、オートSBRの別の実装方法として某教授の館の変更点を見てると、オートムーンライトとオートSBR(オート奥義)を同時併用することに視点を置いてるようです。
ムーンライトをSBRに置き換えるだけならここまでしなくていいですから。
併用する理由は、念属性にSBRが当たらないからでしょうか?
結果的に、こっこAIと同じような機能が工体AIのほうにも欲しいというわけですね。
2006年09月27日
工体研究所AI私的修正版。#10
工体研究所AI rev103+patch10
■更新履歴
進化後ASPD対策は、最初使わない設定になっています。
使えるようにするには以下のように変更する必要があります。
config.lua
■更新履歴
・AI.lua: 進化後ASPD対策 MULTI_ATTACK を追加
・config.lua: MULTI_ATTACK 設定追加
・faq.txt: MULTI_ATTACK説明追加
・ailib.lua: 治癒の手助け→治癒の手
進化後ASPD対策は、最初使わない設定になっています。
使えるようにするには以下のように変更する必要があります。
config.lua
MULTI_ATTACK = 1,
↓
MULTI_ATTACK = 3,

