一度、そちらの環境で試していただきたいです
https://www.youtube.com/watch?v=t1Z6rKMps9M
/*:
* @plugindesc ダメージ量に応じてSEを変更するプラグイン for MV
* @author ChatGPT
*
* @param DamageSESettings
* @text ダメージSE設定
* @type struct<SESetting>[]
* @desc ダメージの範囲に応じて再生するSEを設定します。
* @default []
*
* @help
* このプラグインはダメージ量に応じて異なるSEを再生する機能を提供します。
*
*/
/*~struct~SESetting:
* @param DamageMin
* @text 最小ダメージ
* @type number
* @desc この範囲の最小ダメージ。
* @default 0
*
* @param DamageMax
* @text 最大ダメージ
* @type number
* @desc この範囲の最大ダメージ。
* @default 100
*
* @param SoundName
* @text SEの名前
* @type string
* @desc 再生するサウンドの名前。
* @default Bell1
*
*/
var DamageSEPlugin = DamageSEPlugin || {};
DamageSEPlugin.Parameters = PluginManager.parameters('DamageSEPlugin');
DamageSEPlugin.DamageSESettings = JSON.parse(DamageSEPlugin.Parameters['DamageSESettings'] || '[]').map(data => {
const parsedData = JSON.parse(data);
return {
DamageMin: parseInt(parsedData.DamageMin),
DamageMax: parseInt(parsedData.DamageMax),
SoundName: parsedData.SoundName
};
});
const _Game_Action_apply = Game_Action.prototype.apply;
Game_Action.prototype.apply = function(target) {
_Game_Action_apply.call(this, target);
if (this.subject().isActor() && target.result().hpDamage > 0) {
const damageValue = target.result().hpDamage;
console.log("ダメージ: " + damageValue); // このログが表示されるか確認
for (let setting of DamageSEPlugin.DamageSESettings) {
if (damageValue >= setting.DamageMin && damageValue <= setting.DamageMax) {
console.log("SE再生: " + setting.SoundName); // このSEが再生されるかのログを表示
const se = {
name: setting.SoundName,
volume: 100,
pitch: 100,
pan: 0
};
AudioManager.playSe(se);
break;
}
}
}
};