2013/02/26
■ [変愚蛮怒/スポイラー]酸による装備劣化処理とダメージ緩衝(変愚蛮怒 Ver2.1.2 rev3327)
http://jbbs.livedoor.jp/bbs/read.cgi/game/9358/1359868107/489-495より
489 :名@無@し:2013/02/25(月) 23:59:26 ID:??? 酸のブレスのダメージがwikiだとHPの1/3だけど実際は1/6しかない気がする 490 :名@無@し:2013/02/26(火) 00:03:11 ID:??? そんだけしか無かったら偉大なる不浄様が雑魚に成り下がる 491 :名@無@し:2013/02/26(火) 00:09:27 ID:??? 鎧にステンレスって銘つけてたことあるよw 492 :名@無@し:2013/02/26(火) 00:20:33 ID:??? 酸のブレスは防具を劣化させる時威力が落ちるとか何とか 493 :名@無@し:2013/02/26(火) 00:22:30 ID:??? またひとつ賢くなってしまった 494 :名@無@し:2013/02/26(火) 00:34:36 ID:??? 加速スレのパート50 487から494あたりでその話が出てるな 495 :名@無@し:2013/02/26(火) 00:43:31 ID:??? そんな仕様があったのか… 早とちりしてしまってごめんなさい
あれ、そうだったっけ?と思った俺はメンテナの屑なので、鑑になるためにちょっとソースを追う。
酸による装備の劣化はminus_ac()関数上で実装されている。これは酸属性のダメージ処理を行うacid_dam()でのみ呼び出され、劣化属性などでの劣化は別に実装されている。そしてこのminus_ac()がTRUEを返した場合に、
/* If any armor gets hit, defend the player */ if (minus_ac()) dam = (dam + 1) / 2;
コメントが正しく仕事をしてくれている通り、ダメージを切り上げで半減させることが判明した。いやあ、知らなんだ、あるいはD'ang開発中に多分気づいていたかもしれないが忘れていた。
minus_ac()の処理は以下の通りである。
- 右手/左手/体/体の上/腕/頭/足の7種いずれかの装備を対象にする。その枠に装備がなかった場合キャンセルでFALSEを返す。
- その装備が防具でない場合はキャンセルでFALSEを返す。
- ACが基本値+修正値で既に0以下になっていた場合はキャンセルでFALSEを返す。
- IGNORE_ACIDつきの装備の場合「しかし[装備名]には効果がなかった!」のメッセージを表示、キャンセルでTRUEを返す。
- 以上までのキャンセルがなければ、「[装備名]がダメージを受けた!」のメッセージを表示、AC修正値を1減らして、ステータスの再計算を行う(アンドロイドも強化値を再計算する)
- TRUEを返す。
あら、防具にひっかかったらとにかくダメージ半減するのか。なんてこった。右手に武器は大抵の職業で常識である以上、1/7の確率で酸ブレスは1600通るが、それでもいつも通りに耐性さえ確保していれば期待値自体はほぼ毒ブレス(最大800)より少し強い程度と見て問題ないようだ。
もちろん、そんなものあてにして、酸耐性を一重しか張ってない時に限って533ダメージが来るお約束であろうことは言うまでもあるまいが。