解析

Version3.0.1.4-Beta

src -> player -> player-status.cpp -> update_max_mana

概要

プレイヤーの装備重量が重かった場合に、最大MPにペナルティを課す処理。

ベース最大MPの決定

職業やステータスによって決める。詳細略。

篭手ペナルティ

(篭手を装備してない場合は無視して次へ)
装備中の篭手が以下の全てを満たす時、最大MPを3/4倍する。

装備重量ペナルティ

現在の装備重量の計算

装備重量を0で初期化する。
利き手と逆手にそれぞれ、盾を装備している*1ならその重量を加算。
体装備の重量を加算。
頭装備の重量を加算。
外套装備の重量を加算。
腕装備の重量を加算。
脚装備の重量を加算。

利き手と逆手にそれぞれ、武器を装備している*2ならその重量に職業ごとの係数をかけたものを加算。
係数は以下の通り:

職業係数
メイジ
ハイ=メイジ
青魔道師
修行僧
練気術師
スペルマスター
元素使い
1
プリースト
吟遊詩人
観光客
2/3
超能力者
魔獣使い
鏡使い
1/2
盗賊
レンジャー
赤魔道士
魔法戦士
1/3
パラディン
混沌の戦士
1/5
それ以外0

最大重量の決定

職業ごとに定義されている値*3を用いる。
具体的には(MPの無い職業は省略)(Todo: kg換算すると?):

職業最大重量
スペルマスター40
修行僧
練気術師
350
盗賊
超能力者
吟遊詩人
鏡使い
400
メイジ
プリースト
魔法戦士
ハイ=メイジ
魔獣使い
赤魔道士
青魔道師
元素使い
430
レンジャー
パラディン
混沌の戦士
観光客
450

重量ペナルティの決定

(装備重量-最大重量=超過重量とする。)
超過重量>0の時、最大MPを最大MP*超過重量/係数の値だけ減らす。
係数は職業ごとの値である。具体的には以下の通り:

職業係数
メイジ
ハイ=メイジ
青魔道師
元素使い
600
プリースト
超能力者
魔獣使い
吟遊詩人
練気術師
観光客
鏡使い
800
スペルマスター900
盗賊
レンジャー
修行僧
赤魔道士
1000
パラディン
魔法戦士
混沌の戦士
1200
剣術家超過にならない。
それ以外800

以上。

考察, 雑感

comments

最新の10件を表示しています。 コメントページを参照

  • kgで換算するには20で割れば良い はず -- 2024-09-06 (金) 20:00:30
お名前:

*1 要約。実際の判定式は「tval_main > ItemKindType::SWORD」
*2 要約。実際の判定式は「tval_main <= ItemKindType::SWORD」。武器の類に加えてモンスターボールも含まれるようだ
*3 lib -> edit -> ClassMagicDefinitions.txt -> I:行の最後の値

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2024-05-26 (日) 17:37:34