code:
//=============================================================================
// RPGツクールMZ - LL_SprashScreenMV.js v1.1.0
//-----------------------------------------------------------------------------
// ルルの教会 (Lulu's Church)
// https://nine-yusha.com/
//
// URL below for license details.
// https://nine-yusha.com/plugin/
//=============================================================================

/*:
 * @target MV
 * @plugindesc スプラッシュスクリーンを表示します。
 * @author ルルの教会
 * @url https://nine-yusha.com/plugin/
 *
 * @help LL_SprashScreenMV.js
 *
 * スプラッシュスクリーンを表示します。
 * スプラッシュスクリーンは複数設定することが可能です。
 * 決定キー、クリックでスキップさせることもできます。
 * ジングルMEを再生することも可能です。
 * (v1.1.0: ジングルMEを画像毎に設定できるようになりました)
 *
 * 利用規約:
 *   ・著作権表記は必要ございません。
 *   ・利用するにあたり報告の必要は特にございません。
 *   ・商用・非商用問いません。
 *   ・R18作品にも使用制限はありません。
 *   ・ゲームに合わせて自由に改変していただいて問題ございません。
 *   ・プラグイン素材としての再配布（改変後含む）は禁止させていただきます。
 *
 * 作者: ルルの教会
 * 作成日: 2022/4/10
 *
 * @param splashImages
 * @text 画像リスト
 * @desc スプラッシュスクリーンとして表示する画像リストです。
 * 上から順番に表示されます。
 * @default []
 * @type struct<splashImages>[]
 *
 * @param skipEnabled
 * @text スキップ許可
 * @desc 決定キー、クリックでスキップを許可するか設定します。
 * @type boolean
 * @default true
 *
 * @param debugDisabled
 * @text テストプレイ時は非表示
 * @desc テストプレイ時は非表示にするか設定します。
 * @type boolean
 * @default false
 *
 * @param jingleSettings
 * @text ジングルの設定
 * @desc ※この項目は使用しません
 *
 * @param meName
 * @text ME
 * @desc 再生する音声ファイルを選択してください。
 * @dir audio/me
 * @type file
 * @require 1
 * @parent jingleSettings
 *
 * @param meVolume
 * @text MEの音量
 * @desc MEの音量(0～100%)です。 (初期値: 90%)
 * @default 90
 * @max 100
 * @min 0
 * @type number
 * @parent jingleSettings
 *
 * @param mePitch
 * @text MEのピッチ
 * @desc MEのピッチ(50～150%)です。 (初期値: 100%)
 * @default 100
 * @max 150
 * @min 50
 * @type number
 * @parent jingleSettings
 *
 * @param mePan
 * @text MEの位相
 * @desc MEの位相(-100～100)です。 (初期値: 0)
 * @default 0
 * @max 100
 * @min -100
 * @type number
 * @parent jingleSettings
 */

/*~struct~splashImages:
 *
 * @param imageName
 * @text 画像ファイル名
 * @desc 表示する画像ファイルを選択してください。
 * @dir img/system
 * @type file
 * @require 1
 *
 * @param fadeTime
 * @text フェード時間
 * @desc フェードイン・フェードアウトの効果時間です。
 * @default 60
 * @min 0
 * @max 999
 * @type number
 *
 * @param waitTime
 * @text 表示時間
 * @desc フェードイン後の表示時間です。
 * @default 60
 * @min 0
 * @max 999
 * @type number
 *
 * @param jingleSettings
 * @text ジングルの設定
 * @desc ※この項目は使用しません
 *
 * @param meName
 * @text ME
 * @desc 再生する音声ファイルを選択してください。
 * @dir audio/me
 * @type file
 * @require 1
 * @parent jingleSettings
 *
 * @param meVolume
 * @text MEの音量
 * @desc MEの音量(0～100%)です。 (初期値: 90%)
 * @default 90
 * @max 100
 * @min 0
 * @type number
 * @parent jingleSettings
 *
 * @param mePitch
 * @text MEのピッチ
 * @desc MEのピッチ(50～150%)です。 (初期値: 100%)
 * @default 100
 * @max 150
 * @min 50
 * @type number
 * @parent jingleSettings
 *
 * @param mePan
 * @text MEの位相
 * @desc MEの位相(-100～100)です。 (初期値: 0)
 * @default 0
 * @max 100
 * @min -100
 * @type number
 * @parent jingleSettings
 *
 * @param meTiming
 * @text 再生タイミング
 * @desc MEを再生するタイミングを選択します。
 * @type select
 * @default before
 * @option フェードイン前
 * @value before
 * @option フェードイン後
 * @value after
 * @parent jingleSettings
 */

(function() {
    "use strict";
    var pluginName = "LL_SprashScreenMV";

    var parameters = PluginManager.parameters(pluginName);
    var paramJsonParse = function(key, value) {
		try {
			return JSON.parse(value);
		} catch(e) {
			return value;
		}
	};

    var skipEnabled = eval(parameters["skipEnabled"] || "true");
    var debugDisabled = eval(parameters["debugDisabled"] || "false");
    // ME
    var meName = String(parameters["meName"] || "");
    var meVolume = Number(parameters["meVolume"] || 90);
    var mePitch = Number(parameters["mePitch"] || 100);
    var mePan = Number(parameters["mePan"] || 0);
    // 画像リスト
    var splashImages = String(parameters["splashImages"] || "[]");
    var splashImageLists = JSON.parse(JSON.stringify(splashImages, paramJsonParse));

    var _Scene_Boot_loadSystemImages = Scene_Boot.prototype.loadSystemImages;
    Scene_Boot.prototype.loadSystemImages = function() {
        _Scene_Boot_loadSystemImages.call(this);
        // スプラッシュ画像を読み込み
        splashImageLists.forEach(function(item) {
	        ImageManager.loadSystem(item.imageName);
		});
    };

    var _Scene_Boot_startNormalGame = Scene_Boot.prototype.startNormalGame;
    Scene_Boot.prototype.startNormalGame = function() {
        if (!DataManager.isBattleTest() && !DataManager.isEventTest() && splashImageLists.length > 0) {
            if (!Utils.isOptionValid('test') || !debugDisabled) {
                this.checkPlayerLocation();
                DataManager.setupNewGame();
                SceneManager.goto(Scene_SplashScreen);
                return;
            }
        }

        _Scene_Boot_startNormalGame.apply(this, arguments);
    };

    // for MV
    var _Scene_Boot_start = Scene_Boot.prototype.start;
    Scene_Boot.prototype.start = function() {
        if (!DataManager.isBattleTest() && !DataManager.isEventTest() && splashImageLists.length > 0) {
            if (!Utils.isOptionValid('test') || !debugDisabled) {
                this.checkPlayerLocation();
                DataManager.setupNewGame();
                SceneManager.goto(Scene_SplashScreen);
                return;
            }
        }

        _Scene_Boot_start.apply(this, arguments);
    };

    //-----------------------------------------------------------------------------
    // Scene_SplashScreen
    //
    // スプラッシュスクリーンを表示する独自のシーンを追加定義します。

    function Scene_SplashScreen() {
        this.initialize.apply(this, arguments);
    }

    Scene_SplashScreen.prototype = Object.create(Scene_Base.prototype);
    Scene_SplashScreen.prototype.constructor = Scene_SplashScreen;

    Scene_SplashScreen.prototype.initialize = function() {
        Scene_Base.prototype.initialize.call(this);
        SceneManager.clearStack();
        this._originalSplash = null;
        this._splashIndex = 0;
        this._fadeTime = 60;
        this._waitTime = 0;
        this._fadeOpacity = 255;
        this._jingleMe = null;
    };

    Scene_SplashScreen.prototype.create = function() {
        Scene_Base.prototype.create.call(this);
    };

    Scene_SplashScreen.prototype.start = function() {
        Scene_Base.prototype.start.call(this);
        this.playMeJingle();
    };

    Scene_SplashScreen.prototype.update = function() {
        Scene_Base.prototype.update.call(this);

        this._fadeOpacity = this._fadeSprite ? this._fadeSprite.opacity : 255;

        // 画像切り替え
        if (this._waitTime == 0) {
            if (this._fadeOpacity == 0) {
                this.startFadeOut(this._fadeTime, false);
            } else if (this._fadeOpacity == 255) {
                this.setSplashImage();
                // 終了判定
                if (!this._originalSplash) {
                    this.gotoNextScene();
                    return;
                }
                this.adjustSpriteImage();
                this.startFadeIn(this._fadeTime, false);
            }

        }
        // ジングルME (v1.1.0)
        if (this._jingleMe) {
            if (this._jingleMe.timing === "after") {
                if (this._fadeOpacity == 0 && this._waitTime > 0) {
                    this.playMeJingleEvery(this._jingleMe);
                }
            } else {
                this.playMeJingleEvery(this._jingleMe);
            }
        }
        // スキップ判定
        if (skipEnabled) {
            if (Input.isTriggered("ok") || TouchInput.isTriggered()) {
                this._waitTime = 0;
                this.startFadeOut(1, false);
            }
        }
        // ウェイト判定
        if (this._fadeOpacity == 0 && this._waitTime > 0) {
            this._waitTime--;
        }
    };

    Scene_SplashScreen.prototype.setSplashImage = function() {
        var splashImage = splashImageLists[this._splashIndex];
        this._originalSplash = null;
        if (splashImage) {
            this._originalSplash = new Sprite(
                ImageManager.loadSystem(splashImage.imageName)
            );
            this.addChild(this._originalSplash);
            this._fadeTime = splashImage.fadeTime;
            this._waitTime = splashImage.waitTime;
            // インデックスを更新
            this._splashIndex++;

            // ジングルME (v1.1.0)
            this._jingleMe = {
                name: splashImage.meName,
                volume: splashImage.meVolume,
                pitch: splashImage.mePitch,
                pan: splashImage.mePan,
                timing: splashImage.meTiming
            };
        }
    };

    Scene_SplashScreen.prototype.adjustSpriteImage = function() {
        this.centerSprite(this._originalSplash);
    };

    Scene_SplashScreen.prototype.playMeJingle = function() {
        if (!meName) return;
        AudioManager.playMe({
            "name": meName,
            "volume": meVolume,
            "pitch": mePitch,
            "pan": mePan
        });
    };

    Scene_SplashScreen.prototype.playMeJingleEvery = function(me) {
        if (!me.name) return;
        AudioManager.playMe({
            "name": me.name,
            "volume": me.volume,
            "pitch": me.pitch,
            "pan": me.pan
        });
        this._jingleMe = null;
    };

    Scene_SplashScreen.prototype.gotoNextScene = function() {
        AudioManager.stopMe();
        SceneManager.goto(Scene_Title);
    };

    // for MV
    Scene_SplashScreen.prototype.centerSprite = function(sprite) {
        sprite.x = Graphics.width / 2;
        sprite.y = Graphics.height / 2;
        sprite.anchor.x = 0.5;
        sprite.anchor.y = 0.5;
    };

    Scene_SplashScreen.prototype.startFadeIn = function(duration, white) {
        this._fadeSprite = null;
        Scene_Base.prototype.startFadeIn.call(this, duration, white);
    };
})();


