2006年10月01日

patch10エラー追跡。

工体AIrev103patch10のエラー情報をまとめてみます。
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に上書きして動かしてみた場合はどうなりますか?
それも確認をお願いしたいです。
(設定が違うことから来るエラーの可能性もあります)
posted by silica at 15:47| Comment(7) | TrackBack(0) | 工体AI | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
工体AIrev103シリーズのどのバージョンでも、今回のエラーが出ている者です。
私はpatch8でmobdata.luaをfalse(削除)してもエラーが出るため症状が違いますが、アミストルでディフェンスが5に満たないため、報告します。

SELF_BUFF_DEFENCE_LEVELをレベル以下にしても動きません。
patch8のconfig.luaだけをpatch10に上書すると、同エラーが出る上、ROが急激に重くなります。(上書きする前はエラーが出るだけで他は普通に動きます)
Posted by るちる at 2006年10月01日 20:08
詳しい報告は明日になってしまいますが
私の場合は全てのスキルをMAXまで取得しています。
ちなみに、スキルを使用していない場合も関係あるものなのでしょうか?
Posted by tamago at 2006年10月01日 20:39
> patch8のconfig.luaだけをpatch10に上書き
同様にエラーが発生しました。
今回のテスト中にわかったのですが、エラーは攻撃中に限らないようです。
mobを1体トレインしている人が画面内を横切っただけでも発生しました。
Posted by tamago at 2006年10月02日 11:00
はじめましてです。
あのここでする質問・疑問ではないかもですけど・・・、

IsInAttackSight関数はいつでもTRUEを返すとか載っていたので、
OnTAKE_ST処理の中では、「攻撃しなさい」という処理の部分で、そのまま上記関数のTRUEかのみがIFで使われていますが、
OnCHASE_ST処理の中では、TakeEnemy()判定後のIsInAttackSight判定を使用している部分ではIF部分にホムと敵の距離変数をみている部分が上記関数とANDで結ばれていると思います。この場合、OnTAKE_STの方も距離の保持をいれないとヒドラなどの敵では、停止したりしないでしょうか?

あとはなぜか、OnCHASE_ST処理末で、
スタック対応処理で
MoveToOwner関数のみしかつかわれていない。設定している変数をみてMoveToOwnerEx関数を選択肢で入れて使ったほうがいいのかなと思ったり。

|ω・)なんとなく、うーーんと思ったので報告してみました。

書くべきコメントじゃなかったらスルーでもしてください。
Posted by ぽっくり at 2006年10月02日 17:38
こんばんわ

ちょうど同じエラーが出た友人がいまして、その対処が出来たので書かせていただきます。

ailib.lua:49行目にディフェンスの変数がSKILL_DEFFENCEと定義されているのに、events.lua:348行目にはSKILL_DEFENCEとなっているためにnilが返ってしまってるためです。

どちらかに統一すれば直ると思います。




Posted by gin at 2006年10月03日 21:44
ginさんの方法でやってみたところ、エラーが発生しなくなりました。(今のところ、ですが)
しかし、
ailib.lua:49→SKILL_DEFFENCE
events.lua:348→SKILL_DEFENCE(Fが1個少ない)
という関係はpatch5でもpatch8でも同じでした。
なぜpatch8まで全くエラーが発生しなかったのかよくわからない…
何か他の要因があるのでしょうか。
Posted by tamago at 2006年10月03日 22:38
どこかでスキルレベルの代数の中身が空っぽになってる様ですね
一度スキルレベルの変数を各場所で出力して、どのあたりからnil値にすりかわるのかを絞り込んでみるのもいいかもしれません
Posted by 安っぽい人 at 2006年10月04日 00:01
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.seesaa.jp/tb/24714650

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。