2006年03月24日

TraceAI 機能をカスタマイズする4

今回はデバッグについて語りたいと思います。



Move( MyID, x, y )
TraceAI( "Move to: "..tostring(x)..tostring(y) )

このように、組み込み関数に渡す値をトレースしたいと思う機会は多いかと思いますが、 まずはこれを自動的に行ってくれるコードを見てみましょう。

組み込み関数の呼び出しをトレース

この例ですと、Move, MoveToOwner, SkillObject 関数に渡した値が、このようにトレースされます。

MyID = 12345
local x, y = 120, 141
Move( MyID, x, y )
2006ウ・3ソ・24タマ 14ステ 20コミ 43テハ Call API: Move(12345, 120, 141)

しかしながら、TraceAI.txt に書き出す情報が増えていきますと、 ちょっとデバッグしただけでテキストの大きさがMバイト単位になり、ROの動作がすごいことになります>< ハードディスクへの負荷も無視できないでしょう。 TraceAI.txt を分単位で自動的に分けて保存してくれたら便利だとは思いませんか? なので、そのような機能を実装してみることにしましょう。

TraceAI.txt を分単位で分割保存

はい、これで1分ごとに 2006_03_24 15_26.txt のような形式で TraceAI.txt を分割保存してくれるようになりました。 注意点として、この機能は事前に USER_AI フォルダの下に trace_backup フォルダを作っておかないと動作しません。 trace_backup フォルダがあれば、その下に1分ごとに上記のようなファイル名のテキストが保存されていきます。

デバッグについてですが、いちおう拙作のほむエミュレータなんていうツールもあります。 スタンドアロンなLuaインタプリタ上で動作するので、Luaのデバッガを使ってAIのコードにブレークポイントを仕掛けることが出来ます。 が、これはホムが実装される以前に、私自身がAIの状態遷移を完全に把握していない時に書いたものなので、 あまり本格的なデバッグに役立つものではありません>< たまにちまちまと修正したりしてるので、そのうち改良版をどこかに上げたいと思います。



aidev at 15:38│Comments(4)TrackBack(0)patch 

トラックバックURL

この記事へのコメント

1. Posted by りーふ使ひ   2006年03月24日 21:11
AIとても役に立ってます、感謝・゚・(ノ□`)・゚・
質問があるのですが、リーフの治癒の手は敵に使用するようにできるのですか?できるのなら教えてもらえると助かります><
2. Posted by ^^)/■’   2006年09月03日 15:10
1 http://insanet.s26.xrea.com/upload/arc/up1634.zip
3. Posted by ^^)/■’鳥飼養   2006年09月23日 12:00
4 AIを参考にさせてもらっています。
質問ですが、強敵に対しても初激だけスキルを使用するようにはできないのでしょうか?

初激のみ=true、強敵に高確率使用=falseだと、スキルを使用しなくなる?

よろしくお願いいたします
4. Posted by ^^)/■’鳥飼養   2006年10月02日 00:20
対応できたのでサゲ^^;

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