code:
//=============================================================================
// LevelUpCommonEvent.js
//
// Copyright (c) 2019 ina-amagami (ina@amagamina.jp)
// This software is released under the MIT License.
// http://opensource.org/licenses/mit-license.php
//
// GitHub  : https://github.com/ina-amagami/
// Blog    : https://amagamina.jp
// Twitter : https://twitter.com/ina_amagami
//=============================================================================

/*:
 * @plugindesc レベルアップ時にコモンイベントを実行する
 * @author 天神いな
 *
 * @help レベルアップ時にコモンイベントを差し込みたいキャラのメモ欄に以下追加する
 * <LevelUpCommonEvent: [コモンイベントID]>
 * (例) <LevelUpCommonEvent: 1>
 */

(function () {

    var regex = /<LevelUpCommonEvent:\s*(\d+)>/i;

    var _Game_Actor_levelUp = Game_Actor.prototype.levelUp;
    Game_Actor.prototype.levelUp = function() {
        _Game_Actor_levelUp.call(this);

        // バトルテスト中は実行しない
        if (DataManager.isBattleTest()) {
            return;
        }

        var levelUpCommonEventId = this.levelUpCommonEventId();
        if (levelUpCommonEventId > 0) {
            $gameTemp.reserveCommonEvent(levelUpCommonEventId);
        }
    }

    Game_Actor.prototype.levelUpCommonEventId = function() {
        if (this._levelUpCommonEventId !== undefined) {
            return this._levelUpCommonEventId;
        }
        this._levelUpCommonEventId = 0;
        var result = regex.exec(this.actor().note);
        if (result) {
            this._levelUpCommonEventId = Math.floor(result[1]);
        }
        return this._levelUpCommonEventId;
    }

})();

repo_name: onms/sister

license: unknown


code:
/*---------------------------------------------------------------------------*
 * 2020/06/01 kido
 * https://kido0617.github.io/
 *---------------------------------------------------------------------------*/

/*:
 * @plugindesc 配信風のコメント表示プラグイン
 * @author kido0617
 * @help
 *
 *  LiveCommentManager(LCM)
 *
 * ・初期化
 *  LCM.init(x, y, width, height);
 *
 * ・表示(透明背景)
 *  LCM.show('テキスト');
 *
 * ・表示(背景色あり。プラグインパラメータで色を定義して使います)
 *  LCM.show('テキスト', 1);
 *
 * ・表示(制御文字あり)
 *  LCM.show('\\I[82]\\C[2]ジョン:\\C[0]改行してみる\nあいうえおー');
 *
 * ・非表示状態にする
 *  LCM.setVisible(false);
 *
 * ・表示状態にする
 *  LCM.setVisible(true);
 *
 * ・コメント消去(showすればまた1から追加できる)
 *  LCM.clear();
 *
 * ・撤去(完全に消えます。再度 initしてください)
 *  LCM.remove();
 *
 * initしたマップでのみ有効。マップ遷移したら自動的に消えます。
 *
 * @param 1行の高さ
 * @desc 基本的に フォントサイズ+α です。
 * @type number
 * @default 36
 *
 * @param フォントサイズ
 * @desc フォントサイズです
 * @type number
 * @default 28
 *
 * @param アイコンサイズ
 * @desc アイコンサイズです
 * @type number
 * @default 32
 *
 * @param スクロールスピード
 * @desc コメントが上にスクロールするスピード[pixel/frame]
 * @type number
 * @default 4
 *
 * @param テキストパディング
 * @desc テキストの左端のパディング[pixel]
 * @type number
 * @default 6
 *
 * @param 文字のアウトラインを消す
 * @desc 消したいときはtrue
 * @type boolean
 * @default true
 *
 * @param デフォルトフォントカラー
 * @desc 白文字以外の場合は変える(ツクールのシステムの色番号 例:14)
 * @type number
 * @default 0
 *
 * @param 背景色定義
 * @desc rgb(255, 0, 0) の形式で指定。使うときは番号(1～)で指定
 * @type string[]
 * @default []
 *
 */

