forked from triacontane/RPGMakerMV
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathBattleLogWithSe.js
154 lines (148 loc) · 5.12 KB
/
BattleLogWithSe.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
/*=============================================================================
BattleLogWithSe.js
----------------------------------------------------------------------------
(C)2018 Triacontane
This software is released under the MIT License.
http://opensource.org/licenses/mit-license.php
----------------------------------------------------------------------------
Version
1.1.0 2018/08/14 効果音のインデックスに制御文字が使えるよう修正
1.0.0 2018/08/14 初版
----------------------------------------------------------------------------
[Blog] : https://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
=============================================================================*/
/*:
* @plugindesc BattleLogWithSePlugin
* @target MZ @url https://github.com/triacontane/RPGMakerMV/tree/mz_master @author triacontane
*
* @param soundEffectList
* @desc 制御文字「\se[n]」で指定する効果音のリストです。一覧の左に表示されている数字を制御文字で指定してください。
* @default []
* @type struct<AudioSe>[]
*
* @help BattleLogWithSe.js
*
* バトルログの表示中に効果音を演奏できます。
* パラメータ「効果音リスト」にて効果音を登録した上で
* ログに表示する文章に以下の制御文字を指定してください。
*
* \se[n] n : パラメータで指定した効果音の番号(1~)
* 例:\se[3]
*
* 番号を変数の値から指定する場合は以下の通りです。
* \se[\v[1]]
*
* ※このプラグインはバトルログ用です。文章の表示では使えません。
*
* このプラグインにはプラグインコマンドはありません。
*
* This plugin is released under the MIT License.
*/
/*:ja
* @plugindesc バトルログのSE演奏プラグイン
* @target MZ @url https://github.com/triacontane/RPGMakerMV/tree/mz_master @author トリアコンタン
*
* @param soundEffectList
* @text 効果音リスト
* @desc 制御文字「\se[n]」で指定する効果音のリストです。一覧の左に表示されている数字を制御文字で指定してください。
* @default []
* @type struct<AudioSe>[]
*
* @help BattleLogWithSe.js
*
* バトルログの表示中に効果音を演奏できます。
* パラメータ「効果音リスト」にて効果音を登録した上で
* ログに表示する文章に以下の制御文字を指定してください。
*
* \se[n] n : パラメータで指定した効果音の番号(1~)
* 例:\se[3]
*
* 番号を変数の値から指定する場合は以下の通りです。
* \se[\v[1]]
*
* ※このプラグインはバトルログ用です。文章の表示では使えません。
*
* このプラグインにはプラグインコマンドはありません。
*
* 利用規約:
* 作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)
* についても制限はありません。
* このプラグインはもうあなたのものです。
*/
/*~struct~AudioSe:
* @param name
* @desc ファイル名称です。
* @default
* @require 1
* @dir audio/se/
* @type file
*
* @param volume
* @desc ボリュームです。
* @default 90
* @type number
* @min 0
* @max 100
*
* @param pitch
* @desc ピッチです。
* @default 100
* @type number
* @min 50
* @max 150
*
* @param pan
* @desc 左右バランスです。
* @default 0
* @type number
* @min -100
* @max 100
*/
(function() {
'use strict';
/**
* Create plugin parameter. param[paramName] ex. param.commandPrefix
* @param pluginName plugin name(EncounterSwitchConditions)
* @returns {Object} Created parameter
*/
var createPluginParameter = function(pluginName) {
var paramReplacer = function(key, value) {
if (value === 'null') {
return value;
}
if (value[0] === '"' && value[value.length - 1] === '"') {
return value;
}
try {
return JSON.parse(value);
} catch (e) {
return value;
}
};
var parameter = JSON.parse(JSON.stringify(PluginManager.parameters(pluginName), paramReplacer));
PluginManager.setParameters(pluginName, parameter);
return parameter;
};
var param = createPluginParameter('BattleLogWithSe');
if (!param.soundEffectList) {
param.soundEffectList = [];
}
/**
* Window_BattleLog 効果音を演奏します。
*/
var _Window_BattleLog_addText = Window_BattleLog.prototype.addText;
Window_BattleLog.prototype.addText = function(text) {
this.convertEscapeCharacters(text).replace(/\x1bSE\[(\d+)]/gi, function() {
var index = parseInt(arguments[1]) - 1;
var se = param.soundEffectList[index];
if (se) {
AudioManager.playSe(se);
}
return '';
}.bind(this));
arguments[0] = text.replace(/\\SE\[.+]/gi, '');
_Window_BattleLog_addText.apply(this, arguments);
}
})();