GOREとにゃんこの桃源郷

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

RPGツクールMZ - その2

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

 続きまして、ステートのメモ欄に「sealItem」と書かれているステートに感染すると、アイテムコマンドが封印されるという仕組みを作った。感染中のステート配列から、メモが記載されているステートだけのフィルタリング結果が0件であればアイテム使用可能、1件以上あると使用不可になる。
 各スキルコマンドや防御コマンドの封印はデフォルトで設定できるから、考えてるのは攻撃コマンドくらい。攻撃封印の場合、アイテムやスキルが無い、さらに防御が封印されていたら何も選択出来ずに詰んでしまう。なので攻撃を「何もしない」に変更する必要があると思っている。それでも自動戦闘では問答無用で通常攻撃がアクションリストに含まれるので、その辺りも含めて設定する箇所が多い気がする。手動戦闘のコマンド、自動戦闘のアクションリスト、それと混乱時のアクションリストあたり。

 二つ目は、武器を装備していない場合、攻撃コマンドを「素手」という名称にしている。武器を装備している場合は、武器の名称が表示される。画像の武器アイコンが爪、名称が剣になっているのは初期設定から武器種別しか弄っていないため。

 三つ目は、「パッシブ」というスキル種別は戦闘中のコマンド(アクターコマンド)に現れないようにしている。

 以上のように、多少の改変を出来るところからちまちまと。


const _Window_ActorCommand_addItemCommand = Window_ActorCommand.prototype.addItemCommand;
Window_ActorCommand.prototype.addItemCommand = function() {
 _Window_ActorCommand_addItemCommand;
 const resItemCommand = this._actor._states.filter(state => {
  if($dataStates[state].meta.sealItem){
   return state;
  }
 });
 this.addCommand(TextManager.item, "item", resItemCommand.length === 0);
};


const _Window_ActorCommand_addAttackCommand = Window_ActorCommand.prototype.addAttackCommand;
Window_ActorCommand.prototype.addAttackCommand = function() {
 _Window_ActorCommand_addAttackCommand;
 let text = "";
 this._actor.equips()[0] ? text = this._actor.equips()[0].name : text = "素手";
    this.addCommand(text, "attack", this._actor.canAttack());
};

const _Window_ActorCommand_prototype_addSkillCommands = Window_ActorCommand.prototype.addSkillCommands;
    Window_ActorCommand.prototype.addSkillCommands = function() {
        _Window_ActorCommand_prototype_addSkillCommands;
  const skillTypes = this._actor.skillTypes();
         for (const stypeId of skillTypes) {
            const name = $dataSystem.skillTypes[stypeId];
            if(name !== 'パッシブ'){
      this.addCommand(name, "skill", true, stypeId);
       }
         }
};


最新の画像もっと見る

コメントを投稿