2013/07/13
■ [変愚蛮怒/スポイラー]ゲーム中の時間処理について2(変愚蛮怒 Ver2.1.3 rev3476)
今回はプレイヤーに関する処理中心
process_player()関数による「プレイヤーの処理」
process_player()はゲームメインループ中で1[turn]毎に呼び出される関数であり以下の処理を順に行う
- [hack_mutation]フラグが立っている「何かが変わった気がする」と共に変異をランダムに一つ得る
- カジノの闘技場の場合、モンスターを無条件に感知できる処理のみ尾行う
- プレイヤー構造体中の[energy_need]の値が正であったら、加速値に依存した、SPEED_TO_ENERGY()の分だけ引く。
- [energy_need]がまだ残っていたらこの時点でreturnで処理終了。
- 休憩、釣り、採掘などの連続行動処理中ならばそれにキー入力による中断処理を行う。
- プレイヤーが混乱や盲目に陥っていない状態で騎乗していれば、睡眠、混乱、恐怖、朦朧している騎乗モンスターの復帰を試みる処理を行う。
- 練気術師の光速移動のターン数はここで1減らす。
- 練気術師の貯めている気の値を40減らす。0未満にはならない。
- 青魔道士のラーニング中のMP減少処理を行う。
- 剣術家の型を取っている場合のMP減少、中断処理を行う。
- ここから[energy_need]>0になる(行動パワーを消費する行為)を行うまで繰り返す
- 捨て身、カウンターのフラグをリセット
- ステータスの更新処理
- アイテムがザックから溢れた際のドロップ処理
- [energy_use]を0にリセット
- カジノの闘技場中なら無条件に行動できる(process_command())
- そうでなくプレイヤーが麻痺しているか意識不明瞭ならば、[energy_use]+100
- そうでなく休憩中ならば何も行動せずに[energy_use]+100
- そうでなく魚釣り中ならば何も行動せずに[energy_use]+100
- そうでなく走っている最中ならrun_step()で自動移動処理
- そうでなくトラベル・コマンド中ならばtrabel_step()で自動移動処理
- そうでなく繰り返しコマンド中ならば繰り返しコマンドを実行
- そうでなければコマンド受付(process_command())
- アイテムがザックから溢れた際のドロップ処理
- [energy_use]が0でなければ以下の処理を行う
- 超能力の時止め中か[energy_use]が400を超えていたら[energy_need]に[energy_use]をそのまま加算
- そうでなければ[energy_use] * ENERGY_NEED / 100L を加算。ENERGY_NEEDは平均100、分散25の正規乱数の近似である。
- 色やシンボルが常時変化するモンスターの変化処理
- ものまね師の記憶上書き処理
- 時止め中に[energy_need]>-1000になっていたら時止め解消処理。
- プレイヤーがプレイを終了したり死亡した場合のプレイ解除処理
- スナイパーの集中度解除処理
- プレイヤーがフロアを離れる場合このループを抜ける。
- update_smell()処理
「影分身」の回避判定
- 忍者の影分身の回避判定は[turn]が奇数の時に発動する。[turn]数の1ターンの増加量がランダムであることにより、同ターン時の判定を一致させつつ、確率性を実現している。
光源の寿命について
process_world()中のprocess_world_aux_light()関数で行われる光源処理であるがプレイヤーのみに関わる要素であるため、ここで説明を行う。10で割り切れる[turn]でのみ呼び出される処理であることに注意。
- 光源の寿命値はオブジェクト構造体の[xtra4]変数に保持され、アイテム中の「(Xターンの寿命)」の値は長持ちエゴの場合[xtra4]の倍の値、それ以外は[xtra4]がそのまま当てはまる。
- [xtra4]の値は長持ちエゴならば[turn]が20で割り切れる毎に、そうでない場合は[turn]が1増える毎に1減っていく。
- 「明かりが微かになってきている。」の表示は以下の条件で発生する。
- 光源が長持ちエゴを持っている場合、光源の寿命が50[xtra4]未満で5で割り切れ、かつ[turn]が20で割り切れない時に発生する。
- それ以外は光源の寿命が100[xtra4]未満で10で割り切れる時に発生する。
■ [ヴィーヤウトゥムノ] ウィル・オー・ウィスプ/Will o' the wisp (Yellow 'E')
=== Num:582 Lev:37 Rar:4 Spd:+20 Hp:200 Ac:150 Exp:500 発光する奇妙な光球だ。それは消えたり現れたりしながら、冒険者を少しずつ引 き寄せているようだ。その踊るような奇妙な動きをみていると、何故かじっとし ていられなくなる。 それは通常地下 37 階で出現し、幾分不規則に、かつ非常に素早く動いている。 このモンスターを倒すことは 50 レベルのキャラクタにとって 約355.77 ポイン トの経験となる。それは的確に魔法を使うことができ、重傷+呪い、混乱、シ ョートテレポート、テレポートの呪文を唱えることがある(確率:1/2)。それは AC150 の防御力と 200 の体力がある。それは壁をすり抜けることができる。それ は光っている。それは透明で目に見えない。それはテレパシーでは感知できな い。それは酸と稲妻と炎と冷気と毒の耐性を持っている。それは進化しない。そ れは恐怖を感じないし、混乱しないし、眠らされない。それは侵入者をかなり警 戒しており、 300 フィート先から侵入者に気付くことがある。それは 1d9 のダ メージで殴って攻撃し、 1d9 のダメージで殴って攻撃し、 1d9 のダメージで殴 って攻撃し、 1d9 のダメージで殴って攻撃する。
アッキ=ニンジャ『ウルウェン』
どう見ても精子です。
鬼畜大佐『ロムンクァリィ』
本当にありがとうございました。 しつこく付きまとって呪いを BUKKAKEして来る意味でもいやらしいのよね。