2013/02/27
■ [変愚蛮怒/スポイラー]apply_disenchant()による装備劣化処理(変愚蛮怒 Ver2.1.2 rev3327)
前回に引き続き装備劣化処理をチェック。今回は主に劣化属性攻撃などに使われているapply_disenchant()関数上での処理を追う。
apply_disenchant()は以下の処理の際に呼ばれる。
- 箱のトラップ「邪悪なルーン」の処理の一つ(引数:0)
- カオス魔法失敗時のペナルティ効果の一つ(引数:1)
- トランプ魔法「シャッフル」の「運命の輪」の効果の一つ(引数:1)
- 敵モンスターのUN_BONUS効果打撃(引数:0)
- 魔法の劣化属性攻撃(引数:0)
apply_disenchant()の処理の流れは以下の通りである。
- 右手、左手、射撃、体、体の上、頭部、腕、脚のいずれか一つの装備を標的にする。
- 対象の部位に装備がなければキャンセル。
- モンスターボールなどの一時的に手に持つタイプの発動アイテムは劣化せずキャンセル。
- 命中、ダメージ、AC修正値(非基本値)が既に全て0でなおかつ、pvalも最低の1ならば、劣化しようがないのでキャンセル。
- アーティファクトならば71%の確率で劣化を跳ね返しキャンセル。
- 命中、ダメージ、AC修正値をそれぞれ、1以上ならば必ず1減らす。
- さらに、この時点でまだ命中、ダメージ、AC修正値が6以上ならば、それぞれ20%の確率でさらに1減らす。
- 関数引数が0でかつ、pvalが1より大きいならば、1/13の確率でpvalを1減らす。
- 劣化した要素があったらメッセージを「(装備品)はは劣化してしまった!」を表示。
- 「調」の徳-1、「秘」の徳+2。
全く個人的な話だが、自分はバルログ魔道具術師で浅層で手に入れたリンギルの命中/ダメージを、別のキャラで手に入れたばかりのつらぬき丸をpvalまでアルベリヒに劣化させられたことがあった。訴訟不可避。