2013/01/04
■ [変愚蛮怒/スポイラー]プレイヤーの取得経験値(変愚蛮怒 Ver2.1.1)
同日追記
途中の掛け算割り算が間違っていた。これで本当に問題ない。補足しておくとモンスターを殺して得られる経験値の概算は
基本経験値 * 敵レベル / (@さんのレベル + 2)
ということになる。これに個体のHPと実質加速がr_info上で定められた基本値に対するその比として掛け算されている。ダイスの巡り合わせで、HPが本来の1.1倍であれば、取得経験値も1.1倍になるということである。
本文
gain_exp_from_mon()関数でモンスターから、gain_exp()関数でそれ以外から得る経験値処理を行う。以下grepにより抜粋。
gain_exp_from_mon()
- KILL_EXPフラグを持たないモンスターにダメージを与えると、ダメージを与えた分だけ基本取得値が得られる。
- HEALを持つ場合は2/3になる。
- カオスパトロンの抹殺では当然0となる。
- モンスターを殺した時にKILL_EXP持ちなら最大HP*2、そうでない場合最大HP*9/10の基本取得値が得られる。
- 基本取得値とモンスターの特性を基準にさらに以下の処理をgain_exp_from_mon()内で行う。
- モンスター種族のIDが不正なら経験値なし
- ペットやアリーナのモンスターなら経験値なし
- 基本取得経験値を敵レベル*(モンスター個体の加速の実倍率*取得基本値)とする。
- FORCE_HPの場合基本取得経験値に(敵HPダイス数*敵HPダイス最大目*2)/(プレイヤーの到達最大レベル+2)*モンスター基本加速の実倍率)を
かける割る。 - そうでない場合基本取得経験値に(敵HPダイス数*(敵HPダイス最大目+1))/(プレイヤーの到達最大レベル+2)*モンスター基本加速の実倍率)を
かける割る。 - 悪夢モードなら
2倍1/2。 - 地上で、WILD_ONLYでもユニークでもないモンスターを殺した場合1/5になる。
- FORCE_HPの場合基本取得経験値に(敵HPダイス数*敵HPダイス最大目*2)/(プレイヤーの到達最大レベル+2)*モンスター基本加速の実倍率)を
- MULTIPLY(増殖する)モンスターか、暁の戦士の場合MAX(8, 殺戮数/400)(切り捨て)回だけ経験値を1/4にする。
- ここまでの経験値にモンスターの固有経験値をかけたものが最終的な取得経験値になる。
gain_exp()
- 箱の鍵を外すと1取得
- 扉の鍵を外すと1取得
- 箱のトラップを解除するとトラップの難易度分取得
- 床のトラップを解除するとトラップの難易度分取得
- 戦士やバーサーカーが全て領域の高位魔道書を、パラディンが自分の属性に反する領域の高位魔道書を破壊すると、以下の経験値を得る。
- 高位魔道書とは秘術以外の三冊目と四冊目である。
- 取得経験値は@さんの現最大経験値の1/20。
- 三冊目以下はさらに1/4。
- 10000以上にはならない。
- 最低1はキープされる。
- 領域魔法に初めて成功すると、領域魔法の固有値*習得レベル分を取得
- 未鑑定のアイテムの使用を試みて成功すると(アイテムのレベル * 3 / 2) / (プレイヤーレベル)の経験値を取得。
- 経験の薬で、@さんの現最大最大値/2+10(上限100000)取得。
- シャッフルの『世界』の効果で現最大最大値/25+1(上限5000)取得。
- 青魔道師がラーニングに成功すると、取得レベル*消費MP分取得
- ヴィザードモードの'x'コマンドで現最大最大値+1取得。
- カオスパトロンの報酬で@さんの現最大最大値/2+10(上限100000)取得。