2013/07/26
■ [変愚蛮怒/開発] ★ミリム水着のpvalバグ原因(変愚蛮怒2.1.4 r3495で修正)
r3474です。 性格セクシーギャルで★戦乙女ミリムの危ない水着を入手し、 装備したのですがステータス補正がありませんでした。 ちなみに装備した場合の表記は、 h) ★戦乙女ミリムの危ない水着 (+5,+5) [0,+20] (+0) {+腕知賢器耐魅r轟劣;反麻怒(耐魅} です。 ステータス画面の能力修正にはすべての能力に*印が入っている状態でした。
鬼畜大佐『ロムンクァリィ』
オラァ!中の奴!テストやってんのかコラァ!
アッキ=ニンジャ『ウルウェン』
自前で実装したデバッグモードの固定アーティファクト生成機能時に 生成されてるのに満悦して、ダンジョンで自然生成された時の 検証を怠っていたってはっきりわかんだね†悔 い 改 め て†
if (o_ptr->name1 == ART_MILIM) { if(p_ptr->pseikaku == SEIKAKU_SEXY) { o_ptr->pval = 3; } }
鬼畜大佐『ロムンクァリィ』
で、dis-プロが追加の形で修正かけてくれたのがこれね。 こいつをapply_magic()(object2.cの4340行)に追加した感じ。
if (o_ptr->name1 == ART_MILIM) { if (p_ptr->pseikaku == SEIKAKU_SEXY) { o_ptr->pval = 3; add_flag(o_ptr->art_flags, TR_STR); add_flag(o_ptr->art_flags, TR_INT); add_flag(o_ptr->art_flags, TR_WIS); add_flag(o_ptr->art_flags, TR_DEX); add_flag(o_ptr->art_flags, TR_CON); add_flag(o_ptr->art_flags, TR_CHR); } }
アッキ=ニンジャ『ウルウェン』
中の奴の方は、random_artifact_resistance()のartifact.c:3813で こんな実装かけた訳だな。 この関数内にはアーティファクトID毎の特別なハードコーディング 処理がかまされていた。例えば★天上のクローク『天女の羽衣』が 男の時には反感ついたりとか、★鉄ヘルメット『恐怖の仮面』に純戦士職なら ボーナス、そうでなければ太古の怨念に反感がつく、とか a_info.txt上で設定してない特別な処理がまとまっている。
鬼畜大佐『ロムンクァリィ』
これで★ミリム水着生成条件が整った際に、+3pvalがつくものと 思ってたのよね。現にデバッグモード時にはそれで上手くいってたんだけど… この同じapply_magic()関数の直前、object2.cの4330行の処理を見なさい。
/* Extract the other fields */ o_ptr->pval = a_ptr->pval; o_ptr->ac = a_ptr->ac; o_ptr->dd = a_ptr->dd; o_ptr->ds = a_ptr->ds; o_ptr->to_a = a_ptr->to_a; o_ptr->to_h = a_ptr->to_h; o_ptr->to_d = a_ptr->to_d; o_ptr->weight = a_ptr->weight; o_ptr->xtra2 = a_ptr->act_idx;
アッキ=ニンジャ『ウルウェン』
あ~あ、もう滅茶苦茶だよ。random_artifact_resistance()の後に apply_magic()関数が読み出されて、アーティファクト情報のpval(=0)で pval修正が上書きされてるじゃないか。
鬼畜大佐『ロムンクァリィ』
ここに上がってるステータスの特別修正はこの後で行わないと いけなかったってオチよ。デバッグコマンドの[ctrl]+[a]→[C]ん時は random_artifact_resistance()の後にapply_magic()を経由しない処理に なってたからこのザマになっていたの。 デバッグコマンド自体直さないと、こりゃ似たようなトラブル起きるわ。
アッキ=ニンジャ『ウルウェン』
変愚のガバガバ構造は前々からやむからぬ問題とは言え、 D'angで3年近くも細く長くソースいじってる奴がこれじゃねえ。 猛省せにゃならんわ。
というわけで、匿名の報告者様とdis-プロ。ご迷惑をおかけしました。 改めてお詫びいたします。
■ [ヴィーヤウトゥムノ] イエロー・ゼリー/Yellow jelly (Yellow 'j')
=== Num:66 Lev:3 Rar:1 Spd:+10 Hp:10d8 Ac:1 Exp:13 それは黄色い肉のような物質の塊だ。 それは通常地下 3 階で出現し、素早く動いている、しかし侵入者を追跡しない。 このモンスターを倒すことは 50 レベルのキャラクタにとって 約0.75 ポイント の経験となる。それは魔法を使うことができ、魔力吸収の呪文を唱えることがある (確率:1/16)。それは AC1 の防御力と 10d8 の体力がある。それはテレパシーで は感知できない。それには明るい光でダメージを与えられる。それは毒の耐性を 持っている。それは経験を積むと、シルバー・ゼリーに進化する。それは恐怖を 感じないし、混乱しないし、眠らされない。それは侵入者に対してほとんど注意 を払わないが、 20 フィート先から侵入者に気付くことがある。それは 1d7 のダ メージで触って毒をくらわす。
鬼畜大佐『ロムンクァリィ』
色違いのモンスターはラフのままじゃ表現しきれないから、 質感やデザインをこれからよりはっきりしていくってさ。 このイエロー・ゼリーは胞状なデザインにすると。
アッキ=ニンジャ『ウルウェン』
jシンボル6匹目か。明らかに他よりハイペースさね。 今度のHFO子はスケキヨ状態。