Seaside Laboratory

Posts

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 は行が見つからないことを想定していないので動作は未定義になる。

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