【解決済】自作ステータスを装備で増減させたい

アリクイマン
記事: 44
登録日時: 2018年5月06日(日) 12:30

【解決済】自作ステータスを装備で増減させたい

投稿記事by アリクイマン » 2019年2月06日(水) 20:16

お世話になっております。
Game_BattlerBaseを拡張し、キャラクターのステータスを3種類追加しました。

それぞれのステータスは
Game_Actor.prototype.setup、Game_Enemy.prototype.setupにて、
アクター、若しくはエネミーのメモ欄から取得し、設定しています。
ダメージ計算式や、戦闘システム等に利用するところまではできたのですが、
追加したステータスを、装備によって増減させる方法がわかりませんでした。

おそらく、既存のステータスはparamPlus等で管理されているのだと思いますが、
どうすれば良いのかがわからず…。
装備品のメモ欄にタグを埋め込むことを想定しています。

ご教示のほど、よろしくお願いいたします。
最後に編集したユーザー アリクイマン on 2019年2月10日(日) 20:53 [ 編集 1 回目 ]

アバター
べるろ*(米工事)
記事: 30
登録日時: 2018年1月27日(土) 12:41
連絡を取る:

Re: 自作ステータスを装備で増減させたい

投稿記事by べるろ*(米工事) » 2019年2月06日(水) 21:42

オリジナルステータスを装備によって増減させようとするとちょっと大掛かりなスクリプト書き換えが必要になります。
どうしても自作にこだわりたいということであればご助力いたしますが、フトコロ様作のオリジナルパラメータ追加プラグインを使うというのはいかがでしょうか?

https://github.com/futokoro/RPGMaker/bl ... ters.ja.md
アリクイマン
記事: 44
登録日時: 2018年5月06日(日) 12:30

Re: 自作ステータスを装備で増減させたい

投稿記事by アリクイマン » 2019年2月07日(木) 00:13

このオリジナルステータスが少々厄介なものでして、
基本1桁、レベルアップでの増減は無し、
戦闘のダメージ計算等に使えはしますが、メインの用途はそこではなく、
割とガッツリ戦闘システムに組み込んでいる為(わかりづらい説明で申し訳ございません)、
可能であれば、新規でプラグインを導入しない方向で考えたいです。

急務ではないことと、スクリプトの知識は多少はありますので、
装備を変更した際等に呼ばれる、ステータスを計算し直す処理等を教えていただけると幸いです。

よろしくお願いいたします。
アバター
べるろ*(米工事)
記事: 30
登録日時: 2018年1月27日(土) 12:41
連絡を取る:

Re: 自作ステータスを装備で増減させたい

投稿記事by べるろ*(米工事) » 2019年2月07日(木) 19:44

例えば、今作られているパラメータをparamXとして、既に

コード: 全て選択

var _Game_Actor_setup = Game_Actor.prototype.setup;
Game_Actor.prototype.setup = function(actorId) {
 _Game_Actor_setup.call(this,actorId);
 this._paramX = this.setParamX(actorId);
};

Game_Actor.prototype.setParamX = function(actorId) {
 var value = 0;
 if($dataActors[actorId].meta['ParamX'] && !isNaN(equips.meta['ParamX'])) {
  value = Number($dataActors[actorId].meta['ParamX']);
 }
 return value;
};

のような形のスクリプトを組んでいる前提でお話します。

まず、装備のメモ欄からParamXを取得するメソッドを新しく作ります。

コード: 全て選択

Game_Actor.prototype.getEquipParamX = function() {
 var value = 0;
 var equips = this.equips();
 for(var i = 0; i < equips.length; i++) {
  if(equips.meta['ParamX'] && !isNaN(equips.meta['ParamX'])) {
   value += Number(equips.meta['ParamX']);
  }
 }
 return value;
};


続いて、上記setParamXとgetEquipParamXを両方とも適用するメソッドを用意します。

コード: 全て選択

Game_Actor.prototype.refreshParamX = function() {
 var actorId = this._actorId;
 this._paramX = this.setParamX(actorId) + this.getEquipParamX();
};


これをGame_Actor.prototype.refresh中に組み込めば多分それなりにはなると思うのですが……
参考になれば幸いです。
アリクイマン
記事: 44
登録日時: 2018年5月06日(日) 12:30

Re: 自作ステータスを装備で増減させたい

投稿記事by アリクイマン » 2019年2月07日(木) 21:04

返信ありがとうございます!
前提とされている記述方法とほぼ同じ記述方法で追加ステータスを作っていた為、
非常に参考になりました。

一度これで実装、動作を確認させていただきます。
ご助力いただき、ありがとございました。

“MV:質問” へ戻る