(function () {

  const params = PluginManager.parameters('LiveComment');
  const lineHeight = parseInt(params['1行の高さ']);
  const fontSize = parseInt(params['フォントサイズ']);
  const iconSize = parseInt(params['アイコンサイズ']);
  const scrollSpeed = parseInt(params['スクロールスピード']);
  const textPadding = parseInt(params['テキストパディング']);
  const outlineDisabled = params['文字のアウトラインを消す'] == 'true';
  const defaultFontColor = parseInt(params['デフォルトフォントカラー']);
  const colors = JSON.parse(params['背景色定義']);

  window.LCM = function () { };

  function getLiveCommentContainer(){
    let lc = SceneManager._scene._liveCommentContainer;
    if(!lc){
      //console.error('initしてません！');
    }
    return lc;
  }

  LCM.init = function (x, y, width, height) {
    if(SceneManager._scene._liveCommentContainer){
      console.error('すでにinitされてあります');
      return;
    }
    let lc = new LiveCommentContainer(x, y, width, height);
    var spriteSetMap = null;
    for(var i = 0 ; SceneManager._scene.children.length; i++){
      if(SceneManager._scene.children[i] instanceof Spriteset_Map){
        spriteSetMap = SceneManager._scene.children[i];
        break;
      }
    }
    if(spriteSetMap){
      //ピクチャの上、フェードの下に位置したい
      for(var i = 0 ; i < spriteSetMap.children.length; i++){
        if(spriteSetMap.children[i] instanceof Sprite_Timer) {
          spriteSetMap.addChildAt(lc, i);
          break;
        }
      }
    }else{
      SceneManager._scene.addChild(lc);
    }

    SceneManager._scene._liveCommentContainer = lc;
  };

  LCM.show = function (text, backgroundColor) {
    let lc = getLiveCommentContainer();
    if(lc) lc.show(text, backgroundColor);
  };

  LCM.setVisible = function(toggle){
    let lc = getLiveCommentContainer();
    if(lc) lc.visible = toggle;
  };

  LCM.remove = function(){
    let lc = getLiveCommentContainer();
    if(!lc) return;
    lc.parent.removeChild(lc);
    SceneManager._scene._liveCommentContainer = null;
  };

  LCM.clear = function(){
    let lc =  getLiveCommentContainer();
    if(lc) lc.clear();
  };

  function LiveCommentContainer(x, y, width, height) {
    PIXI.Container.call(this);
    this.x = x;
    this.y = y;
    this._width = width;
    this._height = height;
    this.yPos = 0;
    this.mask = new PIXI.Graphics();
    this.mask.beginFill();
    this.mask.drawRect(x, y, width, height);
    this.mask.endFill();
  }

  LiveCommentContainer.prototype = Object.create(PIXI.Container.prototype);
  LiveCommentContainer.prototype.constructor = LiveCommentContainer;

  LiveCommentContainer.prototype.update = function () {
    let moveY = 0;
    //最後に追加したコメントが枠外だったらスクロール開始するので移動量算出
    if(this.children.length > 0){
      let last = this.children[this.children.length - 1];
      let bottom = last.y + last.height;
      let diff = bottom - this._height;
      if(diff > 0 ) moveY = diff > scrollSpeed ? scrollSpeed : diff;
    }

    for (let i = 0; i < this.children.length; i++){
      this.children[i].update();
      this.children[i].y -= moveY;
    }
    this.yPos -= moveY;

    //画面外にスクロールしたコメントを消す
    if (this.children[0] && this.children[0].y + this.children[0].height <= 0) {
      this.removeChildAt(0);
    }
  };

  LiveCommentContainer.prototype.show = function (text, backgroundColor) {
    let lcw = new Window_LiveComment(this.yPos, this._width, text, backgroundColor);
    this.yPos += lcw.height;
    this.addChild(lcw);
  };

  LiveCommentContainer.prototype.clear = function () {
    this.removeChildren();
    this.yPos = 0;
  };

  function Window_LiveComment() {
    this.initialize.apply(this, arguments);
  }

  Window_LiveComment.prototype = Object.create(Window_Base.prototype);
  Window_LiveComment.prototype.constructor = Window_LiveComment;

  Window_LiveComment.prototype.initialize = function (y, width, text, backgroundColor) {
    let line = (text.match(/\n/g ) || [] ).length + 1;
    Window_Base.prototype.initialize.call(this, 0, y, width, line * this.lineHeight());

    this.text = text;
    if(backgroundColor) this.createBackground(colors[backgroundColor - 1]);

    this.opacity = 0;
    let outlineFunc;
    if(outlineDisabled) {
      outlineFunc = Bitmap.prototype._drawTextOutline;
      Bitmap.prototype._drawTextOutline = function(){};
    }
    this.drawTextEx(text, textPadding, this.lineHeight() / 2 - this.standardFontSize() / 2 - 4);
    if(outlineDisabled) Bitmap.prototype._drawTextOutline = outlineFunc;
  };

  Window_LiveComment.prototype.createBackground = function (backgroundColor) {
    this._backSprite = new Sprite();
    this._backSprite.bitmap = new Bitmap(this._width, this._height);
    this._backSprite.bitmap.fillAll(backgroundColor);
    this.addChildToBack(this._backSprite);
  };

  Window_LiveComment.prototype.normalColor = function() {
    if(defaultFontColor) return this.textColor(defaultFontColor);

    return this.textColor(0);
  };

  Window_LiveComment.prototype.lineHeight = function () {
    return lineHeight;
  };

  Window_LiveComment.prototype.standardPadding = function () {
    return 0;
  };

  Window_LiveComment.prototype.standardFontSize = function () {
    return fontSize;
  };

  Window_LiveComment.prototype.processDrawIcon = function(iconIndex, textState) {
    var size = this.getIconSize();
    var y = (this.lineHeight() - size) / 2;
    this.drawIcon(iconIndex, textState.x + 2, y);
    textState.x += size + 4;
  };

  Window_LiveComment.prototype.drawIcon = function(iconIndex, x, y) {
    var bitmap = ImageManager.loadSystem('IconSet');
    var pw = Window_Base._iconWidth;
    var ph = Window_Base._iconHeight;
    var sx = iconIndex % 16 * pw;
    var sy = Math.floor(iconIndex / 16) * ph;
    var size = this.getIconSize();
    this.contents.blt(bitmap, sx, sy, pw, ph, x, y, size, size);
  };

  Window_LiveComment.prototype.getIconSize = function() {
    return iconSize;
  };

})();


code:
//=============================================================================
// LoadComSim.js
//=============================================================================

/*:ja
 * @plugindesc ver1.00 メニューコマンドにロードを追加します。
 * @author まっつＵＰ
 *
 * @param loadtext
 * @desc コマンド「ロード」のコマンド名です。
 * @default ロード
 *
 * @help
 *
 * RPGで笑顔を・・・
 *
 * このヘルプとパラメータの説明をよくお読みになってからお使いください。
 *
 * コマンド「ロード」はイベントテスト中またはセーブデータがないときは選択不能になります。
 *
 * このプラグインを利用する場合は
 * readmeなどに「まっつＵＰ」の名を入れてください。
 * また、素材のみの販売はダメです。
 * 上記以外の規約等はございません。
 * もちろんツクールMVで使用する前提です。
 * 何か不具合ありましたら気軽にどうぞ。
 *
 * 免責事項：
 * このプラグインを利用したことによるいかなる損害も制作者は一切の責任を負いません。
 *
 */

