●LuaScriptディレイ下スクロールBOTダウンロード
ここからどうぞ→delaydownbot.zip
●使い方
1:リプレイ動画ファイルを使いつつ、
この位置にロックマンを誘導する(FCEUを停止状態にする)
2:FCEU0.98.28以上のRun Lua Scriptからdelaydownbot.lua読み込み
3:あとは「+」押してスピードはやくしたりとか。
4:成功するまで永遠に実行が続きます。成功したら、ステートセーブされてBOT実行が終了します。
こりゃー成功しねーわと思った場合はFCEU閉じてください
delaydownbot.luaの行頭に以下のコマンド加えると、
画面が描画されなくなるため、BOT試行が最速になります。
FCEU.speedmode("maximum")
●設計概要
穴に落ちるのが決まった後にLuaScriptを読み込み、BOTを動かす。
・X座標=(memory.readbyte(0x460)*256+memory.readbyte(0x480))/256.0;
Y座標=(memory.readbytesigned(0x600)*256+memory.readbytesigned(0x620))/256.0;
Xスピード=(memory.readbyte(0x4a0)*256+memory.readbyte(0x4c0))/256.0;
Yスピード=(memory.readbytesigned(0x640)*256+memory.readbytesigned(0x660))/256.0;
部屋番号= (memory.readbyte(0x20));
毎ターン読み込みながらFrameAdvance
・Y座標が特定の範囲内(※1)に1度だけアイテム2号→1号に切り替え。
ここまではショット等は打たない。(切り替えが不可能になるため)
切り替え処理は完全にフレーム数も固定なので、ずれることはない。
関数化しておき、1度だけ読み込めばおk
・Y座標がどの範囲でも、「左」または「右」に移動する。
シャッターが見える位置(X座標=128以上)に移動する必要がある。
最大に入れられる左の回数を制限する必要あり?
・アイテム1号に切り替え後は、ショットを3回以上打つ。
(エネルギーを残すかどうかを設定できるのが望ましい。)
ショットを連続で打つ際は、最低1フレームずつはあけること。
・穴に到達(Y座標=232以上)したらしばらく待機し、
失敗(部屋番号=8)したらステートロードで再度やりなおし
次の画面(部屋番号=20)に行くことができたら終了。
※1 スタートによる、落下速度キャンセルの切り替えの位置がずれすぎると、
シャッターに到達するのが不可能になるため。
(Y座標=88以上〜170以下)