2016/03/08
■ [ヴィーヤウトゥムノ] [U] 呪われし『マレキス』/Malekith the Accursed (Violet 'h') TAKE2
=== Num:628 Lev:40 Rar:2 Spd:+15 Hp:2500 Ac:70 Exp:7500 最も古くから生きていて、最も強力なダークエルフのうちの一人である『マレキ ス』は、悪に身を捧げた魔法の達人である。顔の左半分は青白く、右半分は黒 い。髪は長くて白い。 彼は通常地下 40 階で出現し、かなり素早く動いている。この邪悪なるモンス ターを倒すことは 50 レベルのキャラクタにとって 約5769.23 ポイントの経験と なる。彼は的確に魔法を使うことができ、地獄球、精神攻撃、致命傷+呪い、目 くらまし、混乱、麻痺、治癒、テレポート、テレポートバック、暗闇、記憶消 去、モンスター一体召喚、モンスター複数召喚、救援召喚、デーモン一体召喚の 呪文を唱えることがある(確率:1/2)。彼は AC70 の防御力と 2500 の体力があ る。彼はドアを開け、ドアを打ち破ることができる。彼は素早く体力を回復す る。彼には明るい光でダメージを与えられる。彼は暗黒の耐性を持っている。彼 は朦朧としないし、混乱しないし、眠らされない。彼は侵入者を幾分注意深く見 ており、 200 フィート先から侵入者に気付くことがある。彼は 9 個までの上質 なアイテムを持っていることがある。彼は 12d9 のダメージで殴って攻撃し、 12d9 のダメージで殴って攻撃する。
http://sikabane-works.net/monzetsu_diary/?date=20131003#p02からリテイク
鬼畜大佐『ロムンクァリィ』
相変わらず中の奴未読である件について。
アッキ=ニンジャ『ウルウェン』
最近の映画でも出演したんだっけか。
■ [変愚蛮怒/スポイラー] build_tunnel()関数処理の流れ(変愚蛮怒 Ver2.1.5)
build_tunnel()関数及びbuild_tunnel2()関数による通路生成(基本前提)の続きとして。正直CAVE_*属性共々分かりづらいと思うので図解も検討中。
- dun_tun_chg値(ダンジョンの通路の曲がりくねり易さ)をcave_gen()の時点で予め20~60の範囲で決める。
- dun_tun_rnd値(ダンジョンの通路を伸ばす方向の切り替わり易さ)をcave_gen()の時点で予め5~20の範囲で決める。
- dun_tun_rnd値(ダンジョンの通路を連続して同じ方向に引き延ばす確率)をcave_gen()の時点で予め10~40の範囲で決める。
- correct_dir()関数により通路を作成する始点と終点の位置関係から、どの方向に通路を伸ばすか決める。
- correct_dir()関数により伸ばす方向は上下左右のみで斜めには伸ばさない。例えば上にも右にも伸ばして問題ない場合は半々の確率でどちらか選ぶ。
- 現在の始点と終点が一致しない限り、以下の処理を繰り返す。
- ループカウントが2000を超えた場合、無限ループを避けるために通路作成処理を失敗とする。
- (1d100-1) < dun_tun_chg ならば correct_dir() を実行して、現在の始点から終点に向ける方向を再指定する。
- さらに (1d100-1) < dun_tun_rnd ならば rand_dir() を実行して、通路を伸ばす方向を上下左右へ一様な確率に取り直す。
- 現在の始点から、伸ばす方向に1マスだけ進んだ地点を取得する。
- 1マス伸ばした先が「マップ外にはみ出ない」場所になるまで以下の処理を繰り返す。(大体は1回もループせずに次の処理へ飛ぶ)
- correct_dir()関数で伸ばす先を再指定する。
- さらに (1d100-1) < dun_tun_rnd ならば rand_dir() を実行して、通路を伸ばす方向を上下左右へ一様な確率に取り直す。
- 始点の1マス先をそれに従って取り直す。
- マップ外にはみ出ない次の1マスが取れたならば、次の地点の地形属性を以下のように確認する。
- 次の1マスにCAVE_SOLID属性がついているならば、最初のループからやり直す。
- 次の1マスにCAVE_OUTER属性(外壁)がついているならば、もう1マス先の地形属性を確認し、その先がCAVE_SOLIDかCAVE_OUTER属性がついているならば、最初のループからやり直す。
- 以上のいずれでも無ければ、新しく貫通した外壁であるとして、次の1マスを壁を貫通した通路として座標を登録する(この壁を貫通した通路マスの数がWALL_MAX(500)に到達してしまった場合、通路が増えすぎたとしてbuild_tunnel()関数の処理そのものを失敗扱いにする)
- 次の1マスの周囲1マスを確認し、もしCAVE_OUTER属性をつけているならば、CAVE_SOLID属性を付加する。その地点のモンスターは取り除く。
- そうでなく、次の1マスにCAVE_ROOM属性がついていたならば、そのまま通路が部屋を貫通しているものとして次の1マスを通路として登録する。
- そうでなく、次の1マスにCAVE_INNER及びCAVE_OUTER属性がついていたならば、トンネルになった通路として座標を登録する(このトンネルになった通路マスの数がTUNN_MAX(900)に到達してしまった場合、通路が増えすぎたとしてbuild_tunnel()関数の処理そのものを失敗扱いにする)、door_flagをfalseにする。
- いずれのCAVE_*属性も持たないマスであった場合(=既にどこかの部屋と繋がっていることが保証された状態)ならば以下の処理を行う。
- door_flagがfalseならば、そのマスをドアを作成するものとして登録する。(このトンネルになった通路マスの数がDOOR_MAX(200)に到達してしまった場合、ドアが増えすぎたとしてbuild_tunnel()関数の処理そのものを失敗扱いにする)、door_flagをtrueにする。
- (1d100-1) < dun_tun_con ならば、ここで最初の始点から、現在の地点まで何マス進んだかをチェックし、上下左右いずれかに10マス以上進んだならば、ループを終え、通路作成成功とする。