記事一覧

LvUP時のステP獲得値を変えてみよう

Baseレベルアップ時に得られるステータスポイント値。
本鯖仕様では以下のように得られます。

BaseLv … Point
2~5 … 3
6~10 … 4
11~15 … 5
16~20 … 6
21~25 … 7
26~30 … 8

81~85 … 19
86~89 … 20
91~95 … 21
96~99 … 22

つまり、(BaseLv + 14) / 5 の計算式の元に得られています。

99の時点の累計ポイントは1225。
このステータスポイントをもうちょっと上げてみたい!
又は得られるポイントを一定にしてみたい!
などの方の今回の改造術です。

改造対象はpc.cの1点のみです。
簡単なのでサクッと行ってみましょう。
続き
まずはレベルアップ時の処理を行っている部分を探してみます。
pc.cの4077行目あたりに次のような記述があります。

    sd->status.base_level ++;
    sd->status.status_point += (sd->status.base_level+14) / 5 ;
    clif_updatestatus(sd,SP_STATUSPOINT);
    clif_updatestatus(sd,SP_BASELEVEL);
    clif_updatestatus(sd,SP_NEXTBASEEXP);
    status_calc_pc(sd,0);
    pc_heal(sd,sd->status.max_hp,sd->status.max_sp);

この2行目、status_pointの部分がまさしくステータスポイントの増加処理を行っています。
この部分を適当に変えてみましょう。今回は本鯖仕様+1ずつ増加させてみます。

    sd->status.status_point += (sd->status.base_level+19) / 5 ;

この場合、Lv2に上がった場合は
(Lv2 + 19) /5 = 4(余り1)
と、+1されているのが分かります。それ以上のレベルでも同様です。

他にも5レベル毎→10レベル毎に+1したい場合は、

    sd->status.status_point += (sd->status.base_level+29) / 10 ;

もう毎レベル20ポイント上がればいいや!という場合は

    sd->status.status_point += 20 ;

色々変えてみると面白いかもしれません。
計算がニガテな方はレベル毎にこれだけ振りたいと紙に書いてみて、計算式を組み立てたりしてみてください。
変更後は、変更前のデータはそのままなので差違点が出ることにご注意を。

コメント一覧

こより 2007年03月21日(水)14時10分 編集・削除

だいぶ前にここをえらく急激な単調増加式にして、オーバーフローしちゃった記憶がある(・x・`)