tabや半角スペースは掲示板やスレではカットされるから、インデント(間隔)は全角スペース一個にしませんか?
Luaの文法は、RubyにそっくりなのでRubyのやり方が参考になるかもしれません。
TraceAI.txtをリアルタイム表示するツールです。簡単なJavaScriptで作成されています。
XPだと権限の問題で警告されます。(実行が不安ならソースを見てください。)
tail -fオプションでファイルに書き出される最新出力をリアルタイムで見ることが出来ます。
以下はWindows用tailコマンドとRubyでのtail.rbです。
レベル指定なし、は無条件出力じゃなくて最低レベルとして扱う。
もともとあるTraceAI文に全部優先度を設定するのが面倒だから、
TraceAI→TraceAI2 の文字列置換のみで済ませられる。
実際使ってみたらTRACE内容がすっきりして大満足でした。
TRACE_LEVEL = 2 -- TraceAIで出力するレベルの指定
TRACE_MODE = 1 -- 0:すべて出力 1:指定レベル以上を出力 2:指定レベルのみ出力
-------------------------------------------
-- レベル指定トレース
-------------------------------------------
function TraceAI2( text, level )
if( level == nil ) then
level = 0 --- level指定がなければ最低levelに置き換え
end
if (TRACE_MODE == 0) then --- モード0:levelに関係なく出力
TraceAI( text )
elseif (TRACE_MODE == 1) then --- モード1:指定レベル以上の情報出力
if (level >= TRACE_LEVEL) then
TraceAI( text )
end
elseif (TRACE_MODE == 2) then --- モード2:指定レベルのみ情報出力
if (level == TRACE_LEVEL) then
TraceAI( text )
end
end
end
メモ帳で開いて コントロール+F で探したい単語をいれる。
SciTE 1.66 Luaプログラミング用エディタについての解説があります。
SciTEでは、複数のファイルの編集状態を「セッションファイル」に保存することができます。
ブログに OpenSciTESesion.bat がありますので、説明を読んだ上で入手してください。
SciTEのメニューなどを日本語にしたものを配布しています。
ユーザーが直接命令を与えられるトリガーはこれだけです。
マウスのシングル・ダブル・トリプルクリックのように連打で詳細を指定
できる可能性があります。
Luaは 1 だけでなく 0 も真を表します。
偽は false と nil(値未定義状態) のみです。
4-2 GetV (V_MOTION, id) に対する返り値 に現在判別している値の意味をまとめました。
初期値は nil みたいだからわざわざ代入しなくてもいいかも。
以下のように記述することで、AIやAIライブラリを再度読み込みます。
_LOADED = {}
dofile("AI/USER_AI/AI.lua")
dofile("AI/USER_AI/AI.lua") だけではAIがうまくリロードされません。
requireが2重ロードを防ぐために_LOADEDテーブルを使っているらしい。
Cランタイムのexit関数を呼ぶので、呼んだ時点でRO(Ragexe.exe)のプロセスが終了します。
外部プロセスが使えます。呼んだ瞬間にプロンプトが出てきます。
そして新しいプロセスが初期化されるまで、処理が戻りません。
プレイヤー、NPCからの距離を得ます。
人間は画面を見ればわかるが、ホムには知る方法がないもの。
ホムにやらせることが出来ないもの。
V_SKILLATTACKRANGE の戻り値だけまともに取得できない。
TargetIDがそのまま返ってきます。(=未実装)
未実装
type = GetV(V_TYPE,id) -- typeにidがそのまま入る
TYPE_PC = 0 -- プレイヤーキャラクター
TYPE_NPC = 1 -- ノンプレイヤーキャラクター
TYPE_ITEM = 2 -- アイテム
TYPE_SKILL = 3 -- スキル
TYPE_UNKNOWN = 4 -- 不明
TYPE_MOB = 5 -- 敵NPC
TYPE_EVENT = 6 -- イベントNPC
TYPE_PET = 7 -- ペット
ROのLuaには標準ライブラリのうち、tableが入っていません。
インデックスに戻ります。