【解決済み】jsにてxparam(命中、回避)の表示をしたいです

k.a.i
記事: 14
登録日時: 2018年3月31日(土) 09:07

【解決済み】jsにてxparam(命中、回避)の表示をしたいです

投稿記事by k.a.i » 2018年5月03日(木) 13:55

はじめまして。いつも利用させていただいております。

当方、公式プラグインのItemBookを改造し、画像のように変更してみました。
ですが、命中回避の数値がどうしても出せません。
当方js素人なので既存の文章の改変しかできませんが、現在下記のようにしております。
7行目の部分をxparams[i]にしたりとか、色々試したのですが、出ません。

x = this.textPadding() + 530;
y = lineHeight + this.textPadding();
for (var i = 8; i < 10; i++) {
this.changeTextColor(this.systemColor());
this.drawText(TextManager.param(i), x, y, 160);
this.resetTextColor();
this.drawText(item.params[i], x + 160, y, 60, 'right');
y += lineHeight;
}

どなたか、もし宜しければご教授願えませんでしょうか。
よろしくお願い致します。
添付ファイル
tes.png
最後に編集したユーザー k.a.i on 2018年5月19日(土) 08:50 [ 編集 2 回目 ]

アバター
しぐれん
記事: 973
登録日時: 2017年3月28日(火) 22:22
連絡を取る:

Re: jsにてxparam(命中、回避)の表示をしたいです

投稿記事by しぐれん » 2018年5月03日(木) 15:32

命中率はparamsではく、traitsの方ですね。
こんな感じで取れるはずです。

コード: 全て選択

var hit =0;
var eva=0;
var length = item.traits.length
for(var i=0; i<len;++i){
   var t = item.traits[i];
   if(t.code ===Game_BattlerBase.TRAIT_XPARAM){
      if(t.dataId ===0){
          hit += t.value;
      }
      if(t.dataId ===1){
          hit += t.value;
      }
   }
}



Visual Studio Code使ってステップ実行しながら探るといいと思います。
現在、プラグイン依頼はお休み中です。
アバター
まっつUP
記事: 1155
登録日時: 2016年8月11日(木) 15:38
お住まい: タケノコ王国

Re: jsにてxparam(命中、回避)の表示をしたいです

投稿記事by まっつUP » 2018年5月03日(木) 16:06

k.a.i様 
しぐれん様の回答を参考にアイテムの特徴で増えるxparamを算出する
関数を組んでみました。
追記:新しい関数を組んだ時は単純にプラグインの中に書き込んでください。

コード: 全て選択

DataManager.itemxparamtraits = function(item, id) {
       return item.traits.filter(function(trait) {
             return trait.code === Game_BattlerBase.TRAIT_XPARAM && trait.dataId === id;
       });
};

DataManager.itemxparamSum = function(item, id) {
        return this.itemxparamtraits(item, id).reduce(function(r, trait) {
             return r + Math.floor(Number(trait.value) * 100);
        }, 0);
};

これは

コード: 全て選択

this.drawText(DataManager.itemxparamSum(item, 0), x + 160, y, 60, 'right');
            y += lineHeight;
            this.drawText(DataManager.itemxparamSum(item, 1), x + 160, y, 60, 'right');

みたいな感じで
if (DataManager.isWeapon(item) || DataManager.isArmor(item)) {のブロック内で
呼び出して下さい。
RPGで笑顔を・・・

ツイッター(ツクラーの巣窟)(閲覧は自己責任でお願いします)
https://twitter.com/mattuup

github
https://github.com/mattuup/RPGMakerMZ
k.a.i
記事: 14
登録日時: 2018年3月31日(土) 09:07

Re: jsにてxparam(命中、回避)の表示をしたいです

投稿記事by k.a.i » 2018年5月04日(金) 16:39

しぐれん様、まっつUP様、ご回答ありがとうございます。
せっかく作成していただいたところ大変恐縮なのですが、
プラグインがうまく動作しませんでした。

当方の知識不足によるところもありますので、修正したり
コードの挿入位置を変えたりしながら自力で調整を試みており、時間がかかっております。
もう少し自力で頑張ってみて、どうしても無理であれば再度質問させていただくかもしれません。

とりあえずお礼まで。ありがとうございました。
k.a.i
記事: 14
登録日時: 2018年3月31日(土) 09:07

Re: jsにてxparam(命中、回避)の表示をしたいです

投稿記事by k.a.i » 2018年5月12日(土) 09:21

まっつUP様

お世話になっております。
まっつUP様のコードで無事プラグインが動作しましたので、ご報告でした。
本当にありがとうございました。
添付ファイル
4444.png

“MV:質問” へ戻る