GOREとにゃんこの桃源郷

主観的にCDのレビューやら、日記やら、色々と。
ゴアとかメタルとかロックとか

RPGツクールMZ - その5

2023-09-16 | RPGツクールMZ,VXace,VX,2000,95,1~5

 わくわくするようなプラグイン素材の数々、ゼロから書けない自分にとっては宝石箱のようなもの。彦摩呂だってツクラーだったらそんなこと言いそう。トリアコンタンさまの「説明テンプレートプラグイン」を利用して、自分向けに利便性を高める改変を施した。 
 といっても、「function createDescription」の前後に配列と条件文を追加しただけ。スキルレベル的な問題が大きな壁としてうんにゃらかんにゃらでそれくらいの改変しか出来ない。


 
    const paramProps = ['mhp', 'mmp', 'atk', 'def', 'mat', 'mdf', 'agi', 'luk', 'hit', 'eva', 'cri', 'cev', 'mev', 'mrf', 'cnt' ];//既存に追加能力値の略称を追加
const paramNaming = ['HP', 'MP', '攻撃', '防御', '魔力', '魔防', '素早さ', '運', '命中', '回避', '会心', '会心回避', '魔法回避', '魔法反射', '反撃率'];//ネーミング用、色変更をプラグインパラメータ側で行うため。

//能力値取得のelese内にスイッチ分岐して、変化のある能力だけを説明欄に記載させる。
const paramIndex = paramProps.indexOf(propName);
    switch(paramProps[paramIndex]){
     case 'mhp':
     case 'mmp':
     case 'atk':
     case 'def':
     case 'mat':
     case 'mdf':
     case 'agi':
     case 'luk':
      if(data.params[paramIndex] > 0){
       return '+' + data.params[paramIndex] + ' ';
      }
      else if(data.params[paramIndex] < 0){
       return data.params[paramIndex] + ' ';//マイナス符号は勝手に付くらしい。
      }
      else{
       return '';//増減しない値は非表示。
      }
      break;
     case 'hit':
     case 'eva':
     case 'cri':
     case 'cev':
     case 'mev':
     case 'mrf':
     case 'cnt':
      const rate = data.traits.reduce((r, pm) => pm.code === 22 && pm.dataId === (paramIndex - 8) ? r + (pm.value * 100) : r, 0);
      if(rate > 0){
       return '+' + rate + '% ';
      }
      else if(rate < 0){
       return rate + '% '; 
      }
      else{
       return '';
      }
      break;
    }
    const nameIndex = paramNaming.indexOf(propName);
    switch(paramNaming[nameIndex]){
     case 'HP' :
     case 'MP' :
     case '攻撃' :
     case '防御' :
     case '魔力' :
     case '魔防' :
     case '素早さ' :
     case '運' :
      return data.params[nameIndex] !== 0 ? paramNaming[nameIndex] + ' ' : '';
      break;
     case '命中' :
     case '回避' :
     case '会心' :
     case '会心回避' :
     case '魔法回避' :
     case '魔法反射' :
     case '反撃率' :
      const rate = data.traits.reduce((r, pm) => pm.code === 22 && pm.dataId === (nameIndex - 8) ? r + (pm.value * 100) : r, 0);
      return rate !== 0 ? paramNaming[nameIndex] : '';
      break
    }
 

 そもそも装備品用の改変なので、スキルでは一切役に立たない。これを設定するあたり、プラグインパラメータの説明テンプレートは結構可読性が減少。
\C[23]【${wtypeId}】\C[3]${攻撃}\c[0]${atk}\C[3]${防御}\c[0]${def}\C[3]${魔力}\c[0]${mat}\C[3]${魔防}\c[0]${mdf}\C[3]${素早さ}\c[0]${agi}\C[3]${運}\c[0]${luk}\C[3]${HP}\c[0]${mhp}\C[3]${MP}\c[0]${mmp}\C[3]${命中}\c[0]${hit}${回避}\c[0]${eva}\C[3]${会心}\c[0]${cri}\C[3]${会心回避}\c[0]${cev}\C[3]${魔法回避}\c[0]${mev}\C[3]${魔法反射}\c[0]${mrf}\C[3]${反撃率}\c[0]${cnt}
${description}」
 けれど、能力変化の有無を勝手に判別して、無い場合には「攻撃」という項目自体も表示されなくなるので、ヘルプと実態の設定ミスが大きく減少するはず。日本の出生数くらい減少するはず。もっと言えば物価高騰に於いて所得据え置きの現状から相対的な収入減少を示唆している。
 
 こういう適当に設定したパラメータから、自動的に値0以外のものだけを取得する。
<style type="text/css"></style> <style type="text/css"></style>


最新の画像もっと見る

コメントを投稿