動作としてはメモ欄に武器セット: 3, 5と記入されていた場合そのアイテムを購入時に同時に武器ID3, 5の武器も同時に手に入るといった形です
何とか修正していただくことは可能でしょうか?
一般化して再配布していただいてもかまいません
使用用途としては○○防具一式を一括で購入する、みたいなのを考えています
コード: 全て選択
(() => {
const parameters = PluginManager.parameters('Setget');
const setItemFlag = parameters['SetItemFlag'] === 'true';
const setWeaponFlag = parameters['SetWeaponFlag'] === 'true';
const setArmorFlag = parameters['SetArmorFlag'] === 'true';
// アイテム、武器、防具の購入処理をフック
const _Game_Party_gainGold = Game_Party.prototype.gainGold;
Game_Party.prototype.gainGold = function(amount) {
_Game_Party_gainGold.call(this, amount);
this.processSetItems();
};
Game_Party.prototype.processSetItems = function() {
// 最後に購入したアイテムを取得
const lastItem = $gameParty.lastItem();
if (lastItem) {
// アイテムセットの処理
if (setItemFlag && lastItem.meta['アイテムセット']) {
const itemSet = lastItem.meta['アイテムセット'].split(',').map(Number);
// 最初のアイテムセットIDを変数35に設定
const firstItemId = itemSet[0];
if (firstItemId) {
$gameVariables.setValue(35, firstItemId); // 変数35に最初のIDを設定
}
itemSet.forEach(itemId => {
const setItem = $dataItems[itemId];
if (setItem) {
$gameParty.gainItem(setItem, 1); // アイテムをパーティに追加
}
});
}
// 武器セットの処理
if (setWeaponFlag && lastItem.meta['武器セット']) {
const weaponSet = lastItem.meta['武器セット'].split(',').map(Number);
// 最初の武器セットIDを変数35に設定
const firstWeaponId = weaponSet[0];
if (firstWeaponId) {
$gameVariables.setValue(35, firstWeaponId); // 変数35に最初のIDを設定
}
weaponSet.forEach(weaponId => {
const weapon = $dataWeapons[weaponId];
if (weapon) {
$gameParty.gainItem(weapon, 1); // 武器をパーティに追加
}
});
}
// 防具セットの処理
if (setArmorFlag && lastItem.meta['防具セット']) {
const armorSet = lastItem.meta['防具セット'].split(',').map(Number);
// 最初の防具セットIDを変数35に設定
const firstArmorId = armorSet[0];
if (firstArmorId) {
$gameVariables.setValue(35, firstArmorId); // 変数35に最初のIDを設定
}
armorSet.forEach(armorId => {
const armor = $dataArmors[armorId];
if (armor) {
$gameParty.gainItem(armor, 1); // 防具をパーティに追加
}
});
}
}
};
})();