Seaside Laboratory

Post

KFX の enemy.lst 図解

enemy.lst の確率指定 (厳密に言うと閾値) は分かりづらい構造だが、行を選択する際のランダム値を矢の高さ、確率を的の大きさに例えると分かりやすい。

Distance--100--Command--COMMENT
    320    20  623P     ;アッパー
    320    50  214K     ;アッパー
    320   100  236P     ;アッパー


上のリストを図式化したもの。

矢は左から放たれ、当たった的に設定されているコマンドが実行される。ここで重要なのは、50 は 20 の後ろにあるので実質 30 の面積しかない。これが 50 が 50% ではなく 30% になる所以である。

あと、公式 FAQ にある

最終行には、最大離れたら 100% これをするって行は必ず入れておいてください。

という記述。これが意味するのは、必ず当たる的を用意しておけという事。でないと、矢は部屋を突き抜けどこかへ飛んでいってしまう。実際問題、KFX は行が見つからない事を想定していないので動作は未定義になる。

この方式はユーザーにやさしくない分、プログラムとの相性は良い。