制作日記

こういうの作った方が、逃げにくいじゃない

全プレイヤー ステート処理簡易まとめ

ざっくり解析したけど、忘れそうだからメモっとく
まだまだ、処理はあるけど未解析

前準備(敵の攻撃等に合わせてガードステート化とか)
 ↓
movetypeがAのプレイヤー ステート処理(各ステートの固有処理含む ガードステート化等)
 ↓
残りのプレイヤー ステート処理
 ↓
全新規ヘルパー ステート処理
 ↓
上処理で新規ヘルパーが発生した場合、上処理へ戻る

ステート処理を行うプレイヤーの選別方法概要
基本的には、
[0x4B5B4C]+0xB950(存在しているプレイヤーの最少番号)から
[0x4B5B4C]+0xB954(存在しているプレイヤーの最大番号)まで、
[0x4B5B4C]+0xB750(全プレイヤーのアドレスリスト)を参照して一人ずつ処理。
行動済みかどうかはプレイヤー個別のgametimeと本来のgametimeを比較して判断。
ステート処理が終わったプレイヤーのgametimeを更新し、movetypeがAのプレイヤーの再行動を防止する。

プレイヤーが存在しているかどうかの判断は、以下の3つで行う。
アドレスのNULLチェック
全プレイヤーのアドレスリストの各要素の有効フラグ(と思われる)
存在フラグ

新規ヘルパーのステート処理は全プレイヤー処理をループさせている。
新規ヘルパーの有無は[0x4B5B4C]+0xBB64(ヘルパー召喚フラグ)で行い、
ループ開始時にこれを初期化、ループ終了時にフラグが立っていれば再度処理、
フラグが立っていなければ、ループ終了。

1F内での無限行動できそうだけど、ヘルパー必須だねー。
ほんちゃんのgametime弄るのは、全員に影響あるから駄目だし。
特定のキャラを行動不能にするのは、フラグを弄るだけだし簡単かな。
場所的にはリストの近く。

これぐらいなら実動作から推測できるけど、裏取りって重要。

コメントの投稿

非公開コメント

プロフィール

Author:drab
霊夢改変キャラ
「12 3 ! {V} [_]」
公開中
L霊夢でもl_reimuでも好きなように読んでください

最新記事
最新コメント
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク