pure-full-lily/js/plugins/BattleLogOutput.js
2025-09-16 10:12:44 -05:00

115 lines
No EOL
4.2 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*=============================================================================
BattleLogOutput.js
----------------------------------------------------------------------------
(C)2023 Triacontane
This software is released under the MIT License.
http://opensource.org/licenses/mit-license.php
----------------------------------------------------------------------------
Version
1.1.3 2025/07/07 通常のバトルログまで消去されてしまう不具合を修正
1.1.2 2025/07/07 ベースライン追加を強制的にfalseにする修正
1.1.1 2025/07/07 PluginCommonBaseへの依存をなくし、単体で動作するように修正
1.1.0 2025/07/07 最大行数を超えた場合に古いログを消去する機能を追加
1.0.0 2023/08/11 初版
----------------------------------------------------------------------------
[Blog] : https://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
=============================================================================*/
/*:
* @plugindesc バトルログ出力プラグイン(v1.1.3)
* @target MZ
* @url https://github.com/triacontane/RPGMakerMV/tree/mz_master/BattleLogOutput.js
* @author トリアコンタン
*
* @param maxLines
* @text 最大行数
* @desc バトルログの最大表示行数です。0を指定すると無制限になります。
* @default 4
* @type number
*
* @command OUTPUT_LOG
* @text バトルログ出力
* @desc バトルログを出力します。
*
* @arg message
* @text 出力メッセージ
* @desc バトルログとして出力するメッセージです。
* @default
* @type multiline_string
*
* @arg pushBaseLine
* @text ベースライン追加
* @desc 【この設定は無視されます】バトルログ出力前に表示していたログを消去し、先頭からログ出力します。
* @default true
* @type boolean
*
* @arg waitCount
* @text ウェイト
* @desc 指定したフレームが経過したのち、すべてのログを削除します。0を指定するとログは削除されません。
* @default 0
* @type number
*
* @help BattleLogOutput.js
*
* プラグインコマンドからバトルログを出力できます。
* このコマンドは戦闘画面でのみ有効です。
*
* 【v1.1.2での変更】
* プラグインコマンドの「ベースライン追加」の設定を無視し、
* 常にログを追記するようになりました。
*
* 利用規約:
* 作者に無断で改変、再配布が可能で、利用形態商用、18禁利用等
* についても制限はありません。
* このプラグインはもうあなたのものです。
*/
(() => {
'use strict';
const pluginName = "BattleLogOutput";
const parameters = PluginManager.parameters(pluginName);
const maxLines = Number(parameters.maxLines || 0);
PluginManager.registerCommand(pluginName, 'OUTPUT_LOG', args => {
const message = args.message;
const pushBaseLine = false;
const waitCount = Number(args.waitCount);
BattleManager.displayCustomLog(message, pushBaseLine, waitCount);
});
BattleManager.displayCustomLog = function(text, pushBaseLine, waitCount) {
this._logWindow.displayCustomLog(text, pushBaseLine, waitCount);
};
Window_BattleLog.prototype.displayCustomLog = function(text, pushBaseLine, waitCount) {
if (pushBaseLine) {
this.push("pushBaseLine");
}
const textList = text.split('\n');
textList.forEach(line => this.push('addText', line));
if (waitCount > 0) {
this.push('waitForCount', waitCount);
this.push("clear");
}
};
Window_BattleLog.prototype.waitForCount = function(count) {
this._waitCount = count;
};
const _Window_BattleLog_addText = Window_BattleLog.prototype.addText;
Window_BattleLog.prototype.addText = function(text) {
_Window_BattleLog_addText.apply(this, arguments);
if (maxLines > 0) {
while (this._lines.length > maxLines) {
this._lines.shift();
}
this.refresh();
}
};
// pushBaseLineを書き換える処理を完全に削除しました。
})();