【ほぼ解決済み】探しています。職業変更前のステータス維持の方法またはプラグイン

ロマンGO

ユーザー
5ちゃんとのマルチポストになってしまいますが、探しています。
「職業変更時点では変更前のステータスを維持したままにする」方法もしくはプラグインです。

MZではステータスの計算が職業×レベルになっているため
職業を変えるとその成長率とレベルで再計算されて転職前のステータスは無視されます。

そうではなくタクティクスオウガのような「職業変更しても前のステータスを引き継ぐ」
レベル50の魔法使いが戦士に転職してもいきなりゴリマッチョになるのではなく
51から戦士の特徴でステータスが加算されるというプラグインを探しています。


色々なプラグインを探しましたが
「サブ職業を作る」とか「職業毎にレベルが存在する」という複雑なプラグインは見つかりましたが
このような単純な変更をするだけのプラグインは見つかりませんでした。

ツクールアドバンスではこの方式だったため
単純に「職業変更してもステータス維持」のままにできればそれで良いのですが。

どなたかプラグインの制作、または既存のもので可能ならばそのURLのご教授をお願いできればと思います。
代替案なども募集しておりますのでよろしくお願いいたします。
 
職業変更自体させないというのはどうですか?
職業という欄は違うものにして、二つ名の所に職業欄を記載するとか?

二つ名関係のプラグインでこういうのがある。

このプラグインを利用すれば、二つ名を変更するだけで職業が変更している様に錯覚させる事ができますよ。
 
返信ありがとうございます。
さっそく見させていただきましたが、こちらですと
「職業変更以降はその職業の特徴でレベルアップ時ステータスが加算される」という
形式にはできないと思います。

わかりづらかったので補足しますと

戦士:魔法力低 防御力高 魔法使い:魔法力高 防御力低 という特徴があるとします。

戦士アクターA:レベル10:現在魔法力:100 防御力200
1レベルあたりの上昇値がそれぞれ10、20と仮定して

魔法使い:1レベルあたりの魔法力上昇値20 防御力10に転職したいとします。
MZの仕様そのままだと転職したその時点で
魔法力200 防御力100 のアクターになってしまいます。
レベル引継ぎ無しでレベル1からレベル10の魔法使いにしたとしても同じです。

魔法使いに転職した時点では 魔法力100 防御力200のまま
それ以降のレベルアップで 魔+20 防御+10と成長させていきたいのです。

レベル11になった時のステータスは
魔法力100+20=120 防御力200+10=210 となるのが理想です。

もっとわかりやすく言うと
「魔法使い一本道じゃ防御力が低いから戦士を経由する」だとかその逆だったりを
行い理想のステータス数値を目指すという遊び方を提供できればなと思います。

そのためにMZの「転職したら職業×レベルでステータスが再計算される」という仕様が邪魔かなと。
 
そのプラグインは純粋に肩書きが変わるだけなので、
求められているモノとはちょっと違う気がしますね。

転職をどのような形で行うのかにもよりますが、以下のような感じで
イベントコマンドだけでできそうな気がします。(試してません)
  1. 転職前の各能力値を変数に代入する
  2. 転職
  3. 変数から転職後の各能力値を引き算する(転職前後の差分になる)
  4. 「能力値の増減」で各能力値に変数の値を増やす
 
>>PANDAさん
出来ました!ありがとうございます!

ソルジャーと魔法使いの職業を用意。
「攻撃力」「魔法力」以外のステータスは同じ

違いをはっきりさせるため「攻撃力」「魔法力」を極端に高く/低くする
上述のコマンドをテスト

ソルジャーのままのレベル10、魔法使い転職直後のレベル10
ソルジャー11 12 魔法使い10からのレベル11、12でテストしたところ
理想の形で能力値が変化しました!

>>mansatuさん
ありがとうございます。こちらも一通り目を通してみようと思います。


スクショの左上に実行したコマンド。
それぞれの能力の差をキャプチャしたので貼っておきます。
 

Attachments

  • RPGテスト.jpg
    RPGテスト.jpg
    378.6 KB · 閲覧: 84
スクリプトリファレンスに職業のレベルごとの基本値がすべて格納された配列があるのでそこから差分を加算させた方がいいかと思います
転職すると装備や割り増しが変化する恐れがあるので
 
能力値曲線のスクリプトは確か・・・これだった様な?
$dataClasses[X1].params[0][X2];

X1が職業IDでX2はレベルを表しており、paramsの0は最大HPで1が最大MP、2が攻撃力と風に続いていたはず・・・。

$dataClasses[1].params[0][10];
でレベル10の職業IDの最大HPの値取得できる様になる。
 
皆様、返信ありがとうございました。
ここに書かれている方法は全部試してみようと思います。

とりあえず【ほぼ解決済み】とさせていただきます。

また不具合が発生したら相談するかもしれませんがよろしくおねがいいたします。
 
Back
トップ