(function() {

    var parameters = PluginManager.parameters('LoadComSim');
    var LCSloadtext = String(parameters['loadtext'] || 'ロード');

    var _Scene_Menu_createCommandWindow = Scene_Menu.prototype.createCommandWindow;
    Scene_Menu.prototype.createCommandWindow = function() {
    _Scene_Menu_createCommandWindow.call(this);
    this._commandWindow.setHandler('load', this.commandLoad.bind(this));
    };

    Scene_Menu.prototype.commandLoad = function() { //新規
    SceneManager.push(Scene_Load);
    };

    var _Window_MenuCommand_addSaveCommand = Window_MenuCommand.prototype.addSaveCommand;
    Window_MenuCommand.prototype.addSaveCommand = function() {
    _Window_MenuCommand_addSaveCommand.call(this);
     var enabled = this.isLoadEnabled();
     this.addCommand(LCSloadtext, 'load', enabled);
    };

    Window_MenuCommand.prototype.isLoadEnabled = function() { //新規
    if(DataManager.isEventTest()) return false; //この行はイベントテスト中かどうか判定しています。
    return DataManager.isAnySavefileExists();
    };

})();


code:
//=============================================================================
// MAT_BattlestartendFade.js
// ----------------------------------------------------------------------------
// Copyright (c) 2020 mattuup
// This software is released under the MIT license.
// http://opensource.org/licenses/mit-license.php
//=============================================================================

/*:ja
 * @plugindesc ver1.00 戦闘始終のフェードインの制御
 * @author mattuup
 * @target MZ
 * @base PluginCommonBase
 * @orderAfter PluginCommonBase
 * @url https://github.com/mattuup/RPGMakerMZ
 *
 * @param Notstartfadesw
 * @desc このIDのスイッチがオンの時
 * 戦闘開始時にフェードインしません。
 * @type switch
 * @default 10
 *
 * @param Notendfadesw
 * @desc このIDのスイッチがオンの時
 * 戦闘終了時にフェードインしません。
 * @type switch
 * @default 10
 *
 * @param Notstartplaysw
 * @desc このIDのスイッチがオンの時
 * 戦闘開始時に戦闘BGMの演奏を開始しません。
 * @type switch
 * @default 12
 *
 * @param Notreplaysw
 * @desc このIDのスイッチがオンの時
 * 戦闘終了時に戦闘前のBGM等を再開しません。
 * @type switch
 * @default 12
 *
 *
 * @help
 *
 * RPGで笑顔を・・・
 *
 * このヘルプとパラメータの説明をよくお読みになってからお使いください。
 *
 * 利用規約はMITライセンスの通り。
 * （BattlestartFade.jsとBattleendFade.js再録）
 *
 * フェードインしたいときは普通に
 * イベントコマンド「画面のフェードイン」を使ってください。
 *
 * Notstartfadeswが有効な時
 * 戦闘開始時メッセージを自動でとばします。
 * また、同時にフェードアウト中はステータスウインドウを閉じます。
 *
 * Notstartplayswが有効な時
 * 戦闘開始前、audioを止めません。
 *
 */

var Imported = Imported || {};
Imported[PluginManagerEx.findPluginName(document.currentScript)] = true;

(() => {

'use strict';

const script = document.currentScript;
const param  = PluginManagerEx.createParameter(script);
const fadetime = 24;

DataManager.isNotstartfadesw = function() {
    return param.Notstartfadesw > 0 && $gameSwitches.value(param.Notstartfadesw);
};

DataManager.isNotstartplaysw = function() {
    return param.Notstartplaysw > 0 && $gameSwitches.value(param.Notstartplaysw);
};

const _BattleManager_playBattleBgm = BattleManager.playBattleBgm;
BattleManager.playBattleBgm = function() {
    if(DataManager.isNotstartplaysw()){
        return;
    }
    _BattleManager_playBattleBgm.call(this);
};

const _Scene_Map_stopAudioOnBattleStart = Scene_Map.prototype.stopAudioOnBattleStart;
Scene_Map.prototype.stopAudioOnBattleStart = function() {
    if(DataManager.isNotstartplaysw()){
        return;
    }
    _Scene_Map_stopAudioOnBattleStart.call(this);
};

const _Scene_Battle_createSpriteset = Scene_Battle.prototype.createSpriteset;
Scene_Battle.prototype.createSpriteset = function() {
    if(DataManager.isNotstartfadesw()){
        $gameScreen._brightness = 0;
    }
    _Scene_Battle_createSpriteset.call(this);
};

const _Scene_Battle_shouldOpenStatusWindow = Scene_Battle.prototype.shouldOpenStatusWindow;
Scene_Battle.prototype.shouldOpenStatusWindow = function() {
    const def = _Scene_Battle_shouldOpenStatusWindow.call(this);
    const forcefade = (DataManager.isNotstartfadesw() && $gameScreen.brightness() <= 0);
    if(forcefade){
        this._statusWindow.close();
    }
    return def && !forcefade;
};

const _BattleManager_displayStartMessages = BattleManager.displayStartMessages;
BattleManager.displayStartMessages = function() {
    if(DataManager.isNotstartfadesw()){
        return;
    }
    _BattleManager_displayStartMessages.call(this);
};

const _BattleManager_replayBgmAndBgs = BattleManager.replayBgmAndBgs;
BattleManager.replayBgmAndBgs = function() {
    if(param.Notreplaysw > 0 && $gameSwitches.value(param.Notreplaysw)){
        return;
    }
    _BattleManager_replayBgmAndBgs.call(this);
};

const _BattleManager_updateBattleEnd = BattleManager.updateBattleEnd;
BattleManager.updateBattleEnd = function() {
    if(param.Notendfadesw > 0 && $gameSwitches.value(param.Notendfadesw)){
        $gameScreen.startFadeOut(fadetime);
    }
    _BattleManager_updateBattleEnd.call(this);
};

})();


code:
//=============================================================================
// MKR_ControlCharacterEx.js
//=============================================================================
// Copyright (c) 2016 mankind_robo
// This software is released under the MIT License.
// http://opensource.org/licenses/mit-license.php
// ----------------------------------------------------------------------------
// Version
// 1.0.1 2016/07/22 一部制御文字が動作しなくなるバグを修正。
// 1.0.0 2016/07/21 初版公開。
// ----------------------------------------------------------------------------
// [Twitter] https://twitter.com/mankind_robo/
//=============================================================================

/*:
 *
 * @plugindesc メッセージ内で使用可能な制御文字を追加します。
 * @author mankind
 *
 * @help
 * メッセージ内で利用可能な制御文字を追加します。
 * 現在追加で使用可能な制御文字は以下の通りです。
 *
 * 制御文字:
 *    \SE[SE名,SE音量,SEピッチ,SE位相]
 *      ・メッセージ表示中にSEを演奏します。
 *        SE名は必須です。拡張子を抜いたSEファイル名を
 *        指定してください。
 *
 *        音量、ピッチ、位相は数値で指定、または
 *        制御文字の\v[n](変数n番の数値)を利用可能です。
 *
 *        なお、ここでの音量、ピッチ、位相設定は
 *        プラグインパラメータで指定できる
 *        初期値設定より優先されます。
 *
 *        音量、ピッチ、位相を初期設定値のまま利用する場合は、
 *        SE名のみ指定してください。
 *        (音量のみを指定して
 *         残りを初期設定値で再生させることも可能です)
 *
 *
 *
 *
 * 制御文字の設定例:
 *   \se[CAT,20,100,0]
 *     ・猫の効果音を音量20、ピッチ100、位相0で再生します。
 *
 *   \SE[BELL1]
 *     ・ベル1の効果音を初期値設定で再生します。
 *
 *   \SE[Coin,\v[20]]
 *     ・コインの効果音を音量[変数20番]、
 *       他は初期値設定を使い再生します。
 *
 *
 * プラグインコマンド:
 *    ありません。
 *
 *
 * スクリプトコマンド:
 *    ありません。
 *
 *
 * ※ プラグインのパラメータにおいて、数値を指定するパラメータには
 *    制御文字\v[n]が使用可能です。
 *    制御文字を指定したパラメータは、パラメータの使用時に
 *    変数の値を取得するため、リアルタイムにパラメータの変更が可能です。
 *
 *
 * 利用規約:
 *    ・作者に無断で本プラグインの改変、再配布が可能です。
 *      (ただしヘッダーの著作権表示部分は残してください。)
 *
 *    ・利用形態(フリーゲーム、商用ゲーム、R-18作品等)に制限はありません。
 *      ご自由にお使いください。
 *
 *    ・本プラグインを使用したことにより発生した問題について作者は一切の責任を
 *      負いません。
 *
 *    ・要望などがある場合、本プラグインのバージョンアップを行う
 *      可能性がありますが、
 *      バージョンアップにより本プラグインの仕様が変更される可能性があります。
 *      ご了承ください。
 *
 *
 * @param Default_SE_Volume
 * @desc [初期設定値] 制御文字でSE再生時に使われる音量です。
 * @default 90
 *
 * @param Default_SE_Pitch
 * @desc [初期設定値] 制御文字でSE再生時に使われるピッチです。
 * @default 100
 *
 * @param Default_SE_Pan
 * @desc [初期設定値] 制御文字でSE再生時に使われる位相です。
 * @default 0
 *
 * @param Default_Wait_Period
 * @desc [初期設定値] 制御文字\.利用時に待機するフレーム数です。(60フレーム=1秒)
 * @default 15
 *
 * @param Default_Wait_Line
 * @desc [初期設定値] 制御文字\|利用時に待機するフレーム数です。(60フレーム=1秒)
 * @default 60
 *
 *
 *
 * *
*/
(function () {
    'use strict';
    var Parameters, SeVolumeDef, SePitchDef, SePanDef,
        WaitPeriodDef, WaitLineDef;

    var CheckParam = function(type, param, def) {
        var regExp;

        regExp = /^\x1bV\[\d+\]$/i;
        param = param.replace(/\\/g, '\x1b');
        if(regExp.test(param)) {
            return param;
        }
        switch(type) {
            case "bool":
                return param.toUpperCase() === "ON";
            case "num":
                return (isFinite(param))? parseInt(param, 10) : (def)? def : 0;
            default:
                return param;
        }
    }

    var ConvertEscapeCharacters = function(text) {
        text = String(text);
        text = text.replace(/\\/g, '\x1b');
        text = text.replace(/\x1b\x1b/g, '\\');

        text = text.replace(/\x1bV\[(\d+)\]/gi, function() {
            return $gameVariables.value(parseInt(arguments[1]));
        }.bind(this));

        text = text.replace(/\x1bV\[(\d+)\]/gi, function() {
            return $gameVariables.value(parseInt(arguments[1]));
        }.bind(this));

        return text;
    };

    Parameters = PluginManager.parameters('MKR_ControlCharacterEx');
    SeVolumeDef = CheckParam("num", Parameters['Default_SE_Volume'], 90);
    SePitchDef = CheckParam("num", Parameters['Default_SE_Pitch'], 100);
    SePanDef = CheckParam("num", Parameters['Default_SE_Pan']);
    WaitPeriodDef = CheckParam("num", Parameters['Default_Wait_Period'], 15);
    WaitLineDef = CheckParam("num", Parameters['Default_Wait_Line'], 60);

    //=========================================================================
    // Window_Base
    //  エスケープコマンドを追加定義します。
    //
    //=========================================================================

    var _Window_Base_obtainEscapeCode = Window_Base.prototype.obtainEscapeCode;
    Window_Base.prototype.obtainEscapeCode = function(textState) {
        var regExp, arr;

        textState.index++;
        regExp = /^SE\[.*?\]/i;
        arr = regExp.exec(textState.text.slice(textState.index));

        if (arr) {
            textState.index += arr[0].length;
            return arr[0];
        } else {
            textState.index--;
            return _Window_Base_obtainEscapeCode.call(this, textState);
        }
    };

    //=========================================================================
    // Window_Messge
    //  エスケープコマンドを追加定義します。
    //
    //=========================================================================

    var _Window_Message_processEscapeCharacter = Window_Message.prototype.processEscapeCharacter;
    Window_Message.prototype.processEscapeCharacter = function(code, textState) {
        var regExp, arr, res, se;
        se = {};

        regExp = /^(SE)\[(.*?)\]$/i;
        arr = regExp.exec(code);

        if (arr) {
            switch(arr[1].toUpperCase()) {
                case "SE":
                    res = arr[2].split(",");
                    se["name"] = (res[0])? res[0].trim() : "";
                    se["volume"] = (isFinite(res[1]))? parseInt(res[1],10) : ConvertEscapeCharacters(SeVolumeDef);
                    se["pitch"] = (isFinite(res[2]))? parseInt(res[2],10) : ConvertEscapeCharacters(SePitchDef);
                    se["pan"] = (isFinite(res[3]))? parseInt(res[3],10) : ConvertEscapeCharacters(SePanDef);
                    AudioManager.playSe(se);
                    break;
                default:
                    _Window_Message_processEscapeCharacter.call(this, code, textState);
            }
        } else {
            switch(code) {
                case '.':
                    this.startWait(ConvertEscapeCharacters(WaitPeriodDef));
                    break;
                case '|':
                    this.startWait(ConvertEscapeCharacters(WaitLineDef));
                    break;
                default:
                    _Window_Message_processEscapeCharacter.call(this, code, textState);
            }
        }
    };

})();


code:
//=============================================================================
// MKR_MessageWindowCustom.js
//=============================================================================
// Copyright (c) 2016 マンカインド
// This software is released under the MIT License.
// http://opensource.org/licenses/mit-license.php
// ----------------------------------------------------------------------------
// Version
// 1.0.3 2020/03/15 ・プラグインヘルプを修正。
//                  ・プラグインコマンドが動作しなくなっていたため修正。
//
// 1.0.2 2017/08/13 ・ウィンドウ位置を調整できる機能を追加。
//
// 1.0.1 2017/06/25 ・余計なコードが残っていたため修正。
//
// 1.0.0 2017/06/25 ・初版公開。
// ----------------------------------------------------------------------------
// [Twitter] https://twitter.com/mankind_games/
//  [GitHub] https://github.com/mankindGames/
//    [Blog] http://mankind-games.blogspot.jp/
//=============================================================================

/*:
 *
 * @plugindesc (v1.0.3) メッセージウィンドウカスタマイズプラグイン
 * @author マンカインド
 *
 * @help = メッセージウィンドウカスタマイズプラグイン =
 * MKR_MessageWindowCustom.js
 *
 * このプラグインを導入することでメッセージウィンドウに
 * 以下の変更を加えることができます。
 *
 *   ・行数を変えることなく、ウィンドウ高さの調整
 *   ・ウィンドウ表示位置の調整
 *
 * プラグインパラメータ[Window_Height_Offset]の数値を設定することにより
 * メッセージウィンドウ([文章の表示]コマンドで表示に使われるウィンドウ)の
 * 高さをピクセル単位で調整します。
 *
 * 数値を0以外にした場合ウィンドウの高さが変動します。
 * 顔グラフィックを表示している場合は
 * 顔グラフィックのサイズもあわせて拡大、または縮小されます。
 *
 *
 * 以下のプラグインコマンドを実行することにより
 *
 *   windowMessage position [X座標] [Y座標]
 *
 * メッセージウィンドウの表示位置を変更することができます。
 * 変更後のウィンドウサイズ・顔グラフィックサイズは自動的に調整されます。
 *
 * [例 - ウィンドウの表示座標をX:10,Y10に設定する]
 * ◆プラグインコマンド：windowMessage position 10 10
 *
 * なお、ウィンドウが閉じられると上記プラグインコマンドによる変更は
 * 元に戻ります。
 *
 *
 * 利用規約:
 *   ・作者に無断で本プラグインの改変、再配布が可能です。
 *     (ただしヘッダーの著作権表示部分は残してください。)
 *
 *   ・利用形態(フリーゲーム、商用ゲーム、R-18作品等)に制限はありません。
 *     ご自由にお使いください。
 *
 *   ・本プラグインを使用したことにより発生した問題について作者は一切の責任を
 *     負いません。
 *
 *   ・要望などがある場合、本プラグインのバージョンアップを行う
 *     可能性がありますが、
 *     バージョンアップにより本プラグインの仕様が変更される可能性があります。
 *     ご了承ください。
 *
 * @param Window_Height_Offset
 * @desc メッセージウィンドウの高さを調整します。(-144～144の範囲、デフォルト:0)
 * @type number
 * @min -144
 * @max 144
 * @default 0
 *
*/

var Imported = Imported || {};
Imported.MKR_MessageWindowCustom = true;

(function () {
    'use strict';

    var PN = "MKR_MessageWindowCustom";

    var CheckParam = function(type, param, def, min, max) {
        var Parameters, regExp, value;
        Parameters = PluginManager.parameters(PN);

        if(arguments.length < 4) {
            min = -Infinity;
            max = Infinity;
        }
        if(arguments.length < 5) {
            max = Infinity;
        }
        if(param in Parameters) {
            value = String(Parameters[param]);
        } else {
            throw new Error("[CheckParam] プラグインパラメーターがありません: " + param);
        }

        value = value.replace(/\\/g, '\x1b');
        value = value.replace(/\x1b\x1b/g, '\\');

        regExp = /(\x1bV|\x1bN)\[\d+\]/i;
        if(!regExp.test(value)) {
            switch(type) {
                case "num":
                    if(value == "") {
                        value = (isFinite(def))? parseInt(def, 10) : 0;
                    } else {
                        value = (isFinite(value))? parseInt(value, 10) : (isFinite(def))? parseInt(def, 10) : 0;
                        value = value.clamp(min, max);
                    }
                    break;
                default:
                    throw new Error("[CheckParam] " + param + "のタイプが不正です: " + type);
                    break;
            }
        }

        return [value, type, def, min, max, param];
    };

    var Params = {
        "MesOffsetH" : CheckParam("num", "Window_Height_Offset", 0, -144, 144),
    };

    //=========================================================================
    // Game_Interpreter
    //  ・メッセージウィンドウに関するプラグインコマンドを定義します。
    //
    //=========================================================================
    var _Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
    Game_Interpreter.prototype.pluginCommand = function(command, args) {
        _Game_Interpreter_pluginCommand.call(this, command, args);

        var x, y;
        x = $gameMessage.positionX();
        y = $gameMessage.positionY();

        if (command.toLowerCase() === "windowmessage") {
            switch (args[0].toLowerCase()) {
                case "position":
                    console.log("args:%o", args);
                    if(args[1] != "" && isFinite(args[1])) {
                        console.log("args1:%s",args[1]);
                        x = parseInt(args[1], 10);
                        $gameMessage.setPositionX(x);
                    }
                    if(args[2] != "" && isFinite(args[2])) {
                        console.log("args2:%s",args[2]);
                        y = parseInt(args[2], 10);
                        $gameMessage.setPositionY(y);
                    }
                    break;
            }
        }
    };

    //=========================================================================
    // Game_Message
    //  ・ウィンドウの表示設定を再定義します。
    //
    //=========================================================================
    var _Game_Message_clear = Game_Message.prototype.clear;
    Game_Message.prototype.clear = function() {
        _Game_Message_clear.call(this);
        this._positionX = 0;
        this._positionY = 0;
    };

    Game_Message.prototype.positionX = function() {
        return this._positionX;
    };

    Game_Message.prototype.setPositionX = function(x) {
        this._positionX = x;
    };

    Game_Message.prototype.positionY = function() {
        return this._positionY;
    };

    Game_Message.prototype.setPositionY = function(y) {
        this._positionY = y;
    };

   //=========================================================================
    // Window_Message
    //  ・ウィンドウの表示設定を再定義します。
    //
    //=========================================================================
    var _Window_Message_windowHeight = Window_Message.prototype.windowHeight;
    Window_Message.prototype.windowHeight = function() {
        var ret = _Window_Message_windowHeight.call(this);
        ret += Params.MesOffsetH[0];
        return ret;
    };

    var _Window_Message_updatePlacement = Window_Message.prototype.updatePlacement;
    Window_Message.prototype.updatePlacement = function() {
        _Window_Message_updatePlacement.call(this);

        var width, height, x, y;
        width = this.windowWidth();
        height = this.windowHeight();
        x = (Graphics.boxWidth - width) / 2;
        y = this._positionType * (Graphics.boxHeight - this.height) / 2;

        if($gameMessage.positionX() > 0 || $gameMessage.positionY() > 0) {
            x = $gameMessage.positionX() > 0 ? $gameMessage.positionX() : x;
            y = $gameMessage.positionY() > 0 ? $gameMessage.positionY() : y;
            width = (Graphics.boxWidth - x) > 0 ? Graphics.boxWidth - x : width;
            height = (height + y) > Graphics.boxHeight ? Graphics.boxHeight - y : height;
        }
        this.move(x, y, width, height);
    };

    Window_Message.prototype.drawFace = function(faceName, faceIndex, x, y, width, height) {
        width = width || Window_Base._faceWidth;
        height = height || Window_Base._faceHeight;
        var bitmap = ImageManager.loadFace(faceName);
        var pw = Window_Base._faceWidth;
        var ph = Window_Base._faceHeight;
        var sw = Math.min(width, pw);
        var sh = Math.min(height, ph);
        var dx = Math.floor(x + Math.max(width - pw, 0) / 2);
        var dy = Math.floor(y + Math.max(height - ph, 0) / 2);
        var sx = faceIndex % 4 * pw + (pw - sw) / 2;
        var sy = Math.floor(faceIndex / 4) * ph + (ph - sh) / 2;
        if(Params.MesOffsetH[0] != 0) {
            var dw = pw + Params.MesOffsetH[0];
            var dh = ph + Params.MesOffsetH[0];
        } else {
            var dw = this.height - this.standardPadding() * 2;
            var dh = this.height - this.standardPadding() * 2;
        }
        this.contents.blt(bitmap, sx, sy, sw, sh, dx, dy, dw, dh);
    };

    Window_Message.prototype.newLineX = function() {
        return $gameMessage.faceName() === '' ? 0 : 168 + Params.MesOffsetH[0];
    };

})();