Skip to content

Instantly share code, notes, and snippets.

@furai-no-ffff
Last active August 26, 2018 03:47
Show Gist options
  • Save furai-no-ffff/c002ce50c6714f7039658bca7a4913ca to your computer and use it in GitHub Desktop.
Save furai-no-ffff/c002ce50c6714f7039658bca7a4913ca to your computer and use it in GitHub Desktop.
店主メモ
店主メモ
関係するフラグとして、NPCフラグと攻撃されたフラグの2つを考える。
NPCフラグは0ならモンスターと同じ(=敵対)、非0ならNPC(=非敵対)であるとみなせる。
攻撃されたフラグの初期値は0(=攻撃されていない)である。
店主に関係する処理として、命中判定、店主の移動・攻撃対象決定、ダメージ処理、ダメージ時特技の4つを考える。
ダメージ処理は店主がダメージを受けたときに実行される(ダメージ時特技と違い外れたときは実行されない)。
ダメージ時特技はダメージ処理の後及び、投擲・通常攻撃で外れたときに実行される。
命中判定では店主の攻撃されたフラグが1に設定される。これはシレンの矢でもボウヤーの矢でもおばけ大根の毒草でもキグニ族の攻撃でも同様である。
店主の移動・攻撃対象決定において、攻撃されたフラグが0でないならNPCフラグを0(=敵対)に設定する。杖を投げたときに敵対するのはこのため。
ダメージ処理では攻撃されたフラグを1に設定する。これは店主に限らず全キャラ共通。
店主のダメージ時特技では、攻撃したキャラがシレンの場合はNPCフラグを0に設定する。
攻撃したキャラがシレンでない場合は攻撃されたフラグを0に設定する(そして攻撃したキャラに隣接しているなら反撃しようとする)。
ボウヤーが店主に矢を打って命中した場合に店主が敵対しないのはこの処理による。
一方おばけ大根の毒草はダメージが無いので、攻撃されたフラグが1のままになり、店主移動・攻撃対象決定時に敵対する。
投擲を外したときもダメージ時特技が実行されるが、バグにより攻撃したキャラの値がおかしくなっている。
プレイ時・回想時に設定される値とロード時に設定される値が異なっていてややこしいが、シレン(19)でないことが多い。
シレンが投擲して外したときに敵対しないのはこれによる。
遠投が絡むとさらに複雑になるがとりあえずここまで。
2018/8/25 ダメージ処理について加筆
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment